| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| E-Book: Simulation für Hightech Innovationen |
Autor
|
Thema: VB.net: Selektion mehrerer Flächen (1126 mal gelesen)
|
JensemannDU Mitglied Student
Beiträge: 69 Registriert: 13.10.2009 Windows 7 Prof. 32 Bit SolidWorks 2009 SP4.0 Visual Studio 2008 Dell XPS M1530 Core2Duo 2,4 GHz 4 GB RAM GeForce 8600M GT
|
erstellt am: 19. Jan. 2010 16:00 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wieder einmal hält mich ein Problem auf, dass euch wahrscheinlich eher trivial vorkommen wird. Ich habe in SolidWorks mehrere Flächen ausgewählt und hatte nun vor, die mit der Methode GetSelectedObject6 in VB.net über ein Array/List bereitzustellen, was natürlich nicht klappt. Kann mir jemand sagen, ob mein Ansatz komplett falsch ist, oder einen Tipp geben, wie ich es hinbekommen kann? Schon mal vielen Dank fürs Lesen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 19. Jan. 2010 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für JensemannDU
|
JensemannDU Mitglied Student
Beiträge: 69 Registriert: 13.10.2009 Windows 7 Prof. 32 Bit SolidWorks 2009 SP4.0 Visual Studio 2008 Dell XPS M1530 Core2Duo 2,4 GHz 4 GB RAM GeForce 8600M GT
|
erstellt am: 19. Jan. 2010 16:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, das Problem fängt schon dabei an, dass GetSelectedObject6 nur einen Index Parameter zulässt, also beispielsweise kein from 1 to instance.GetSelectedObjectCount2. Dann stellt sich mir die Frage, in was das Ergebnis gespeichert werden soll/kann, List oder Array. Habe es bisher mit beidem versucht allerdings ohne Erfolg. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 19. Jan. 2010 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für JensemannDU
Hallo, bei dem Parameter handelt es sich nicht um den Index sondern um den Mark Wert. Hier mal ein Auszug aus dem Der SolidWorks Selektionsmanager Snippet von meiner Seite: Index und Mark-Wert Neben einem normalen Index, welcher allerdings .net untypisch mit „1“ und nicht „0“ beginnt, gibt es einen so genannten Mark Wert. Dieser Mark-Wert ordnet die Selektionen in verschiedene Gruppen. Diese Gruppen repräsentieren einen Auswahlbereich (Selektionbox) eines PropertyManager. Ein kleines Beispiel verdeutlicht dies: Der SolidWorks Befehl „Lineares Muster“ öffnet einen PropertyManager in welchem eine Feature in zwei Richtungen gemustert werden kann. Für beide Richtungen steht jeweils ein eigener Auswahlbereich zur Verfügung, mit der die Richtung definiert werden kann. Diese beiden Auswahlbereiche werden in der SolidWorks API durch ihren Mark-Wert eindeutig definiert. Auch die selektierten Elemente können durch den Mark-Wert eindeutig ermittelt werden. Die jeweiligen Mark-Werte der benötigten Selektionen können in der SolidWorks API Hilfe nachgeschlagen werden. Für den im Beispiel verwendeten Befehl FeatureLinearPattern2 sind diese beim Mustern eines Features die Mark-Werte 1 und 2 für die beiden Richtungen, sowie der Mark-Wert 4 für das gemusterte Feature. Du kannst also mit dem Mark Wert -1 alle selektierten Elemente in einer Schleife verarbeiten:
Code: 'Alle selektierten Elemente in einer Schleife durchlaufen Dim eSwSelectType As swconst.swSelectType_e Dim oSwSelectionMgr As sldworks.SelectionMgr Dim oSelItems As New List(Of Object) For iIndex As Integer = 1 To _ oSwSelectionMgr.GetSelectedObjectCount2(-1) 'Typ der Seketion eSwSelectType = CType( _ oSwSelectionMgr.GetSelectedObjectType3(iIndex, -1), _ swconst.swSelectType_e) Debug.Print(eSwSelectType.ToString) 'Objekt der Selektion oSelItems.Add(oSwSelectionMgr.GetSelectedObject6(iIndex, -1)) Next
Mit Hilfe von GetSelectedObjectType3 kannst du die selektieren Elemente nach dem Typ filtern, so das du nur Flächen berücksichtigst.
Code: If eSwSelectType = swconst.swSelectType_e.swSelFACES Then '.... End If
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischen Produktdesigner (m/w/d) | Die 1886 bei Zella-Mehlis/Thüringen gegründete Firma Carl Walther ist heute bekannt durch Großkaliber-Pistolen für Polizei und Behörden einerseits wie durch hochwertige Sportwaffen als Gegenpol. Beide Bereiche basieren auf der nun 130 Jahre alten Geschichte exzellenten Waffenbaus im Zeichen der ?WALTHER-Schleife?. Legendäre Kurzwaffen wie die auch von Agent 007 James Bond bevorzugte Walther PPK, die Bundeswehr-Pistole P.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
JensemannDU Mitglied Student
Beiträge: 69 Registriert: 13.10.2009 Windows 7 Prof. 32 Bit SolidWorks 2009 SP4.0 Visual Studio 2008 Dell XPS M1530 Core2Duo 2,4 GHz 4 GB RAM GeForce 8600M GT
|
erstellt am: 19. Jan. 2010 16:52 <-- editieren / zitieren --> Unities abgeben:
|