(Danke für den Hinweis, hab das mal in das SW-Forum vorschoben!)
Hallo,
ich schriebe an einem Progrämmchen um Flächen oder Volumenkörper von Solid Works in Ansys zu importieren.
Das Programm schreibt ein Importskript. Ich erhoffe damit bessere Informationen zu übertragen statt eine
dumme IGS Datei zu importieren. Vorab importiere ich eine IGS als reine Flächen ins Solid Works(also Part)!
Im Feature Baum tauchen dann nur z.b. "Oberfläche-Importiert01,Oberfläche-Importiert02" usw. auf!
Mit dem Programm "SelectedFeaturetoList" ermittel ich die selektierten Elemente und übertrage in eine Liste,
damit arbeiten ich dann weiter. Das funktioniert wenn ich zb. "Oberfläche-Importiert01" im Feature-Baum
anselektiere. Nach Ausführung seht in der Liste "Oberfläche-Importiert01" usw.
Ich habe folgendes Problem:
Wenn ich die Fläche im Modell selektiere weis ich nicht wie ich den zugehörigen Körpername bzw. das Feature ermittel kann(also der Name im Featurebaum). Die Selektierte Fläche ist dann vom Typ swSelFACES und hat keinen Namen!
Hier das Unterprogamm. Kann mir jemand helfen? Ich hab keinen Rat mehr.
Das Unterprogramm nutzt die MySldWorks Klasse von Herrn Bühling (http://www.mysldworks.de)
Friend ReadOnly Property SelectedFeaturetoList() As List(Of String)
Get
'Solid WorksOkjekt mit aktuellen Dokument
Dim oMySldWorks As MySldWorksCls
oMySldWorks = New MySldWorksCls
oMySldWorks.SolidWorksInstanz()
Dim oSwModel As Object = oMySldWorks.AktuellesDokument
'SelektionManager Objekt
Dim oSwSelectionMgr As SldWorks.SelectionMgr
oSwSelectionMgr = CType(oSwModel.SelectionManager, SldWorks.SelectionMgr)
Dim selObj As Object
Dim Name As String
'Mark-Wert für alle Selektionen festlegen
Dim iMarkWert As Integer = -1
'Typ der Selektionen
Dim eSwSelectType As SwConst.swSelectType_e
'Anzahl aller selektierten Elemente
'Debug.Print(CStr(oSwSelectionMgr.GetSelectedObjectCount2(iMarkWert)))
'Liste
Dim SelectedFeatureList As New List(Of String)
'Alle selektierten Elemente in einer Schleife durchlaufen und Liste damit füllen
For iIndex As Integer = 1 To oSwSelectionMgr.GetSelectedObjectCount2(iMarkWert)
'Typ der Seketion
eSwSelectType = CType(oSwSelectionMgr.GetSelectedObjectType3(iIndex, iMarkWert), _ SwConst.swSelectType_e)
selObj = oSwSelectionMgr.GetSelectedObject5(iIndex)
Name = oSwModel.GetEntityName(selObj)
'Fehlerliste schreiben
'Debug.Print(eSwSelectType.ToString)
'Debug.Print(selObj.ToString)
'Debug.Print(Name)
'Prüfe ob Typ korrekt ist
If eSwSelectType.ToString = "swSelREFSURFACES" Then
SelectedFeatureList.Add(Name)
Else
'Sonst Fehlermeldung
MsgBox("Ungültige Auswahl,ignoriere Selektion: " & Name, vbExclamation, "SWtoA")
End If
Next
Return SelectedFeatueList
End Get
End Property
------------------
Intel(R) Core(TM) Duo CPU
E8600 @ 3.33GHz
RAM: 8.00GB
NVidia Quadro FX 1700
Windows Vista
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP