Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Referenzen ersetzen beim Speicher unter via Makro

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
  
CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS
Autor Thema:  API Referenzen ersetzen beim Speicher unter via Makro (5267 mal gelesen)
currie
Mitglied
Betriebsmittelkonstrukteur


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

Beiträge: 83
Registriert: 10.03.2005

WIN10 / SWX2020

erstellt am: 22. Jan. 2013 19:28    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 Leute

Ich muss nach langer suche wieder mal auf das geballte wissen hier zurückgreifen.

Ich habe folgendes Problem.

Ich habe mir in meinem Schriftfeld Makro einen Butten gebaut der das geöffnete Teil unter einer neuen Revision speichern soll.

so sieht es aus:
Das aktuelle Teil ist geöffent (12345_A_Test.sldprt)

>>Neue Revision
Es öffnet sich die Zeichnung des Teils (12345_A_Test.slddrw)

>> Focus auf Teil        Wird gespeichert unter (12345_B_Test.sldprt)
>> Focus auf Zeichnung 
>> Dann Zeichnung auch Speichern unter (12345_B_Test.slddrw)
>> Teil und Zeichnung schließen und die Variante "B" Teil und Zeichnung öffnen

Die Zeichnung "B" hat immer noch die Referenzen auf Teil "A"

Wenn ich vor dem Öffnen der Zeichnung B das Teil umbenene in (x1234....) findet die Zeichnung "B" das Part "A"  nicht mehr und ich kann das Teil neu auswählen.

Das geht doch bestimmt eleganter

Grüße Currie

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

Pete Riley
Mitglied
Student


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

Beiträge: 171
Registriert: 30.09.2012

"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: 22. Jan. 2013 20:24    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 currie 10 Unities + Antwort hilfreich

Hallo Currie.

Ist beim Speichern des Parts unter neuem Namen evtl. in den swSaveAsOptions das Flag "Copy" gesetzt?
Das würde zumindest den Sachverhalt erklären.

Gruß, Pete

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

currie
Mitglied
Betriebsmittelkonstrukteur


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

Beiträge: 83
Registriert: 10.03.2005

WIN10 / SWX2020

erstellt am: 26. Jan. 2013 15:19    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 Pete

Kannst du ein Stück Code Posten

Komm damit nicht weiter

Danke Currie

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 26. Jan. 2013 15:31    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 currie 10 Unities + Antwort hilfreich

Hallo Curie,
vielleicht solltest du deinen Code bzw. dein Schriftfeldmakro veröffentlichen, oder ist das ein Geheimnis?
Da könnte man evtl. auch besser helfen.

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

currie
Mitglied
Betriebsmittelkonstrukteur


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

Beiträge: 83
Registriert: 10.03.2005

WIN10 / SWX2020

erstellt am: 26. Jan. 2013 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 Andi

Nein das ist kein Geheimnis.
Das Problem ist dass ich an diesem Makro schon seit x Jahren immer weiter mache.
Da ist so viel Schrott drin au den Anfängen dass ich mich dafür fast schäme hier zu posten, aber es Funktioniert trotz des wilden durcheinanders.

Momentan lieg ich mit Grippe flach.

Ich werde das Makro nächste Woche mal hoch laden.

Currie

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

Pete Riley
Mitglied
Student


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

Beiträge: 171
Registriert: 30.09.2012

"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: 26. Jan. 2013 17:11    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 currie 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von currie:
Momentan lieg ich mit Grippe flach.

Ich werde das Makro nächste Woche mal hoch laden.

Currie


Ja, mach mal.
Mit Schrott im Code kennen wir uns aus. 

Gruß, Pete

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 26. Jan. 2013 17: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 currie 10 Unities + Antwort hilfreich

Hallo,
gib her den Schrott.
Das hebt evtl. das eigene Wertgefühl, wenn man sieht, dass auch andere Schrott fabrizieren. 

Was glaubst du, wieviel Hobbyprogrammierer hier unterwegs sind, mich eingeschlossen.
Trotzdem möchte ich keines meiner Makros missen, wenn ich denn sehe, wieviel Arbeit sie mir täglich abnehmen.
Solange sie tun.....

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 28. Jan. 2013 09:38    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 currie 10 Unities + Antwort hilfreich

Hallo Zusammen

Ich hänge mich hier auch mal ein, denn die eigentliche Frage von Currie ist doch:
Wie kann ich ein Teil/BG mitsamt der zugehörigen Zeichnung kopieren?

Das ersetzten der Referenz ist nur der momentan fehlende Teilschritt. Evtl. könnte man das Grundproblem auch anderes lösen, dann müsste man das Referenzen ersetzen Problem nicht lösen (z.B. wenn man per API die SW-Funktion "Referenzen suchen" --> "Dateien kopieren" nutzen könnte.

Ich bin erstaunt, dass SW dem Kopieren von Teilen/BG mitsamt Zeichnung so wenig Aufmerksamkeit schenkt, denn dies ist doch einer der wichtigsten Eigenschaften bei der Wiederverwertung von Daten.
Noch mehr erstaunt bin ich über die Tatsache, dass unser Forum dieses Thema noch nicht sauber gelöst hat  .

Also schlage ich vor wir machen das einfach mal...

Ich habe schon erfolglos versucht die SW-Funktion "Referenzen suchen" --> "Dateien kopieren" als Makro aufzuzeichnen, damit ich einen Ansatzpunkt hätte. Auch sonst habe ich keine Informationen gefunden, wie man dasselbe per Makro machen könnte.
Weiter habe ich versucht die Funktion des Referenz ersetzens beim Öffnen der Zeichnung aufzuzeichnen. Ebenfalls erfolglos.

Wenn jemand noch eine Idee für einen Ansatzpunkt hat, so bin ich gerne bereit den Ansatz zu versuchen und bei Erfolg das Makro hier einzustellen.

Gruss

David

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: 28. Jan. 2013 16:18    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 currie 10 Unities + Antwort hilfreich


spviapag.avi.txt

 
Hallo zusammen,

weiß nicht wo das Problem liegt, lässt sich meines Erachtens mit Pack and Go geschickt machen.
Die Pack and Go Funktionalität lässt sich denke ich auch über die API ansprechen, aber habe mich damit noch nicht befasst.

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 28. Jan. 2013 16: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 Nur für currie 10 Unities + Antwort hilfreich

Hallo Bernd

Pack and go ist nichts anderes als  "Referenzen suchen" --> "Dateien kopieren". Aber ein wenig einfacher als mein Weg... *schäm*.
Aber was viel wichtiger ist: Bei Pack and go gibt es etwas zur API in der Hilfe!!! (Man muss nur den richtigen Suchbegriff kennen)
Danke Dir vielmals, jetzt habe ich einen Ansatz.

Werde mal den Ansatz verfolgen und das Ergebniss hier einstellen.

[Diese Nachricht wurde von Luechinger am 28. Jan. 2013 editiert.]

[Diese Nachricht wurde von Luechinger am 28. Jan. 2013 editiert.]

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 28. Jan. 2013 20:45    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 currie 10 Unities + Antwort hilfreich

Hallo Zusammen

Dank dem Hinweis von Bernd konnte ich mal eine Funktion schreiben.
Noch nicht gerade sauber programmiert (Errorhandling, etc) aber bei mir funktioniert sie erstmal...

Der Funktion muss der vollständige Pfad der zu kopierenden Datei, der neue Name und der Speicherort angegeben werden. (wird im Mainsub gemacht.)
Die Funktion kopiert dann das Teil oder die Baugruppe inkl. der zugehörigen Zeichnung per Packandgo. Die Zeichung referenziert dann natürlich auf das kopierte Teil oder die kopierte BG.
Die Mitglieder der Baugruppe werden NICHT mitkopiert.

Hinweise:
- Die Funktion geht davon aus, dass die Zeichnung und das Modell immer den selben Namen haben (bis auf die Endung) und im gleichen Verzeichniss liegen. Wer das anders handhabt, hat aber sowieso andere Probleme...

- Aufgrund eines offenen SPR 652424 (Danke Solidworks für über 1 Stunde verzweifelt suchen warum die Referenz der Zeichnung nicht richtig gesetzt wird...) musste ich einen Umweg einbauen. Und zwar muss ich erst die Zeichnung öffnen und dann mit dem Modelobjekt der Zeichnung den Packandgovorgang starten. Deshalb bleibt auch die Zeichung des zu kopierenden Modells offen. Wen dies stört kann ja das Fenster schliessen lassen (aber nur wenn's noch nicht offen war, sonst gibts Haue von den Usern... )

Über kritische Anmerkungen, Verbesserungsvorschläge oder Wünsche zur Funktion würde ich mich freuen.

@currie: Du kannst in deinem Revisionsmakro einfach die Revision in den neuen Dateinamen packen und dann die Funktion aufrufen.

Gruss

David


Code:

Option Explicit

Sub Main()

    Dim modelPfad As String
    Dim neuerName As String
    Dim speicherPfad As String
    Dim status As Boolean
   
    speicherPfad = "C:\Temp\"
    modelPfad = "U:\Temp\test.sldasm"
    neuerName = "testkopie"
   
    status = copywithdrawing(modelPfad, neuerName, speicherPfad)
   
    If status <> True Then
        MsgBox ("Kopieren fehlgeschlagen")
    Else
    End If
   
End Sub


Function copywithdrawing(ByVal fullmodelpath As String, ByVal newname As String, ByVal savepath As String) As Boolean

    Dim swApp As Object
    Dim swModelDoc As Object
    Dim swModelDocExt As SldWorks.ModelDocExtension
    Dim swPackAndGo As SldWorks.PackAndGo
    Dim myFileName As String
    Dim pgFileNames As Variant
    Dim pgSetFileNames() As String
    Dim pgGetFileNames As Variant
    Dim status As Boolean
    Dim i As Long
    Dim namesCount As Long
    Dim statuses As Variant
    Dim mytempfilename As String
    Dim ModelPathNoExtension As String
    Dim Extension As String

   
    ModelPathNoExtension = Left(fullmodelpath, InStrRev(fullmodelpath, ".") - 1)
    Extension = Mid(fullmodelpath, InStrRev(fullmodelpath, "."))
   
'Startbedingungen
   
    'test ob richtiger Pfad übergeben wurde
    Select Case LCase(Extension)
    Case ".sldprt"
        'gut
    Case ".sldasm"
        'gut
    Case Else
        MsgBox ("Fehler! Dieser Funktion muss ein Pfad eines Teils oder einer Baugruppe übergeben werden.")
        Exit Function
    End Select
   
    'test ob zeichnung vorhanden
    If Dir(ModelPathNoExtension & ".slddrw") = "" Then
        MsgBox ("Fehler! Keine Zeichnungsdatei vorhanden")
        Exit Function
    Else
    End If
   
'Ende Startbedingungen
   
   
    Set swApp = Application.SldWorks
    Set swModelDoc = swApp.OpenDoc(ModelPathNoExtension & ".slddrw", 3)
    Set swModelDocExt = swModelDoc.Extension
    Set swPackAndGo = swModelDocExt.GetPackAndGo
   
    swPackAndGo.IncludeDrawings = True

    ' Get current paths and filenames of the assembly's documents
    status = swPackAndGo.GetDocumentNames(pgFileNames)
   
    ' Get number of listed documents
    namesCount = swPackAndGo.GetDocumentNamesCount

    ' Create your own filenames for the model's documents
    ReDim pgSetFileNames(namesCount - 1)
   
    'Durchlauf durch alle Dateien. Zu kopierende Dateien werden umbenannt
    For i = 0 To namesCount - 1
        If InStr(pgFileNames(i), LCase(ModelPathNoExtension)) > 0 Then
            ' Determine type of SolidWorks file based on file extension
            If InStr(LCase(pgFileNames(i)), "sldprt") > 0 Then
                mytempfilename = newname & ".sldprt"
            ElseIf InStr(LCase(pgFileNames(i)), "sldasm") > 0 Then
                mytempfilename = newname & ".sldasm"
            ElseIf InStr(LCase(pgFileNames(i)), "slddrw") > 0 Then
                mytempfilename = newname & ".slddrw"
            Else
            End If
            pgSetFileNames(i) = savepath & mytempfilename
        Else
        End If
    Next
   
    ' Set document paths and filenames for Pack and Go
    status = swPackAndGo.SetDocumentSaveToNames(pgSetFileNames)

    ' Pack and Go
    statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
   
    'test ob kopierte dateien vorhanden
    If Dir(savepath & newname & ".slddrw") <> "" Then
    Else
        MsgBox ("Fehler! Keine kopierte Zeichnungsdatei vorhanden")
        Exit Function
    End If
   
    If Dir(savepath & newname & ".sldprt") <> "" Or Dir(savepath & newname & ".sldasm") <> "" Then
    Else
        MsgBox ("Fehler! Kein kopiertes Teil oder kopierte Baugruppe vorhanden")
        Exit Function
    End If
   
    copywithdrawing = True

End Function

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 11. Mrz. 2013 14:42    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 currie 10 Unities + Antwort hilfreich

speicherPfad = "C:\Temp\"
    modelPfad = "U:\Temp\test.sldasm"
    neuerName = "testkopie"

ich bin noch anfänger in sachen API, aber wenn ich das richtig sehe, so arbeitet das Makro hier nur für die eine Baugruppe test.sldasm in dem einen vorgegebenen Ordner, sollte das nicht derart aussehen:

Set swApp = CreateObject("SldWorks.Application")   
Set Part = swApp.ActiveDoc                         
    If Part Is Nothing Then                       
        MsgBox ("Kein Modell geöffnet")           
        Unload Me                                 
    End If

    Name = Part.GetPathName()     

Wäre Interessant wenn jemand ein Funktionierendes Makro hätte.
(Teil speichern unter neuem Namen, Zeichnung wird im Hintergrund automatisch im gleichen verzeichnis mit gleichem Namen mit kopiert)
Die Idee mit Pack and go finde ich nicht schlecht, allerdings fehlen mir die Programmierkenntnisse...
Reihenfolge wäre hier:
Ausgangssituation : das zu kopierende .sldprt ist geöffnet
1 : Eine Eingabeaufforderng fragt nach dem neuen Dateinamen
2 : der Pfadname und Dateiname wird ausgelesen
3 : Die Zeichnug wird geöffnet (Name wird aus dem Pfadnamen hergeleitet)
4 : Packandgo wird ausgeführt(vermutlich mit suffix oder präfix damit nichts überschrieben wird)
5 : Das Modell und die Zeichnung werden geöffnet und unter dem Namen unter "1" eingegebenen Namen gespeichert(erst modell dann Zeichnung)
6 : Zeichnung schliessen

wenn dass in der Art jemand basteln könnte... Das wäre traumhaft :-)

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: 11. Mrz. 2013 16:34    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 currie 10 Unities + Antwort hilfreich

Hallo Florian,

in Davids Code ist das wichtige die Funktion und deren Aufruf den er geschrieben hat. Und die Angaben in der Sub Main sind nur als Beispiel angegeben da die Informationen welche Datei unter welchen Namen wohin aus verschiedenen Quellen kommen kann und dies jeder an seine Bedürfnisse angepassen sollte.

Aber du hast Recht das in dem Explezietem Fall wenn der Code 1 zu 1 verwendet wird, sich das ganze nur mit der Beispieldatei in dem festen Ordnerpfad machen lässt.

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 11. Mrz. 2013 17: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 Nur für currie 10 Unities + Antwort hilfreich

Hallo Florian

Wie Bernd bereits korrekt geschrieben hat, ist der Code im Main nur als Beispiel gedacht.

Ich verwende die Funktion ziemlich genau so wie Du das willst. Aber bei mir ist noch ein Nummerngenerator hintendran, der eine eindeutige Nummer für den Namen generiert.

Wenn's mir reicht bastle Ich Dir heute Abend daraus aber schnell das gewünschte Makro.

Gruss

David

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 11. Mrz. 2013 18:56    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 currie 10 Unities + Antwort hilfreich


copywithdrawing.zip

 
Hallo Florian

Also ich habe mal mein Makro angepasst. (Ist aber Quick and Dirty...).
Macht jetzt folgendes:

Bei Ausführung wir nach dem neuen Namen gefragt (PS: Die spezielle Inputbox (eigentlich ein Userform) habe ich mal so im Inet gefunden. Ich hoffe ich verletzte keine Copyrights;-)).
Der Button "Bestehenden Namen übernehmen" macht was er sagt;-)

Danach wird der Name auf Sonderzeichen und doppelter Vergabe geprüft. Ist der Dateiname in Ordnung, wird geprüft ob eine Zeichnung vorhanden ist. Ist keine Zeichnung vorhanden, so wird ganz normal kopiert. Ist eine Zeichnung vorhanden, so wird mit Zeichnung kopiert.

Die kopierte Zeichnung lasse ich aber offen, da ich sonst prüfen müsste, ob die Zeichnung vorher schon offen war etc. (War mir zu Aufwendig...)

Kannst ja mal testen (mit Testdaten!in Testverzeichnis!) und dann berichten.

Makros wie immer ohne Gewähr;-)

Gruss

David

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 12. Mrz. 2013 10:35    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 currie 10 Unities + Antwort hilfreich

tausend dank !   

einen Nummerngenerator verwenden wir auch, aber mir reicht es da eine nummer zu generieren und die dann fix manuel per copy und paste zu übertragen ;-)
____

Leider bekomme ich beim starten des Makros die Meldung "Fehler beim Kompilieren: Projekt oder Bibliotek nicht gefunden"

Der Debugger verweist auf "Sub copywithdrawing()"

Ein Fester Pfad zu einer Datei ist nirgendwo angegeben, ist alles hergeleitet aus dem Speicherort der zu kopierenden Datei, wenn ich den "Fehler" finde geb ich bescheid  

[Diese Nachricht wurde von florian406 am 12. Mrz. 2013 editiert.]

[Diese Nachricht wurde von florian406 am 12. Mrz. 2013 editiert.]

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 12. Mrz. 2013 12:07    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 currie 10 Unities + Antwort hilfreich

Problem gefunden - Lösung noch in Arbeit...
Es fehlen ihm die Verweise zu:
SldWorks 2012 Type Library
Solidworks 2012 Commands type library
Solidworks 2012 Constant type library

Grund:
Wir nutzen Solidworks Professional 2011 SP5.0, da kann er die 2012´er libs ja auch noch nicht finden.
Ich wurschtel mich da mal weiter durch, bitte nicht lachen oder mit steinen schmeissen, ich bin wie gesagt noch Blutiger Anfänger :-P

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 12. Mrz. 2013 12:42    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 currie 10 Unities + Antwort hilfreich

lösung gefunden:
wenn man das makro öffnet und unter Extras/Verweise bei den drei Einträgen die häkchen herrausnimmt und die häkchen bei den vorhanden Einträgen(seiner jeweiligen Version) setzt läuft alles wunderbar!

Vielen dank an David für seine mühe! :-)

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 12. Mrz. 2013 14:26    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 currie 10 Unities + Antwort hilfreich


copywithdwg.zip

 
Ich habe jetzt versucht das ganze um ein Modul zu erweitern, das in den Dateieigenschaften die Eigenschaften "Nummer" und "Number" überschreibt, d.h. dort $PRP:"SW-Dateiname"
einträgt, damit unsere Stücklisten später stimmen, unser Nummerngenerator macht das automatisch...
Problem ist jetzt das ich mir nicht sicher bin wie ich dem Makro sage wann und wie es das modul ausführen soll

Mein Ansatz wäre jetzt:
Dim Eigenschaften As Boolean
Eigenschaften = Eigenschaften.Eigenschaften()
Boolean ausführen = Modul.Methode
Allerdings startet er die Methode dann nicht...

[Diese Nachricht wurde von florian406 am 12. Mrz. 2013 editiert.]

[Diese Nachricht wurde von florian406 am 12. Mrz. 2013 editiert.]

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 12. Mrz. 2013 16:46    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 currie 10 Unities + Antwort hilfreich

Hallo Florian

Wenn Du ein wenig genauer sagst, was Du machen willst kann ich heute Abend mal drübergucken.

Gruss

David

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 13. Mrz. 2013 10:04    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 currie 10 Unities + Antwort hilfreich


dateieigenschaften.zip

 
Hallo David,
Das Modul soll nur in dem kopierten/neuen Teil die Dateieigenschaften "Nummer" und "Number" überschreiben und mit dem wert $PRP:"SW-Dateiname"
füllen.
Das Modul ist ein eigenes Makro das ich aus verschiedenen Snippets zusammengebaut habe und für sich läuft, mein Problem ist jetzt den Befehl zu finden der "das modul" startet und das an der richtigen stelle einzubauen


Ich hänge das Makro nochmal als einzelnes an.
Gruß
Flo

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 13. Mrz. 2013 12:05    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 currie 10 Unities + Antwort hilfreich


copywithdrawing_Florian.zip

 
Hallo Florian

Jetzt habe ich begriffen was Du willst.

Das Kannst Du mit dem Befehl:

Call Modulname.Subnamen machen

In deinem Fall also "Call Eigenschaften.Eigenschaften()"

Den Aufruf würde ich ganz hinten im Kopiermakro machen, welches Du in SW aufrufst. (Im Modul Copy)

Habe dies mal reingebaut (siehe Anhang)

Gruss

David

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

florian406
Mitglied
Konstrukteur, Admin, Projektleiter


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

Beiträge: 15
Registriert: 10.02.2012

SW 2016 SP 4.0
Windows 7 x64

erstellt am: 13. Mrz. 2013 12: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 currie 10 Unities + Antwort hilfreich

perfekt :-)
mit dem boolean bin ich nicht weitergekommen, dann ging garnichts mehr :-P

vielen dank nochmals

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

wemasb
Mitglied
Quereinsteiger


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

Beiträge: 124
Registriert: 10.09.2012

SolidWorks 2018
Office 2010
AutoCAD 2007

erstellt am: 29. Jan. 2016 14:28    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 currie 10 Unities + Antwort hilfreich

Hallo,

auch auf die Gefahr hin, dass keiner mehr diesen Beitrag liest aufgrund des Alters, habe ich dennoch eine Frage/ein Problem:

ich probiere jetzt schon seit mehrere Stunden wie doof herum mit den hier geschriebenen makros und funktionen, aber kriege es nicht hin.

ich brauche ein Makro, dass meine Baugruppe (inkl. Zeichnung) von C:\TEMP zu C:\TEMP2 kopiert und beides umbenennt, quasi Pack and Go

Existierende Dateien:
C:\TEMP\TEST.SLDASM
C:\TEMP\TEST.SLDDRW

zu erstellene Dateien:
C:\TEMP2\TEST2.SLDASM
C:\TEMP2\TEST2.SLDDRW

egal welche Beispiele oder sonstwas ich hier oder anderswo finde, nichts funktioniert 

Wer kann/möchte helfen

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

Luechinger
Mitglied
Ingenieur + CAD-Admin


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

Beiträge: 71
Registriert: 30.07.2008

Win 7 64bit
HP Elitebook 8740W
8 GB Ram
Solidworks 2012 SP4 (64bit)
ProE WF4 M140 (64bit)
Stools 2012

erstellt am: 29. Jan. 2016 17:47    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 currie 10 Unities + Antwort hilfreich


Copywithdrawing_wemasb.zip

 
Salute

Versuche mal das angehängte Makro.
Ich habe aber nichts anderes gemacht als deine Zielpfadangaben eingefügt und als quellmodel die aktuell offene BG gewählt.

Also Test.sldasm öffnen und Main ausführen.

Gruss

David


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

wemasb
Mitglied
Quereinsteiger


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

Beiträge: 124
Registriert: 10.09.2012

SolidWorks 2018
Office 2010
AutoCAD 2007

erstellt am: 01. Feb. 2016 11:12    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 currie 10 Unities + Antwort hilfreich

hab es jetzt versucht und es klappte, aber auch erst nachdem ich in meiner Test-Baugruppe das virtuelle Teil entfernt hatte. Eine Idee wie ich die mit einbringen kann?

aber bisher erstmal vielen Dank :-)

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