Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro das SaveAs von Baugruppen mit allem..

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
  
SIMULIA Regional User Meeting 2026, eine Veranstaltung am 18.06.2026
Autor Thema:  Makro das SaveAs von Baugruppen mit allem.. (1471 mal gelesen)
Bruggmann
Mitglied
Konstrukteur (& Nachdiplomstudium Software-Engineering)


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

Beiträge: 85
Registriert: 17.03.2004

Workstation:
Fujitsu Siemens P4 3.2GHz
2.0 GB RAM
Win XP SP1 - SW2005 SP0.1
(PDM: Smarteam)<P>Laptop:
Compaq Evo 800w P4 2GHz
500MB RAM
WinXP SP2 - SW2005 SP0.1
(PDM: ec-Manager, eigenes Tool..)

erstellt am: 14. Jun. 2004 15: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

hallo

hat schon jemand ein makro geschrieben, mit dem man eine baugruppe und alle parts darin mit neuen dateinamen speichern kann das z.b. auch noch die zeichnungen mitnimmt usw..?

weil wenn nicht muss ich mir das selbst schreiben.. 
sollte dann auch noch eine auswahlmöglichkeit haben welche parts aus der baugruppe nur kopiert werden sollen.. etc

gruss stefan

------------------
----------
encom GmbH

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 14. Jun. 2004 17:36    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 Bruggmann 10 Unities + Antwort hilfreich

dazu braucht's kein Makro, das ist normale SWX-Funktionalität. Schau mal hier http://solidworks.cad.de/kh_sas.htm da ist erklärt wie's geht.
Nur mit den Zeichnungen für Einzelteile und Unterbaugruppen hast Du ein Problem, die kommen da nicht automatisch mit - da hilft Dir aber auch kein Makro !
Das Problem ist - die Einzelteile "wissen" nicht, ob und welche Zeichnung(en) es gibt, wo sie dargestellt sind. Und das wirst Du auch nicht mit einem Makro so einfach lösen können.
Die Information ist schlicht und einfach im Einzelteil nicht vorhanden. Während in der Baugruppe (oder Zeichnung) schon vorhanden ist, welche Modelle referenziert werden - und Du Dich damit ABWÄRTS hangeln kannst, müßtest Du Dich AUFWÄRTS bewegen, um vom Teil auf die dazugehörige Zeichnung zu schließen.
Um das zu Lösen gibt es PDM-Systeme, die in einer Datenbank die Infos speichern und somit abgerufen werden können.
Oder Du machst es wie der SWX-Explorer beim Verwendungsort - der schaut in alle Dokumente rein, ob eventuell das betreffende Dokument dort referenziert ist. Je nach Datenmenge kann das dauern !

------------------
mfg uc

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

Bruggmann
Mitglied
Konstrukteur (& Nachdiplomstudium Software-Engineering)


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

Beiträge: 85
Registriert: 17.03.2004

Workstation:
Fujitsu Siemens P4 3.2GHz
2.0 GB RAM
Win XP SP1 - SW2005 SP0.1
(PDM: Smarteam)<P>Laptop:
Compaq Evo 800w P4 2GHz
500MB RAM
WinXP SP2 - SW2005 SP0.1
(PDM: ec-Manager, eigenes Tool..)

erstellt am: 14. Jun. 2004 18:00    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

danke, das sieht schonmal gut aus!
kannte diese funktion noch nicht  )

dieses makro benötige ich für ein miniPDM..

dieses miniPDM beinhaltet bereits einen nummern-generator und eine online! datenbank zur zeichnungsverwaltung. was aber nicht integriert wird ist ein file-handler.. ist also für kleine firmen gedacht und wird bei fertigstellung wohl frei zum download gestellt!

nun möchte ich einfach noch das indexieren von baugruppen etwas vereinfachen und somit fehler vom user verminderen...

------------------
----------
encom GmbH

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

Klaus Greim
Mitglied
CAD-Administrator


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

Beiträge: 178
Registriert: 10.05.2000

SWX 2013 SP 5.0
Windows 7 Prof.
Intel Xenon CPU
W3520
12 GB RAM

erstellt am: 15. Jun. 2004 08:25    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 Bruggmann 10 Unities + Antwort hilfreich


ScreenShot001.jpg

 
Hallo Stefan,

habe vor ca. 1 Jahr schon so ein ähnliches Makro geschrieben.
Das Makro erstellt eine unabhängige Kopie einer Baugruppe mit Zeichnungen. Habe das Makro aber wegen eines Fehlers in dem APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Befehl "Saveas4" nicht fertigstellen können.
Vor einer Woche habe ich in Amerika nochmal nachgefragt ob der Bug schon gelöst ist und bekam folgende Antwort:

"The bug SPR 155884 is VER-FIXED for SP4.  However, the fix is a documentation change.  Basically, in certain circumstances, SaveAs4 will not preserve mate references, such as when you are trying to copy an entire assembly using a recursive function that calls SaveAs4 many times.  Instead, we recommend using SldWorks::CopyDocument or SldWorks::MoveDocument."

Werde das Makro also in nächster Zeit umschreiben müssen. Vielleicht können wir uns gegenseitig helfen. Ich schicke dir den Quellcode meines ersten Makro´s mal per Mail. Die Beschreibung des Programm´s hänge ich hier an.

Tschüß

Klaus

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

Klaus Greim
Mitglied
CAD-Administrator


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

Beiträge: 178
Registriert: 10.05.2000

SWX 2013 SP 5.0
Windows 7 Prof.
Intel Xenon CPU
W3520
12 GB RAM

erstellt am: 15. Jun. 2004 08:43    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 Bruggmann 10 Unities + Antwort hilfreich


Kopierhilfe-Zeichnungssatz.txt

 
Ups, war nur das Bild hier nochmal die Beschreibung.

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

Bruggmann
Mitglied
Konstrukteur (& Nachdiplomstudium Software-Engineering)


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

Beiträge: 85
Registriert: 17.03.2004

Workstation:
Fujitsu Siemens P4 3.2GHz
2.0 GB RAM
Win XP SP1 - SW2005 SP0.1
(PDM: Smarteam)<P>Laptop:
Compaq Evo 800w P4 2GHz
500MB RAM
WinXP SP2 - SW2005 SP0.1
(PDM: ec-Manager, eigenes Tool..)

erstellt am: 15. Jun. 2004 13:20    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

@Klaus Greim

danke für den quellcode
habe ihn aber bis jetzt nur kurz überflogen.

den ablauf im makro habe ich mir grob so vorgestellt:

1.manuelles öffnen der obersten baugruppe!

2.makro: ist zeichnung mit gleicher benennung vorhanden? wenn ja öffnen
3.makro: parts und unterbaugruppen auslesen, in liste eintragen und in SW öffnen
4.makro: sind zeichnungen mit gleicher benennung vorhanden? wenn ja öffnen (in schleife mit parts.. auslesen)

5.in liste anwählen was alles umbenennt/indexiert werden soll
  (bei diesem schritt schon jeweils einzeln neue nummern lösen)
6.starten

7.makro: anhand liste saveAs von den markierten elementen inkl. zeichnung erstellen
8.makro: statusmeldung


hier mein code-schnippsel auf dem ich wohl aufbauen werde:
Dim swApp As Object
Global text

Sub main()
    Dim swApp                      As SldWorks.SldWorks
    Dim swModel                    As SldWorks.ModelDoc2
    Dim swAssy                      As SldWorks.AssemblyDoc
    Dim swConf                      As SldWorks.configuration
    Dim swRootComp                  As SldWorks.Component2
    Dim bRet                        As Boolean
   
    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swConf = swModel.GetActiveConfiguration
    Set swRootComp = swConf.GetRootComponent
   
    MsgBox "File = " & swModel.GetPathName
    text = "start" & vbCrLf
    TraverseComponent swRootComp, 1
    If text <> "" Then MsgBox text
End Sub
Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)


    Dim vChildComp                  As Variant
    Dim swChildComp                As SldWorks.Component2
    Dim swCompConfig                As SldWorks.configuration
    Dim sPadStr                    As String
    Dim i                          As Long
   
    For i = 0 To nLevel - 1
        sPadStr = sPadStr + "."
    Next i
   
    vChildComp = swComp.GetChildren
    For i = 0 To UBound(vChildComp)
        Set swChildComp = vChildComp(i)
       
        TraverseComponent swChildComp, nLevel + 1
       
        text = text & vbCrLf & sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
    Next i

End Sub

------------------
----------
encom GmbH

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