Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SolidWorks Makro -> Teil einfügen, gleich selektieren und Konfiguration umschalten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Zerspanungstreff mit SolidCAM bei der Hoffmann GmbH in Achim/Bremen
Autor Thema:  SolidWorks Makro -> Teil einfügen, gleich selektieren und Konfiguration umschalten (1637 / mal gelesen)
anwi7216
Mitglied
Entwicklungsingenieur (M.Sc.; B.Eng.)


Sehen Sie sich das Profil von anwi7216 an!   Senden Sie eine Private Message an anwi7216  Schreiben Sie einen Gästebucheintrag für anwi7216

Beiträge: 18
Registriert: 28.09.2012

SolidWorks 2019 64-bit - SP 5.0
CAM-System = MazaCAM

erstellt am: 07. Jul. 2016 15:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich tüftle gerade ein wenig mit der Makrofunktion von SWX rum. Ich möchte gerne von einem Makro gesteuert ein Teil in eine Baugruppe einfügen und dann gleich die Konfiguration umschalten.

Später soll das über eine Schleife in VBA automatisch erfolgen, also der Reihe nach eine bestimmte Anzahl an Teilen einfügen und gleich nach dem einfügen des Teils möchte ich in der Konfiguration eine Konfiguration weiter schalten (in der Stückliste sind die Teile dann später je eine Position).

Vom Ablauf hätte ich gedacht,

- boolstatus = Part.AddComponent("Dateipfad", 0, 0, 0)

- boolstatus = Part.CompConfigProperties4(2, 0, True, True, "Instanz", False, False)
- boolstatus = Part.EditRebuild3()

Nur fehlt mir in dem Ablauf jetzt der Befehl, dass er das eingefügte Teil gleich auswählt, selektiert damit dann die Konfiguration umgeschaltet werden kann.

Vielleicht hat von euch jemand eine Idee/Lösungsvorschlag.

Danke,
Gruß anwi7216

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 07. Jul. 2016 16:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für anwi7216 10 Unities + Antwort hilfreich

Hallo Andreas

Wieso nutzt du nicht die AddComponent4 Method (IAssemblyDoc), da kannst du die Konfiguration gleich mitgeben.

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 08. Jul. 2016 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für anwi7216 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HenryV:
...Wieso nutzt du nicht die AddComponent4 Method (IAssemblyDoc), ...

... Vermutlich, weil der Makro-Recorder das auch nicht macht.
Schade, dass SWX es nicht schafft, den mal richtig rundzuerneuern, so dass hier auch die aktuellen Methoden etc. verwendet werden, und dabei auch saubere Makros rauskommen. Der scheint auf dem Stand von vor 15 Jahren stehen geblieben zu sein.

------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

anwi7216
Mitglied
Entwicklungsingenieur (M.Sc.; B.Eng.)


Sehen Sie sich das Profil von anwi7216 an!   Senden Sie eine Private Message an anwi7216  Schreiben Sie einen Gästebucheintrag für anwi7216

Beiträge: 18
Registriert: 28.09.2012

SolidWorks 2019 64-bit - SP 5.0
CAM-System = MazaCAM

erstellt am: 08. Jul. 2016 08:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andreas,

danke für den Tipp, das war die gesuchte Lösung  

Nur eine Frage, die Funktion setzt ja voraus, dass das einzufügende Bauteil im Arbeitsspeicher geladen ist -> sprich im Hintergrund geöffnet ist.
Hast du da eine einfach Funktion, mit der du das Teil in SolidWorks im Hintergrund öffnest und die Baugruppe aber als aktives Dokument im Vordergrund bleibt. Also dass im Makro die Funktion swApp.ActiveDoc verwendet werden kann, für das einfügen in die Baugruppe ?

Bin da nicht so fit, wie ich quasi eine neue Baugruppe wieder als aktives Dokument im Makro auswähle.

Gruß Andreas

[Diese Nachricht wurde von anwi7216 am 08. Jul. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

anwi7216
Mitglied
Entwicklungsingenieur (M.Sc.; B.Eng.)


Sehen Sie sich das Profil von anwi7216 an!   Senden Sie eine Private Message an anwi7216  Schreiben Sie einen Gästebucheintrag für anwi7216

Beiträge: 18
Registriert: 28.09.2012

SolidWorks 2019 64-bit - SP 5.0
CAM-System = MazaCAM

erstellt am: 08. Jul. 2016 08:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Klaus,

stimmt, da ich nicht ganz so fit bin schaue ich gerne über die Makro Aufnahme Funktionen nach.
Macht die Sache aber auch insgesamt nicht viel einfacher, wie man an dem Beispiel sieht 

Gruß Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

anwi7216
Mitglied
Entwicklungsingenieur (M.Sc.; B.Eng.)


Sehen Sie sich das Profil von anwi7216 an!   Senden Sie eine Private Message an anwi7216  Schreiben Sie einen Gästebucheintrag für anwi7216

Beiträge: 18
Registriert: 28.09.2012

SolidWorks 2019 64-bit - SP 5.0
CAM-System = MazaCAM

erstellt am: 08. Jul. 2016 08:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

jetzt muss ich zwecks der AddComponent4 nochmal fragen, da ich einen Laufzeitfehler bekomme.

Aktuell hätte ich folgenden Code daraus gemacht: 

        Instanz = 2
        ConfigName = "Instanz" & Instanz
        CompName = "K:\LOG_Teile\Zubehoer\Teile für Stückliste\---Platzhalter---.sldprt"
   
        Set swApp = Application.SldWorks
        Set Part = swApp.ActiveDoc
        boolstatus = Part.AddComponent4(CompName, ConfigName, 0, 0, 0)
                             
        Instanz = Instanz + 1
        ConfigName = "Instanz" & Instanz

Also ich gebe über ConfigName den entsprechenden Konfigurationsnamen mit (wie gesagt mit einem Zähler, da ich später mit eienr Schleife darüber gehe und imm um eine Position erhöhe). CompName wäre die Datei, die auch im Hintergrund geöffnet ist (und später übers Makro werden sollte).

Nur weiß ich jetzt nicht, was an dem Code falsch ist und warum der Laufzeitfehler kommt 

Danke,
Gruß Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 08. Jul. 2016 10:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für anwi7216 10 Unities + Antwort hilfreich

Hallo Andreas,

ich würde die Komponente wirklich nur in den Arbeitspeicher laden, Sie muss ja nicht aktiv sein.

Code:
Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swAssy As SldWorks.AssemblyDoc
Dim swModel As SldWorks.ModelDoc2
Dim swComp As SldWorks.Component2
Dim CompName As String
Dim ConfigName As String
Dim lWarnings As Long
Dim lErrors As Long

Sub main()


CompName = "Pfad zur Komponente"
ConfigName = "Name der Konfiguration"

Set swApp = Application.SldWorks
Set swAssy = swApp.ActiveDoc

Set swModel = swApp.OpenDoc6(CompName, swDocPART, swOpenDocOptions_Silent, ConfigName, lWarnings, lErrors)

Set swComp = swAssy.AddComponent4(CompName, ConfigName, 0, 0, 0)

End Sub


Mich würde interessieren woher die Informationen mit Komponenten Namen und der verwendeten Konfigurationen kommen, weil evtl. kann mann das ganze dann auch anderst aufbauen.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 08. Jul. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

anwi7216
Mitglied
Entwicklungsingenieur (M.Sc.; B.Eng.)


Sehen Sie sich das Profil von anwi7216 an!   Senden Sie eine Private Message an anwi7216  Schreiben Sie einen Gästebucheintrag für anwi7216

Beiträge: 18
Registriert: 28.09.2012

SolidWorks 2019 64-bit - SP 5.0
CAM-System = MazaCAM

erstellt am: 08. Jul. 2016 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo nochmal an alle,

Danke für euere Hilfe und die Tipps zur Lösung meines Problems.
Konnte jetzt alle Probleme lösen und das Makro funktioniert tadellos.

Wünsche ein schönes Wochenende und vielen Dank nochmal.

Gruß Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz