| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | FACTORY OF THE FUTURE - Von der traditionellen Fertigung zur vernetzten Fabrik |
Autor
|
Thema: API: SketchManager.CreateBoundaryHatch (1131 mal gelesen)
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 06. Jul. 2010 11:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Freunde, ich habe mal wieder ein Problem: Ich habe ein schon etwas älteres Programm, mit dem wir relativ komplexe Tabellen auf Zeichnungen erstellen. Die Tabellen werden als Linien und Rechtecke skizziert, die Rechtecke teilweise schraffiert. Bis einschl. SWX 2007 hat das problemlos funktioniert. Neue Tabellen sind seit längerem nicht mehr erstellt worden, darum ist nicht aufgefallen, dass es mit SWX 2009 Probleme gibt. Alter Code für das schraffierte Rechteck, dieser wird mehrmals durchlaufen (1x pro Tabellenzeile): Code:
Sub DrawRectangle(ByVal LX1 As Long, ByVal LY1 As Long, ByVal LX2 As Long, ByVal LY2 As Long, Dicke As Long, Typ As Long) Part.SketchRectangle LX1 / 1000, LY1 / 1000, 0, LX2 / 1000, LY2 / 1000, 0, True Part.SketchAddConstraints "sgFIXED" Part.SetLineWidth Dicke Part.SetLineStyle "HIDDEN" Part.InsertHatchedFace End Sub
Das Programm bricht dann immer in der Zeile "Part.SketchRectangle..." mit einem Laufzeitfehler "Automatisierungsfehler" ab, hat zu diesem Zeitpunkt aber bereits ein schraffiertes Rechteck und ein zweites ohne Schraffur gezeichnet (Gerne schmiert dabei SWX auch ganz ab). Wenn ich dann Debugge und im Programm weiter laufen lasse, wird nocheinmal ein Rechteck erstellt und schraffiert, aber dann schmiert SWX definitiv ab.Nun habe ich es umgschrieben und mache das ganze unter Verwendung des SketchManager. Neuer Code: Code:
Sub DrawRectangle(ByVal LX1 As Long, ByVal LY1 As Long, ByVal LX2 As Long, ByVal LY2 As Long, Dicke As Long, Typ As Long) Dim vSkLines As Variant 'Normalerweise Object, für VB6 laut Hilfe Variant Dim myHatch As Variant 'Normalerweise Object, für VB6 laut Hilfe Variant vSkLines = Part.SketchManager.CreateCornerRectangle(LX1 / 1000, LY1 / 1000, 0, LX2 / 1000, LY2 / 1000, 0) Part.SketchAddConstraints "sgFIXED" Part.SetLineWidth Dicke Part.SetLineStyle "HIDDEN" Set myHatch = Part.SketchManager.CreateBoundaryHatch(0, 1, 16711680, "ISO (Stahl)", "Vorlage") End Sub
Der Erfolg ist genau der selbe, er bricht in der Zeile "vSkLines = Part.SketchManager.CreateCornerRectangle..." mit demselben Automatisierungsfehler ab. Beim Debuggen komme ich dann noch eine Runde weiter, bevor SWX abschmiert. Ich habe keine Idee mehr, warum das Ding hier stecken bleibt. Hat vielleicht jemand von euch einen Tipp? ------------------ Klaus [Edit] Ups..der Titel ist falsch, sollte natürlich heißen "API: SketchManager.CreateCornerRectangle". Aber ursprünglich bin ich bei der 2. Variante beim Hatch hängen geblieben...aber nur weil ich myHatch fälschlicherweise als Object deklariert hatte. [/Edit] www.al-ko.com | mein Gästebuch | privat... | Nasenheim [Diese Nachricht wurde von KMassler am 06. Jul. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 12. Jul. 2010 13:08 <-- editieren / zitieren --> Unities abgeben:
|
marques_CH Mitglied Prozessdesign/PLM
Beiträge: 698 Registriert: 21.11.2005 Solidworks 2012 SP3 Flow Sim Workstation: 6x 4.7 Ghz Quadro 4000 Revodrive 3 X2 SSD
|
erstellt am: 12. Jul. 2010 18:15 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hallo Ohne dass ich mich jetzt damit auskenne... aber mal folgender Gedankengang. Ist es möglich dass dieser Automatisierungsfehler dadurch entsteht dass du dir ne Endlosschleife gebaut hast? Gruss Marques Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 13. Jul. 2010 10:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Marques, daran kanns nicht liegen. 1. ist das Programm bis einschl. SWX 2007 problemlos gelaufen 2. wenn die Zeile mit dem Schraffurbefehl "Set myHatch = Part.SketchManager.CreateBoundaryHatch..." auskommentiere läufts durch. Ich hab eher das Gefühl, dass hier irgendwas sozusagen "voll" läuft. Dieser schraffierte Bereich ist nur eine dicke Trennung zwischen den Tabellenzeilen. Ich werde das jetzt so umstellen, dass statt der Schraffur eben dicke Trennlinien gezeichnet werden, eventuell dann eben mehrere. ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... | Nasenheim Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|