| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| PLM TechnologieForum Leipzig |
Autor
|
Thema: Zeichnung reduziert auf vollständig... (2280 mal gelesen)
|
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 05. Dez. 2014 15:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte mit einem Makro Zeichenansichten (Zeichnungen von Teilen und Baugruppen) und Baugruppen von reduziert auf vollständig einstellen. Ich habe es bisher geschafft Zeichnungen von Baugruppen vollständig zu laden jedoch streikt das Makro bei Einzelteilen. 'Reduziert zu vollständig If ModType = 3 Then 'Draw Set Part = swApp.ActiveDoc Set View = Part.GetFirstView Set View = View.GetNextView Set Assy = View.ReferencedDocument ElseIf ModType = 2 Then 'Assy Set Assy = swApp.ActiveDoc ElseIf ModType = 1 Then 'Part Set Part = swApp.ActiveDoc Else MsgBox "The model is not an assembly" End If If ModType = 1 Then 'bRet = Assy.ResolveAllLightweight ElseIf ModType = 3 Then bRet = View.SetLightweightToResolved(True) Else bRet = Assy.ResolveAllLightweight End If Die API-Hilfe hat mir leider auch nicht geholfen... Hat jemand eine Idee? Gruß Mario 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: 05. Dez. 2014 16:09 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, und herzlich Willkommen hier im Forum. Ich habe in meinen Makros folgende Befehle verwendet. Dim nRetval As Long If (AssemblyDoc.GetType = swDocASSEMBLY) Then nRetval = AssemblyDoc.ResolveAllLightWeightComponents(False) 'Alle Komponenten der BG auf "vollständig" stellen End If und
Dim Model As Object Dim res As Long Set Model = swApp.ActiveDoc res = Model.EditRebuild() Evtl. hilft dir das weiter. Viel Erfolg. 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 |
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 07:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Andi, vielen Dank für die Rückmeldung aber leider funktioniert der Code nicht bei Zeichnungen von Einzelteilen. Wie schon gesagt, bei Zeichnungen von Baugruppen ist das alles kein Problem. Nur bei Zeichnungen von Einzelteilen... Mir würde es ja schon fast reichen wenn Zeichnungen von Einzelteilen übergangen werden würden. Dazu fehlt mir aber leider das Know-How. Mein Ziel ist es einen Speicherknopf zur Verfügung zu stellen, der sämtliche Zeichnungen aus der reduzierten in die vollständige Darstellung holt bevor er speichert. Gruß Mario 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 Win7-64,Win10-64 SWX 2010/11/12/13/14/15/16/17/18,19,20,21,22 Immer das aktuellste SP Autodesk Product Design Suite Standard 2020 DraftSight Énterprise 2021SP2 CIM Database 11.3 32GB RAM. NVIDIA Quadro P1000
|
erstellt am: 08. Dez. 2014 08:03 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, selbst wenn ich jetzt falsch liege. IMHO ist es gar nicht möglich Zeichnungen von Einzelteilen oder auch die Teile selber reduziert zu laden. ------------------ 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 |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 08. Dez. 2014 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
|
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 08:43 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, das scheint so zu sein. Aber wie kriege ich mein Makro dazu das zu verstehen? Es wird ein Laufzeitfehler ausgegeben weil ich es nicht schaffe Zeichnungen von Einzelteilen zu übergehen. Gruß Mario 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 Win7-64,Win10-64 SWX 2010/11/12/13/14/15/16/17/18,19,20,21,22 Immer das aktuellste SP Autodesk Product Design Suite Standard 2020 DraftSight Énterprise 2021SP2 CIM Database 11.3 32GB RAM. NVIDIA Quadro P1000
|
erstellt am: 08. Dez. 2014 08:48 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, lass doch die Zeilen weg:
Zitat: If ModType = 1 Then 'bRet = Assy.ResolveAllLightweight
oder besser noch verlass das Programm nach deiner Messagebox: Zitat: MsgBox "The model is not an assembly"
------------------ 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 |
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 08:57 <-- editieren / zitieren --> Unities abgeben:
|
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 08. Dez. 2014 09:11 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, ich vermute du arbeitest mit Early Binding und deklarierst deine Objektvariable Assy als SldWorks.AssemblyDoc - das ReferencedDocument gibt dir aber ein ModelDoc-Objekt zurück, daher vermutlich der Typenfehler. Das hat also mehr mit Programmlogik als mit reduzierter Darstellung zu tun, schau mal nach der Deklaration deiner Variablen. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 11:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan, hmmm... OK dann weiß ich auch nicht mehr weiter. Das ist meine erstes zusammengebasteltes Makro. Alles funktionierte super bis eine Zeichnung kam die ein Modell beinhaltet. Ich habe nun schon div. Seiten im Netz studiert und bin leider bisher nicht weiter gekommen. Wie könnte ich das denn sonst angehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 08. Dez. 2014 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Zitat: Original erstellt von Mario76: Wie könnte ich das denn sonst angehen?
Du könntest das ganze Makro samt Testdokumenten posten, vielleicht hat einer Lust am Knobeln und sieht sich das dann an. Nur mit den Screenshot aus dem Editor und der Fehlermeldung fällt mir nichts anderes ein als ein falsch deklarierter Datentyp. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 11:52 <-- editieren / zitieren --> Unities abgeben:
Ich möchte bitte nicht falsch verstanden werden. Ich bin nicht daran interessiert das mir jemand einen vollständigen Code zur Verfügung stellt denn ich möchte gerne selber zum Ziel kommen. Sonst lernt man das ja nie. Ich wollte lediglich wissen ob es eine Möglichkeit gibt einer Zeichnung zu sagen, dass sie vollständig geladen werden soll unabhängig davon ob ein Model oder eine Baugruppe dahinter steckt. Ich betrachte somit diese Frage als (nicht)beantwortet. Trotzdem vielen Dank an alle Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 11:55 <-- editieren / zitieren --> Unities abgeben:
|
Mario76 Mitglied CAD/PDM Administrator
Beiträge: 11 Registriert: 05.12.2014
|
erstellt am: 08. Dez. 2014 11:56 <-- editieren / zitieren --> Unities abgeben:
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003 Win7-64,Win10-64 SWX 2010/11/12/13/14/15/16/17/18,19,20,21,22 Immer das aktuellste SP Autodesk Product Design Suite Standard 2020 DraftSight Énterprise 2021SP2 CIM Database 11.3 32GB RAM. NVIDIA Quadro P1000
|
erstellt am: 08. Dez. 2014 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, ich halte die Frage für absolut beantwortet. Sie lautet nein es ist nicht möglich da es beim Teil gar nicht möglich ist reduziert zu laden. Wenn du den Fehler loshaben willst musst du eben zum richtigen Zeitpunkt abfragen ob Modell oder BG, und wenn Modell goto exit. Stefan hat schon recht. Wir können hier ohne den kompletten Code nur raten ------------------ 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 |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 08. Dez. 2014 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für Mario76
Hallo Mario, ich halte die Frage für absolut beantwortet. Sie lautet nein es ist nicht möglich da es beim Teil gar nicht möglich ist reduziert zu laden. Wenn du den Fehler loshaben willst musst du eben zum richtigen Zeitpunkt abfragen ob Modell oder BG, und wenn Modell goto exit. Stefan hat schon recht. Wir können hier ohne den kompletten Code nur raten. Edit: Sorry für den Doppelpost, aber so wie's aussieht hat der CAD.DE-Server gerade Probleme. ------------------ 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) [Diese Nachricht wurde von jörg.jwd am 08. Dez. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |