ChaseWichert
Mining
- Jan 4, 2012
- 147
Okay, so I am on NX 7.5.5.4, and I have written a journal to go through all objects and if it is a solid body on a certain set of layers it will take the mass measure. However, it isn't getting all of the bodies, it is seemingly random on the bodies it is measuring. All of the bodies are either linked into my assembly model or are modeled in. Sorry there isn't a lot of commenting done yet.
This is the config file
And this is the Layer Import File
Code:
'NX 7.5.5.4
'Journal created by cdwicher on Thur April 11 01:20:00 Pacific Daylight Time
Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.UI
Imports System.IO
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim theSession As Session = Session.GetSession()
Dim WorkPart As Part = theSession.Parts.Work
Dim DisplayPart As Part = theSession.Parts.Display
Dim MarkId1 As Session.UndoMarkId = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Update Session")
Dim ufs As UFSession = UFSession.GetUFSession()
Dim filewrite As System.IO.StreamWriter
filewrite = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\cdwicher\Desktop\Debug.txt", False)
filewrite.AutoFlush = True
'Read in Configuration File
Dim TempStreamRead As StreamReader = File.OpenText("C:\Users\cdwicher\Desktop\WeightMeasureConfig.txt")
Dim TempWeightCategories() As String = TempStreamRead.ReadToEnd().Split(Chr(10))
TempStreamRead.Close()
Dim WeightCategories(0) As String
Dim WeightMultiplier(0) As String
'Filter Unnecessary information from file Import
Dim a As Integer
Dim b As Integer = 0
For a = 0 To TempWeightCategories.GetUpperBound(0)
If String.Compare(TempWeightCategories(a), "EOF") <> 0 Then
If String.Compare(Left(TempWeightCategories(a), 1), "'") <> 0 Then
Dim tempsplit() As String = TempWeightCategories(a).Split(",")
ReDim Preserve WeightCategories(0 To b)
WeightCategories(b) = tempsplit(0).Trim
ReDim Preserve WeightMultiplier(0 To b)
WeightMultiplier(b) = tempsplit(1).Trim
b = b + 1
Else
End If
Else
Exit For
End If
Next
'Read in Layer Config File
TempStreamRead = File.OpenText("C:\Users\cdwicher\Desktop\Bucket LayersCSV.csv")
Dim tempLayerRead() As String = TempStreamRead.ReadToEnd().Split(Chr(10))
TempStreamRead.Close()
'Filter and sort Layer config File
Dim WeightLayers(-1) As String
Dim WeightLayerCategory(-1) As String
For a = 0 To tempLayerRead.GetUpperBound(0)
Dim tempsplit() As String = tempLayerRead(a).Split(",")
If tempsplit.Length > 1 Then
ReDim Preserve WeightLayers(0 To a)
WeightLayers(a) = tempsplit(1).Trim
ReDim Preserve WeightLayerCategory(0 To a)
WeightLayerCategory(a) = tempsplit(2).Trim
End If
Next
Dim Mass(WeightLayerCategory.Length - 1) As String
For a = 0 To WeightCategories.Length - 1
b = -1
Dim c As Integer = 0
Dim templayerlist(-1) As String
For b = 0 To WeightLayers.Length - 1
If String.Compare(WeightCategories(a), WeightLayerCategory(b)) = 0 Then
ReDim Preserve templayerlist(0 To c)
templayerlist(c) = WeightLayers(b)
'MsgBox("Matched")
'MsgBox(templayerlist(c))
filewrite.WriteLine(templayerlist(c))
c = c + 1
End If
Next
Dim d As Integer = 0
Dim templayerobjects(-1) As NXObject
Dim e As Integer = 1
Dim layerobjects(-1) As NXObject
'This loop finds objects on layers in templayerlist and stores them in layerobjects
For d = 0 To templayerlist.Length - 1
Try
templayerobjects = WorkPart.Layers.GetAllObjectsOnLayer(templayerlist(d))
Catch ex As Exception
End Try
If templayerobjects.Length <> 0 Then
For z As Integer = 0 To templayerobjects.Length - 1
ReDim Preserve layerobjects(0 To layerobjects.Length)
layerobjects(layerobjects.Length - 1) = templayerobjects(z)
z = z + 1
Next
End If
Next
Dim tempbodyobjects(-1) As Body
Dim g As Integer = 0
Dim f As Integer = 0
If layerobjects.Length <> 0 Then
For f = 0 To layerobjects.Length - 1
Try
ReDim Preserve tempbodyobjects(0 To tempbodyobjects.Length)
tempbodyobjects(g) = CType(layerobjects(f), Body)
g = g + 1
Catch ex As Exception
End Try
Next
Dim tempsolidobjects(-1) As Body
g = 0
For f = 0 To tempbodyobjects.Length - 1
Try
If tempbodyobjects(f).IsSolidBody Then
ReDim Preserve tempsolidobjects(0 To tempsolidobjects.Length)
tempsolidobjects(g) = tempbodyobjects(f)
g = g + 1
End If
Catch ex As Exception
End Try
Next
If tempsolidobjects.Length = 0 Then
Mass(a) = 0
Else
For i As Integer = 0 To tempsolidobjects.Length - 1
tempsolidobjects(i).Unblank()
Next
Dim solidtag(-1) As NXOpen.Tag
MsgBox(tempsolidobjects.Length)
For f = 0 To tempsolidobjects.Length - 1
If tempsolidobjects.Length = 0 Then
Else
ReDim Preserve solidtag(0 To solidtag.Length)
solidtag(solidtag.Length - 1) = tempsolidobjects(f).Tag
End If
Next
Dim massprops(46) As Double
Dim massstat(12) As Double
Dim accvalue(11) As Double
accvalue(0) = 0.99
ufs.Modl.AskMassProps3d(solidtag, solidtag.Length, 1, 1, 0.0375, 1, accvalue, massprops, massstat)
Mass(a) = massprops(2)
End If
End If
Next
a = 0
Dim lw As ListingWindow = theSession.ListingWindow
lw.Open()
For a = 0 To Mass.Length - 1
lw.WriteLine(Mass(a))
Next
filewrite.Close()
End Sub
End Module
This is the config file
Code:
'Bare Bucket Weights,Multiplification Factor
'Bare Bucket Center x1
BBC,1
'Bare Bucket Left x2
BBL,2
'Bare Bucket Right x1
BBR,1
'-------------------------------------------
'Pins & Locks Weights,Multiplication Factor
'Pins&Locks Left x2
PLL,2
'Pins and Locks Anchor Bracket x1
PLLAB,1
'Pins and Locks Anchor Bracket x1
PLRAB,1
'-------------------------------------------
'Inside Wear Protection,Multiplication Factor
'Center x1
IWPC,1
'Left x2
IWPL,2
'-------------------------------------------
'Outside Wear Protection,Multiplication Factor
'Center x1
OWPC,1
'Left x2
OWPL,2
'-------------------------------------------
'Shrouds,Multiplaction Factor
'All Shrouds x1
SHR,1
'-------------------------------------------
'All GET x1
'GET,Multiplcation Factor
GET,1
'
'
EOF
And this is the Layer Import File
Code:
-Volume Body and Measure,1-5,NONE
Vol Struck Body,1,NONE
Vol Rated Body,2,NONE
Vol Struck Measurement,3,NONE
Vol Rated Measurement,4,NONE
Vol CIMA Cube,5,NONE
Insert Category Name Here,6,NONE
Insert Category Name Here,7,NONE
Insert Category Name Here,8,NONE
Insert Category Name Here,9,NONE
-Structural Plates,10-39,NONE
Plate Bottom Primary,10,BBC
Plate Bottom Secondary,11,BBC
Plate Bottom Transition,12,BBC
Plate Back,13,BBC
Plate Back Top Stiffener,14,BBC
Plate Front Side Left,15,BBL
Plate Front Side Right,16,NONE
Plate Trunnion Side Left,17,BBL
Plate Trunnion Side Right,18,NONE
Plate Back Side Left,19,BBL
Plate Back Side Right,20,NONE
Plate Top Side Left,21,BBL
Plate Top Side Right,22,NONE
Plate Cheek Stiffener Left,23,BBL
Plate Cheek Stiffener Right,24,NONE
Plate Gusset Front Top Left,25,BBL
Plate Gusset Front Top Right,26,NONE
Plate Gusset Back Top Left,27,BBL
Plate Gusset Back Top Right,28,NONE
Plate Gusset Front Btm Left,29,BBL
Plate Gusset Front Btm Right,30,NONE
Plate Gusset Back Btm Left,31,BBL
Plate Gusset Back Btm Right,32,NONE
Plate Rub Rail Side Left,33,BBL
Plate Rub Rail Side Right,34,NONE
Plate Bottom Corner Left,35,BBL
Plate Bottom Corner Right,36,NONE
Insert Category Name Here,37,NONE
Insert Category Name Here,38,NONE
Insert Category Name Here,39,NONE
Insert Category Name Here,40,NONE
Insert Category Name Here,41,NONE
Insert Category Name Here,42,NONE
Insert Category Name Here,43,NONE
Insert Category Name Here,44,NONE
-Dress Castings,45-46,NONE
Name Plate Left,45,BBL
Name Plate Right,46,NONE
-Dress Plates,47-49,NONE
Plate ESCO Blade Left,47,BBL
Plate ESCO Blade Right,48,NONE
Insert Category Name Here,49,NONE
-Drawing,50-59,NONE
Insert Category Name Here,50,NONE
Insert Category Name Here,51,NONE
Insert Category Name Here,52,NONE
Insert Category Name Here,53,NONE
Insert Category Name Here,54,NONE
Insert Category Name Here,55,NONE
Insert Category Name Here,56,NONE
Insert Category Name Here,57,NONE
Insert Category Name Here,58,NONE
Insert Category Name Here,59,NONE
-Linked Bodies,60-69,NONE
Pin Trunnion Left,60,PLL
Pin Trunnion Right,61,NONE
Pin Hitch Hardware Left,62,PLL
Pin Hitch Hardware Right,63,NONE
Pin Anchor Hardware Left,64,PLLAB
Pin Anchor Hardware Right,65,PLRAB
Insert Category Name Here,66,NONE
Insert Category Name Here,67,NONE
Insert Category Name Here,68,NONE
Insert Category Name Here,69,NONE
-Liner Plates,70-89,NONE
Insert Category Name Here,70,NONE
Insert Category Name Here,71,NONE
Insert Category Name Here,72,NONE
Insert Category Name Here,73,NONE
Insert Category Name Here,74,NONE
Insert Category Name Here,75,NONE
Insert Category Name Here,76,NONE
Insert Category Name Here,77,NONE
Insert Category Name Here,78,NONE
Insert Category Name Here,79,NONE
Insert Category Name Here,80,NONE
Insert Category Name Here,81,NONE
Insert Category Name Here,82,NONE
Insert Category Name Here,83,NONE
Insert Category Name Here,84,NONE
Insert Category Name Here,85,NONE
Insert Category Name Here,86,NONE
Insert Category Name Here,87,NONE
Insert Category Name Here,88,NONE
Insert Category Name Here,89,NONE
-Wear Plates,90-119,NONE
Bottom Wear Plates,90,OWPC
Trunnion Protection LH,91,OWPL
Trunnion Protection RH,92,NONE
Corner Wear Plates LH,93,OWPL
Corner Wear Plates RH,94,NONE
Insert Category Name Here,95,NONE
Insert Category Name Here,96,NONE
Insert Category Name Here,97,NONE
Insert Category Name Here,98,NONE
Insert Category Name Here,99,NONE
Insert Category Name Here,100,NONE
Insert Category Name Here,101,NONE
Insert Category Name Here,102,NONE
Insert Category Name Here,103,NONE
Insert Category Name Here,104,NONE
Insert Category Name Here,105,NONE
Insert Category Name Here,106,NONE
Insert Category Name Here,107,NONE
Insert Category Name Here,108,NONE
Insert Category Name Here,109,NONE
Insert Category Name Here,110,NONE
Insert Category Name Here,111,NONE
Insert Category Name Here,112,NONE
Insert Category Name Here,113,NONE
Insert Category Name Here,114,NONE
Insert Category Name Here,115,NONE
Insert Category Name Here,116,NONE
Insert Category Name Here,117,NONE
Insert Category Name Here,118,NONE
Insert Category Name Here,119,NONE
Insert Category Name Here,120,NONE
Insert Category Name Here,121,NONE
Insert Category Name Here,122,NONE
Insert Category Name Here,123,NONE
Insert Category Name Here,124,NONE
Insert Category Name Here,125,NONE
Insert Category Name Here,126,NONE
Insert Category Name Here,127,NONE
Insert Category Name Here,128,NONE
Insert Category Name Here,129,NONE
-Curves,130-139,NONE
Insert Category Name Here,130,NONE
Insert Category Name Here,131,NONE
Insert Category Name Here,132,NONE
Insert Category Name Here,133,NONE
Insert Category Name Here,134,NONE
Insert Category Name Here,135,NONE
Insert Category Name Here,136,NONE
Insert Category Name Here,137,NONE
Insert Category Name Here,138,NONE
Insert Category Name Here,139,NONE
-Components,140-148,NONE
Cmp Front End Ring Castings,140,NONE
Cmp Basket Castings,141,NONE
Cmp Trunnion Hardware,142,NONE
Cmp Anchor Hardware,143,NONE
Cmp Hitch Hardware,144,NONE
Cmp Plates,145,NONE
Insert Category Name Here,146,NONE
Insert Category Name Here,147,NONE
Insert Category Name Here,148,NONE
-Assembly Constraints,149,NONE
-Sketches,150-169,NONE
Skt Struck Volume,150,NONE
Skt Bottom Plate,151,NONE
Skt Transition Plate,152,NONE
Skt Back Plate,153,NONE
Skt Back Stiffener Plate,154,NONE
Skt Side Plate,155,NONE
Skt Side Gusset Plates,156,NONE
Skt Bottom Corner Plate,157,NONE
Skt Cheek Stiffener Plate,158,NONE
Skt Trim Objects,159,NONE
Skt Liner Plate,160,NONE
Skt Wear Plate,161,NONE
Insert Category Name Here,162,NONE
Insert Category Name Here,163,NONE
Insert Category Name Here,164,NONE
Insert Category Name Here,165,NONE
Insert Category Name Here,166,NONE
Insert Category Name Here,167,NONE
Analysis,168-169,NONE
Insert Category Name Here,168,NONE
Insert Category Name Here,169,NONE
-Flat Patterns,170-199,NONE
FP Bottom Plate Primary,170,NONE
FP Bottom Plate,171,NONE
FP Bottom Transition Plate,172,NONE
FP Back Plate,173,NONE
FP Back Top Stiffener Plate,174,NONE
FP Front Side Plate Left,175,NONE
FP Front Side Plate Right,176,NONE
FP Trunnion Side Plate,177,NONE
FP Back Side Plate Left,178,NONE
FP Back Side Plate Right,179,NONE
FP Top Side Plate Left,180,NONE
FP Top Side Plate Right,181,NONE
FP Cheek Stiffener Plate Left,182,NONE
FP Cheek Stiffener Plate Right,183,NONE
FP Gusset Front Top,184,NONE
FP Gusset Back Top,185,NONE
FP Gusset Front Bottom,186,NONE
FP Gusset Back Bottom,187,NONE
FP Rub Rail Side Plate Left,188,NONE
FP Rub Rail Side Plate Right,189,NONE
FP Bottom Corner Plate,190,NONE
Insert Category Name Here,191,NONE
Insert Category Name Here,192,NONE
Insert Category Name Here,193,NONE
Insert Category Name Here,194,NONE
Insert Category Name Here,195,NONE
Insert Category Name Here,196,NONE
Insert Category Name Here,197,NONE
Insert Category Name Here,198,NONE
Insert Category Name Here,199,NONE
-Datum Planes,200-209,NONE
Absolute Coordinate System,200,NONE
Insert Category Name Here,201,NONE
Insert Category Name Here,202,NONE
Insert Category Name Here,203,NONE
Insert Category Name Here,204,NONE
Insert Category Name Here,205,NONE
Insert Category Name Here,206,NONE
Insert Category Name Here,207,NONE
Insert Category Name Here,208,NONE
Sketch Planes,209,NONE
Insert Category Name Here,210,NONE
Insert Category Name Here,211,NONE
Insert Category Name Here,212,NONE
Insert Category Name Here,213,NONE
Insert Category Name Here,214,NONE
Insert Category Name Here,215,NONE
Insert Category Name Here,216,NONE
Insert Category Name Here,217,NONE
Insert Category Name Here,218,NONE
Insert Category Name Here,219,NONE
-Locator Objects,220-221,NONE
Location Objects,220,NONE
Location Outline Curves,221,NONE
-Measurement Objects,222,NONE
-Trim Objects,223,NONE
Insert Category Name Here,224,NONE
Insert Category Name Here,225,NONE
Insert Category Name Here,226,NONE
-Castings,227-256,NONE
Front End Ring Castings,227-236,NONE
Cst Shrouds,227,SHR
Cst GET - Adptr/Pnt,228,GET
Cst Lip,229,BBC
Cst Cheek Left,230,BBL
Cst Cheek Right,231,NONE
Cst Cheek Extension Left,232,BBL
Cst Cheek Extension Right,233,NONE
Cst Arch Left,234,BBL
Cst Arch Right,235,NONE
Cst Arch Center,236,BBC
Basket Castings,237-249,NONE
Cst Bottom Crnr/Ext Left,237,BBL
Cst Bottom Crnr/Ext Right,238,NONE
Cst Trunnion left,239,BBL
Cst Trunnion Right,240,NONE
Cst Back Corners Left,241,BBL
Cst Back Corners Right,242,NONE
Cst Top Corner Left,243,BBL
Cst Top Corner Right,244,NONE
Cst Side Top Rails Left,245,BBL
Cst Side Top Rails Right,246,NONE
Cst Back Top Rail Left,247,BBL
Cst Back Top Rail Right,248,NONE
Cst Back Top Rail Center,249,BBC
Cst Cheek Wear Shoe Left,250,BBL
Cst Cheek Wear Shoe Right,251,NONE
Cst Heel Wear Shoe Left,252,BBL
Cst Heel Wear Shoe Right,253,NONE
Cst Anchor Left,254,BBL
Cst Anchor Right,255,BBR
Insert Category Name Here,256,NONE