| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
|
Autor
|
Thema: API Komponenten Name einlesen (1844 mal gelesen)
|
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 10:05 <-- editieren / zitieren --> Unities abgeben:         
|
SLDW-FEM Mitglied Simulations-Ingenieur
  
 Beiträge: 643 Registriert: 21.02.2005 Solidworks 2017+2019+20+22 SpaceClaim Windows 11 64bit HP-ZBook 32gbRAM NVIDIA
|
erstellt am: 14. Apr. 2008 11:38 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
|
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 11:45 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von SLDW-FEM: Hallo auchSuch mal in der api-Hilfe nach bom Da steht alles mit Beispielen
Funktionieren die bom befehle denn auch in einer Baugruppe? Dachte das funktioniert nur auf einer Zeichnung? [Diese Nachricht wurde von gegy3 am 14. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
    
 Beiträge: 1764 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 14. Apr. 2008 11:57 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
|
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: 14. Apr. 2008 12:03 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
|
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 12:34 <-- editieren / zitieren --> Unities abgeben:         
klingt gut! weiß jetzt nur noch nicht, wie ich den namen meiner Selektion im featuremanager in eine Variable schreibe. und ähmmm.. ja, ich steh ziemlich am Anfang mit der Programmierung in der solidworks API *g* Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 14:32 <-- editieren / zitieren --> Unities abgeben:         
Also wenn ich den code dim name as object name = Component2.Name2() nutze, sagt er mir als Fehler "Object benötigt". in der API Hilfe steht aber, das der name der selektierten Komponente zurückgegeben wird. Wenn ich aber nun eine komponente händisch markiert habe müsste es doch so funktionieren, oder?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lutz Federbusch Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau

 Beiträge: 3094 Registriert: 03.12.2001 alle SW seit 97+ AutoCAD2016-2022 ERP ProAlpha + CA-Link Intel Core i7-7820K 32GB Win10x64 Quadro K5000 SpacePilot
|
erstellt am: 14. Apr. 2008 15:26 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
Also erstmal ist name bei Dir ein String und kein Object. Component2 wäre das Object, von dem Du den Namen ausliest. Das Object solltest Du mit dem Set- Befehl schon zugewiesen haben... ------------------ Lutz Federbusch Mein Gästebuch Der Mensch, Herr oder Sklave der Technik? 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: 14. Apr. 2008 15:49 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
Hallo Gegy3, Hier ein Beispiel wie man ein Objekt der selektierten Komponente initialisiert und desen Namen ermittelt.
Code:
Sub main() Dim oSwApp As SldWorks.SldWorks Dim oSwModel As SldWorks.ModelDoc2 Dim oSwSelManager As SldWorks.SelectionMgr Dim oSwComponent As SldWorks.Component2 'SolidWorks Application Set oSwApp = Application.SldWorks 'Aktuelles Dokument Set oSwModel = oSwApp.ActiveDoc If oSwModel Is Nothing Then Exit Sub 'Selektionsmanager Set oSwSelManager = oSwModel.SelectionManager 'Ist etwas selektiert? If oSwSelManager.GetSelectedObjectCount > 0 Then 'Besitz die Selektion eine Komponente oder 'handelt es sich um eine solche? Set oSwComponent = _ oSwSelManager.GetSelectedObjectsComponent2(1) End If If Not oSwComponent Is Nothing Then 'Name Debug.Print ( _ "Name der selektierten Komponente : " & _ oSwComponent.Name2) End If End Sub
------------------ Mfg Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 16:12 <-- editieren / zitieren --> Unities abgeben:         
|
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 16:15 <-- editieren / zitieren --> Unities abgeben:         
|
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: 14. Apr. 2008 16:29 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
Hallo gegy3, die 1 steht für das erste selektierte Element. Man kann ja schließlich in SolidWorks mehrere verschiedene Elemente selektieren. Bei mehreren Selektionen muss man hochzählen. In einem Makro kannst du alle Selektionen z.B. in einer For-Next-Schleife verarbeiten. ------------------ Mfg Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 16:44 <-- editieren / zitieren --> Unities abgeben:         
Hmmm... wie könnte denn ein Code aussehen, der folgendes macht: überprüfe jeden Komponentennamen im Feature Baum ob "abc" enthalten ist? ich meine, ohne das etwas selektiert ist. Haben die Teile im Featurebaum eine aufsteigende nummer? ist das erste teil im Featurebau, das Teil1 ? [Diese Nachricht wurde von gegy3 am 14. Apr. 2008 editiert.] 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: 14. Apr. 2008 16:51 <-- editieren / zitieren --> Unities abgeben:          Nur für gegy3
Hallo gegy3, alles werde ich dir leider nicht vorkauen, ein bisschen musst du dich schon auch anstrengen. In der API Hilfe gibt es das Beispiel Make All Assembly Components Visible Example (VB), dort sieht du schon mal wie man alle Komponenten rekursiv in einer Baugruppe durchlaufen kann. Den Teil mit Visible kannst du ja löschen und dort deine eigene Abfrage mit der Komponente einbauen. ------------------ Mfg Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
gegy3 Mitglied
 
 Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Apr. 2008 16:53 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von tbd: alles werde ich dir leider nicht vorkauen, ein bisschen musst du dich schon auch anstrengen [/i]
Hab ich mir schon gedacht aber einen Versuch war es wert  Und dennoch, hast Du mir mit dem Tip :" Make All Assembly Components Visible Example (VB)" wieder sehr viel weiter geholfen. Vielen Dank! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |