| |
| 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
Beiträge: 83 Registriert: 10.03.2005 WIN10 / SWX2020
|
erstellt am: 22. Jan. 2013 19:28 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für currie
|
currie Mitglied Betriebsmittelkonstrukteur
Beiträge: 83 Registriert: 10.03.2005 WIN10 / SWX2020
|
erstellt am: 26. Jan. 2013 15:19 <-- editieren / zitieren --> Unities abgeben:
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 83 Registriert: 10.03.2005 WIN10 / SWX2020
|
erstellt am: 26. Jan. 2013 15:48 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für currie
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
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 / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 28. Jan. 2013 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 11. Mrz. 2013 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Mrz. 2013 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 12. Mrz. 2013 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 12. Mrz. 2013 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 12. Mrz. 2013 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 12. Mrz. 2013 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
|
florian406 Mitglied Konstrukteur, Admin, Projektleiter
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 13. Mrz. 2013 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 15 Registriert: 10.02.2012 SW 2016 SP 4.0 Windows 7 x64
|
erstellt am: 13. Mrz. 2013 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für currie
|
wemasb Mitglied Quereinsteiger
Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 29. Jan. 2016 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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
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 / zitieren --> Unities abgeben: Nur für currie
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
Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 01. Feb. 2016 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für currie
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 |