| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
 | BCT erneut als Spitzenanbieter für lösungsorientierte PLM-Software und Dienstleistungen ausgezeichnet, eine Pressemitteilung
|
Autor
|
Thema: Features Wählen und löschen (1970 mal gelesen)
|
Johannes Sauber Mitglied Masterand

 Beiträge: 10 Registriert: 12.05.2011
|
erstellt am: 05. Aug. 2011 12:03 <-- editieren / zitieren --> Unities abgeben:         
Servus, erst mal einen rießen Dank an euch alle für die vielen Tipps, die mir schon oft enorm geholfen haben und damit Hallo. Ich bin von SolidWorks gerade in die Solid Edge API eingestiegen und kämpfe noch mit den Unterschieden. Mein Problem: Ich möchte von einem Part verschiedene Ausschnitte bzw. Features anhand eines Vergleichs auswählen und dann löschen. Problem ist, dass ich es nicht hin bekomme, Namen bzw. irgendeine Identifikation der Features zu erhalten. Somit kann ich sie nicht koordiniert selektieren. Bisher kann ich nur alle Features auswählen und löschen: SEApp = CType(GetObject(, "SolidEdge.Application"), Application) SEPart = CType(SEApp.ActiveDocument, SolidEdgePart.PartDocument) SESelectSet = SEPart.SelectSet SEModels = SEPart.Models SEModel = SEModels.Item(1) SEFeatures = SEModel.Features For intFeaturecounter = 1 To SEFeatures.Count SESelectSet.Add(SEFeatures.Item(intFeaturecounter)) 'Vergleich, ob Feature bekannt ist und gelöscht werden soll SESelectSet.Delete() Next Ich hoffe ich bin hiermit nicht vollkommen auf dem Holzweg! Herzlichen Dank schon mal im Vorraus Johannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2019
|
erstellt am: 05. Aug. 2011 19:01 <-- editieren / zitieren --> Unities abgeben:          Nur für Johannes Sauber
Johannes, fast jedes Feature (SEFeatures.Item(intFeaturecounter)) hat die Eigenschaften Name, DisplayName und Type. Die einzelnen Typen findest du in der Auflistung SolidEdgeConstants/FeatureTypeConstants. pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Johannes Sauber Mitglied Masterand

 Beiträge: 10 Registriert: 12.05.2011
|
erstellt am: 08. Aug. 2011 14:22 <-- editieren / zitieren --> Unities abgeben:         
Servus, erstmal danke für die Antwort Pablo! Habe es jetzt über einen etwas anderen Weg geschafft, da ich über das Model nicht auf die Eigenschaften .Name, etc. zugreifen kann. ich überprüfe jetzt über das Partdoc und den featuretyp. Ist zwar umständlich aber es geht. Hier meine Lösung: Dim objEXtrudedCutouts As SolidEdgePart.ExtrudedCutouts Dim objExtrudedHelixcuts As SolidEdgePart.HelixCutouts SEApp = CType(GetObject(, "SolidEdge.Application"), Application) SEPart = CType(SEApp.ActiveDocument, SolidEdgePart.PartDocument) objEXtrudedCutouts = SEModel.ExtrudedCutouts objExtrudedHelixcuts = SEModel.HelixCutouts For Each Extrudedcutout As SolidEdgePart.ExtrudedCutout In objEXtrudedCutouts MessageBox.Show(Extrudedcutout.Name) Extrudedcutout.Delete() Next For Each Helixcutout As SolidEdgePart.HelixCutout In objExtrudedHelixcuts MessageBox.Show(Helixcutout.Name) Helixcutout.Delete() Next Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002 Win10 Office 365 SE 2019
|
erstellt am: 08. Aug. 2011 15:03 <-- editieren / zitieren --> Unities abgeben:          Nur für Johannes Sauber
Servus Johannes, Zur Information: Die beiden Objekte SEModel.Features.Item(1) und SEPart.ExtrudedProtrusions.Item(1) sind identisch, wenn das BodyFeature eine Ausprägung ist. Daher haben auch beide die Eigenschaft .Name und die Methode .Delete. Die Features-Collection enthält unterschiedliche Objekte, die als object deklariert sind, du kannst den jeweiligen Typen mit TypeName ermitteln. pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Johannes Sauber Mitglied Masterand

 Beiträge: 10 Registriert: 12.05.2011
|
erstellt am: 08. Aug. 2011 16:13 <-- editieren / zitieren --> Unities abgeben:         
Servus, über das Model SEModel.Features.Item(1) hatte ich es probiert, konnte aber nicht auf die Eigenschaft .Name zugreifen. Mögliche Erklärung meinerseits, dass ich VB.NET verwende und nicht VB6. Wenn ich im Debugger bzw. der Überwachung SEModel.Features.Item(1).name eingebe, dann zeigt er mir die richtige Eigenschaft "Helixcutout_1" an, aber in der Programmierung meckert er bzw. zeigt mir die Eigenschaft .name gar nicht an. SEPart.ExtrudedProtrusions.Item(1).name hingegen funktioniert. Vielen Dank Johannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |