| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | SOLIDWORKS Online-Kurse | Jederzeit verfügbar << , ein Kurs
|
Autor
|
Thema: VBA markiertes Teil virutell machen (1778 / mal gelesen)
|
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 11. Sep. 2017 15:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo mal wieder, ich habe momentan etwas Schwierigkeiten und hoffe jemand von euch kann mir helfen. Wie kann ich ein bereits markiertes Teil in einer Baugruppe mittels VBA virtuell machen? Ich danke schon mal in voraus für jegliche Art von Hilfe :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 729 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+ CSWE 2018
|
erstellt am: 11. Sep. 2017 15:46 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
|
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 12. Sep. 2017 06:30 <-- editieren / zitieren --> Unities abgeben:         
Danke für die schnelle Antwort Jens, aber irgendwie kriege ich es dennoch nicht gebacken Der erste Link bezieht sich ja auf markierte Flächen, Ecken, Kanten usw., für mich so leider keine Verwendbarkeit. Deinen zweiten Link hatte ich auch schon gefunden, werde aber nicht schlau draus. Bisher sieht mein Makro so aus... Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Anschluss@Baugruppe1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) End Sub Anschließend wollte ich Part.MakeVirtual() = True verwenden aber dann kommt Laufzeitfehler 438 (ich weiß... Makro-Recorder ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3878 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 12. Sep. 2017 06:44 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
Also ganz viel besser als Jens mit seinen 2 Links kann man Dir die Lösung nur auftischen, wenn man Dir die drei Zeilen (ohne Deklaration), die Du aus den Links kopieren musst, hier direkt hinschreibt. Möchtest Du das? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 12. Sep. 2017 06:51 <-- editieren / zitieren --> Unities abgeben:         
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 12. Sep. 2017 07:35 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
Hallo, Code: Set Part = swApp.ActiveDoc
dir ist bewusst das in deiner Variablen "Part" die Baugruppe drin ist? Code: boolstatus = Part.Extension.SelectByID2("Anschluss@Baugruppe1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Hier wird immer die gleiche Componente selektirert, ist das beabsichtigt? Code: Part.MakeVirtual()
Hier versuchst du die Hauptbaugruppe virtuell zu machen (da diese ja im Objekt "Part" drin steckt), was nicht möglich ist. Wenn du eine Componente selektierst musst du diese erst über den SelectionManager in eine Variable packen die du dann auch Virtuel machen kannst. Der Hinweis von Jens Ziel daraufhin ab das du ja wahrscheinlich Teile im Grafikbereich selektieren willst um sie dann virtuell zu machen, daher würde er über die selektierten Entities (Flächen, Kanten etc.) auf die dazugehörigen Komponenten gehen um diese dann Virtuell zu machen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 12. Sep. 2017 07:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo Bernd, die im boolstatus enthaltenen Teil- und Baugruppennamen werden über eine zuvor eingeladenen Textdatei in einen String geschrieben (boolstatus = Part.Extension.SelectByID2(String1 & "@" & String2, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) Nach diesem Anwählen konnte ich über Part. schon mehrere Sachen machen, z.b. Part.EditDelete2 nur dieses MakeVirtual ralle ich einfach nicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3878 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 12. Sep. 2017 08:02 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
ungetestet! Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim swSelectionMgr As SldWorks.SelectionMgr Dim swEntity As SldWorks.Entity Dim swComponent As SldWorks.Component2 Sub main() Set swApp = Application.SldWorks Set swSelectionMgr = swModel.SelectionManager Set Part = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Anschluss@Baugruppe1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) Set swEntity = swSelectionMgr.GetSelectedObject6(1, -1) Set swComponent = swEntity.GetComponent boolstatus = swcomponent.MakeVirtual End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 12. Sep. 2017 12:22 <-- editieren / zitieren --> Unities abgeben:         
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 12. Sep. 2017 12:45 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
Hallo, sollte hier in deinem Fall auch eher "Part.SelectionManager" heisen. Wäre mir beim freihandtippen aber bestimmt auch passiert da die Deklaration mit swModel für diese Variable geläufiger ist wie Part. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3878 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 12. Sep. 2017 12:59 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
|