| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar) |
Autor
|
Thema: API - Neuaufbau von Zeichnungen (3109 mal gelesen)
|
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: 11. Apr. 2015 18:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, in dem Makro Assembly-Print-Drawings öffne ich nacheinander viele SW-Zeichnungen. http://ww3.cad.de/foren/ubb/Forum2/HTML/022358-2.shtmlNun habe ich festgestellt, das bei manchen Zeichnungen ISO-Ansichten nicht mit ausgedruckt werden. Öffne ich manuell Zeichnungen, muss ich manchmal noch STRG+Q tippen, damit die Zeichnung sauber dargestellt wird. Jetzt habe ich im Code folgende Ergänzung ( EditRebuild3() ) hinzugefügt. Set myDwgDoc = swApp.OpenDoc6(DwgPath, swDocDRAWING, swOpenDocOptions_Silent, "", CloseErrors, CloseWarnings) Set ModelAct = swApp.ActivateDoc(DwgPath) If Not myDwgDoc Is Nothing Then If myDwgDoc.EditRebuild3() Then 'MsgBox "Neuaufbau erfolgreich" Else MsgBox "Dieses Model hat Wiederaufbaufehler" End If End If Jetzt habe ich folgende Fragen dazu. 1. Ist das der richtige Befehl und vergleichbar mit STRG+Q? 2. Wenn ja, werden auch alle Blätter einer Zeichnung neu aufgebaut? 3. Kann man vorher eine Abfrage starten, ob eine Zeichnung bereits vollständig dargestellt ist, um einen unnötigen Neuaufbau zu vermeiden? Für sachdienliche Hinweise schon mal Besten Dank. 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 |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 11. Apr. 2015 19:17 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, vielleicht hilft dir das weiter: ... = swModelDoc.ForceRebuild3(True) ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 12. Apr. 2015 17:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörg, also, jetzt habe ich mich einiges umgelesen und bin immer noch irritiert. Ich habe versucht den Unterschied zwischen der EditRebuild3() und der ForceRebuild3(xxx) Methode rauszubekommen. Darüber gibt es unterschiedliche Angaben, mal ist von Model und mal ist von Assembly die Rede, aber nicht von Zeichnungen. Im Anhang habe ich Auszüge aus der API-Hilfe angehängt. "This example shows how to force a rebuild of a model." "Forces a rebuild of all of the features in the model whether they need a rebuild." "Rebuilds only those features in the model that need to be rebuilt." "True rebuilds the top-level assembly only; false rebuilds the top-level assembly and all subassemblies" Noch hadere ich, ob ich die Edit oder Force Variante nehmen soll. Auch bekomme ich nicht den Code für IModelDoc2 integriert, da ich nicht weiß, in welcher Bibliothek das zu finden ist. Momentan habe ich mal das hier zusammengesetzt. Dim value As Boolean Dim Model As Object Set Model = swApp.ActiveDoc 'value = Model.EditRebuild3() value = Model.ForceRebuild3(False) If value = False Then Call MsgBox("Dieses Model hat Wiederaufbaufehler", vbSystemModal, "Information") End If Aber ob das für Zeichnungen richtig ist, weiß ich nicht wirklich. Leider lässt sich das mit meiner Testbaugruppe so nicht testen, da alle Zeichnungen immer korrekt ausgegeben werden. Da muss ich wohl nen längeren Testlauf unter realen Bedingungen durchführen, und schauen, ob jetzt immer alle Zeichnungen kpl. dargestellt werden.
Also, ich bin immer noch an zusätzlichen Informationen interessiert. 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 |
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: 13. Apr. 2015 07:02 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, ForceRebuild Method (IDrawingDoc) wurde durch die ForceRebuild3 Method (IModelDoc2) ersetzt, daher gilt diese auch für Zeichnungsdokumente und rechnet diese somit komplett neu durch. Die EditRebuild3 Method (IModelDoc2) aktualisiert glaube ich nur Objekte mit der Ampel entsprechend Strg + B. 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 |
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: 13. Apr. 2015 21:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, besten Dank für deine Erklärungen. So in etwa hatte ich es bereits vermutet, ich war mir nur nicht sicher. Kannst du mir noch erklären, wie ich zu IModelDoc2 komme. In der Bibliothek ist das nicht zu finden. ModelDoc2 dagegen schon. 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 |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 14. Apr. 2015 06:22 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, für's VBA gibt's meines Wissens nur Modeldoc2. IModeldoc2 ist IMHO für andere Programmiersprachen zuständig. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) 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: 14. Apr. 2015 06:47 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, die Methoden mit einem I davor sind In-Process Methoden, für genauere Informationen kannst du einfach in der API-Hilfe mal nach In-process Methods suchen. Wie Jörg schon schrieb sind die In-Process Methoden derzeit nur in unmanaged C++ in Verwendung. Soviel ich weis gibt es aber für fast jede In-process Methode auch eine entsprechende Globale Methode die entsprechend gleich aufgebaut ist nur eben in ihrer Abarbeitung etwas anders funktioniert. Ich Ignoriere das I einfach immer und verwende die Befehle einfach ohne das I und hatte da bis jetzt noch keine Probleme . Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht ---
Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 14. Apr. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 14. Apr. 2015 21:54 <-- editieren / zitieren --> Unities abgeben:
Danke euch beiden, nun bin ich wieder etwas schlauer geworden. Somit kann ich jetzt das Thema beruhigt ablegen und in den praktischen Test übergehen. Ich erwarte diesbezüglich erst mal keine Probleme mehr. Falls doch, melde ich mich wieder. 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 |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|