zmedwael
Aerospace
- May 2, 2013
- 20
Hi ,
this is the journal , the problem is that area and perimeter outputs are zeros , others are working well.
Any help .
Module NXJournal
Sub Main(ByVal args() As String)
Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
'Dim displayPart As Part = theSession.Parts.Display
' ----------------------------------------------
' Menu: Edit->Object Display...
' ----------------------------------------------
' ----------------------------------------------
' Dialog Begin Color
' ----------------------------------------------
Dim uf As UFSession = UFSession.GetUFSession()
Dim x As Integer
Dim mySelectedObjects As nxobject()
Dim lw As ListingWindow = theSession.ListingWindow
Dim nullNXObject As NXObject = Nothing
Dim measureFaceBuilder1 As MeasureFaceBuilder
measureFaceBuilder1 = workPart.MeasureManager.CreateMeasureFaceBuilder(nullNXObject)
If SelectObjects("Hey, select multiple somethings", _
mySelectedObjects) = Selection.Response.Ok Then
For Each mySelObj As Object In mySelectedObjects
Dim boundaryFaces1(-1) As Face
Dim faceTangentRule1 As FaceTangentRule
faceTangentRule1 = workPart.ScRuleFactory.CreateRuleFaceTangent(mySelObj, boundaryFaces1, 0.5)
Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("SquareMilliMeter"), Unit)
Dim unit2 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit)
Dim rules1(0) As SelectionIntentRule
rules1(0) = faceTangentRule1
measureFaceBuilder1.FaceCollector.ReplaceRules(rules1, False)
Dim measureFaces1 As MeasureFaces
measureFaces1 = workPart.MeasureManager.NewFaceProperties(unit1, unit2, 0.99, measureFaceBuilder1.FaceCollector)
Dim measure1 As Measure
measure1 = measureFaces1.CreateFeature()
lw.Open()
lw.WriteLine("to string :" & myselobj.tostring)
lw.WriteLine("journalidentifier :" & myselobj.journalidentifier)
lw.WriteLine("color :" & myselobj.color)
lw.WriteLine("name :" & myselobj.name)
Dim x1, x2 As Double
x1 = measureFaces1.Area
x2 = measureFaces1.Perimeter
lw.WriteLine("Area :" & x1)
lw.WriteLine("Perimeter :" & x2)
Next
End If
End Sub
Function SelectObjects(ByVal prompt As String, _
ByRef selObj As NXObject()) As Selection.Response
Dim theUI As UI = UI.GetUI
Dim typeArray() As Selection.SelectionType = _
{ _
Selection.SelectionType.Faces}
Dim resp As Selection.Response = theUI.SelectionManager.SelectObjects( _
prompt, "Choisir les faces a mailler", _
Selection.SelectionScope.AnyInAssembly, _
False, typeArray, selobj)
If resp = Selection.Response.ObjectSelected Or _
resp = Selection.Response.ObjectSelectedByName Or _
resp = Selection.Response.OK Then
Return Selection.Response.Ok
Else
Return Selection.Response.Cancel
End If
End Function
End Module
this is the journal , the problem is that area and perimeter outputs are zeros , others are working well.
Any help .
Module NXJournal
Sub Main(ByVal args() As String)
Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
'Dim displayPart As Part = theSession.Parts.Display
' ----------------------------------------------
' Menu: Edit->Object Display...
' ----------------------------------------------
' ----------------------------------------------
' Dialog Begin Color
' ----------------------------------------------
Dim uf As UFSession = UFSession.GetUFSession()
Dim x As Integer
Dim mySelectedObjects As nxobject()
Dim lw As ListingWindow = theSession.ListingWindow
Dim nullNXObject As NXObject = Nothing
Dim measureFaceBuilder1 As MeasureFaceBuilder
measureFaceBuilder1 = workPart.MeasureManager.CreateMeasureFaceBuilder(nullNXObject)
If SelectObjects("Hey, select multiple somethings", _
mySelectedObjects) = Selection.Response.Ok Then
For Each mySelObj As Object In mySelectedObjects
Dim boundaryFaces1(-1) As Face
Dim faceTangentRule1 As FaceTangentRule
faceTangentRule1 = workPart.ScRuleFactory.CreateRuleFaceTangent(mySelObj, boundaryFaces1, 0.5)
Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject("SquareMilliMeter"), Unit)
Dim unit2 As Unit = CType(workPart.UnitCollection.FindObject("MilliMeter"), Unit)
Dim rules1(0) As SelectionIntentRule
rules1(0) = faceTangentRule1
measureFaceBuilder1.FaceCollector.ReplaceRules(rules1, False)
Dim measureFaces1 As MeasureFaces
measureFaces1 = workPart.MeasureManager.NewFaceProperties(unit1, unit2, 0.99, measureFaceBuilder1.FaceCollector)
Dim measure1 As Measure
measure1 = measureFaces1.CreateFeature()
lw.Open()
lw.WriteLine("to string :" & myselobj.tostring)
lw.WriteLine("journalidentifier :" & myselobj.journalidentifier)
lw.WriteLine("color :" & myselobj.color)
lw.WriteLine("name :" & myselobj.name)
Dim x1, x2 As Double
x1 = measureFaces1.Area
x2 = measureFaces1.Perimeter
lw.WriteLine("Area :" & x1)
lw.WriteLine("Perimeter :" & x2)
Next
End If
End Sub
Function SelectObjects(ByVal prompt As String, _
ByRef selObj As NXObject()) As Selection.Response
Dim theUI As UI = UI.GetUI
Dim typeArray() As Selection.SelectionType = _
{ _
Selection.SelectionType.Faces}
Dim resp As Selection.Response = theUI.SelectionManager.SelectObjects( _
prompt, "Choisir les faces a mailler", _
Selection.SelectionScope.AnyInAssembly, _
False, typeArray, selobj)
If resp = Selection.Response.ObjectSelected Or _
resp = Selection.Response.ObjectSelectedByName Or _
resp = Selection.Response.OK Then
Return Selection.Response.Ok
Else
Return Selection.Response.Cancel
End If
End Function
End Module