| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| 3DEXPERIENCE Conference 2024 | München, eine Veranstaltung am 17.10.2024
|
Autor
|
Thema: Ursprung eines Teils in DXF auf Nullpunkt abspeichern? (5254 mal gelesen)
|
sw4you Mitglied
Beiträge: 226 Registriert: 19.02.2002 SOLIDWORKS 2019 Windows 10
|
erstellt am: 19. Mrz. 2008 18:24 <-- editieren / zitieren --> Unities abgeben:
Hallo SWX User Ich hätte da eine kleine Frage. Ich möchte von einem Teil auf einem leeren Blatt eine Ansicht erstellen und davon ein DXF abspeichern. Der Ursprung meines Modells soll der Nullpunkt vom DXF sein. Wenn ich die Ansicht irgendwo auf dem Blatt positioniere, befindet sich der Nullpunkt im DXF auf dem Blattursprung. Schiebe ich die Ansicht (Ursprung) auf die linke untere Blattecke habe ich "fast" das Resultat. Doch leider kann ich die Ansicht nicht genau platzieren (keine Beziehung zwischen Modellursprung und Blattursprung möglich). Mein Wunsch wäre ein Makro wie z.B. Ansicht anwählen, Macro ausführen, Ansicht (Modellursprung) wird temporär auf Blattursprung verschoben und dann als DXF abgespeichert. Da ich mich programmiertechnisch in SWX überhaupt nicht auskenne, wollte ich euch fragen, ob so etwas überhaupt möglich ist. Herzlichen Dank für euer Feedback.
------------------ Grüsse sw4you Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 19. Mrz. 2008 18:39 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hi sw4you, ich bin schon mal der zweite, der das auch wissen will. Ich mache das zur Zeit über Umwege. Ist eben schon mit einem Zusatzaufand verbunden. Hab etwas mit Makro angefangen aber mangels Zeit noch nicht volendet. Auf diese Frage (Fragestellung) warte ich schon sehr lange. Ich freue mich schon auf die Antworten! G. thomas G. t ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 20. Mrz. 2008 07:49 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
|
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 20. Mrz. 2008 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
|
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: 20. Mrz. 2008 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo Thomas, hallo sw4you, das ist leider viel schwieriger, als es sich anhört, da bei Ansichten ja ganz viel zu berücksichtigen ist. Du kannst verhältnismäßig einfach mit View::Position deine Ansicht an eine bestimmte Position in Bezug auf den Blattursprung bringen, aber die Umrechnung der Objekte über die ganzen Tranformationsmatrizen ist nicht so geradelinig. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 20. Mrz. 2008 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Danke Dir Stefan, hab eigentlich mir schon so was gedacht. Ich werde mich an Dich wenden wenn ich mit meinem MACROVERSUCH wieder weiter mache und bestimmt Deine und die von Anderen Hilfe brauche. Ich wünsche Dir und allen Anderen frohe und gemütliche Ostern. G. thomas ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Knab Mitglied
Beiträge: 373 Registriert: 16.01.2001 SWX 2020 SP5.0
|
erstellt am: 20. Mrz. 2008 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 20. Mrz. 2008 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Zitat: Original erstellt von Bernd Knab: ... Wir brauchen den DXF Ursprung nicht auf dem Teileursprung. Wozu benötigt ihr das? ...
Das würde ich auch gern wissen, da wir unsere Teile außerhalb fertigen lassen und ich bissher nie eine Anfrage von den Fertigungsfirmen bekommen habe, ob ich den Ursprung bei den DXF-Files anders setzen könnte. ------------------ Ich habe/werde die Boardsuche und Google verwenden und mich vor allem an die Netiquette halten, bevor ich frage/antworte. ------------------ Wenn das rauskommt, wo ich überall reinkomme, dann komme ich da rein, wo ich so schnell nicht wieder rauskomme... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 20. Mrz. 2008 18:52 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo Bernd, hallo Andreas, da ich auch viel mit Fertigung zu tun habe kann ich es Euch erklären. Es ist so: beim Lasern ist es nicht so wichtig solange Teile komplett aus einer Blechtafel ausgeschnitten werden. Will man aber in einem vorgefertigten Teil was schneiden oder gar fräsen braucht man natürlich Bezüge. Und die liegen eben an einer definierten Stelle und zwar da wo die Maschine den Nullpunkt hat - z.B. bei einem Maschinenschraubstock in einer CNC Fräse ist es die obere linke Ecke. So gesehen muß ich den Nullpunkt auch an meinem Teil auch dahin legen. Das macht allen das Leben leichter. G. thomas ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
d_b Mitglied vorhanden
Beiträge: 88 Registriert: 15.03.2001 42
|
erstellt am: 21. Mrz. 2008 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo zusammen, hab' da mal was in SW2008 vorbereitet: Das Makro setzt den Modelurspung (0,0,0) einer gewählten Ansicht auf den Urspung der Zeichnung (0,0). Wenn keine Ansicht gewählt ist, wird die erste Zeichenansicht verwendet. Anschließend wird die Zeichnung im Verzeichnis der Zeichnung als DXF exportiert. Gruß, d_b Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sw4you Mitglied
Beiträge: 226 Registriert: 19.02.2002 SOLIDWORKS 2019 Windows 10
|
erstellt am: 22. Mrz. 2008 14:21 <-- editieren / zitieren --> Unities abgeben:
Hallo d_b Herzlichen Dank für dein Makro. Leider läuft es bei mir nicht? Ich bekomme einen Laufzeitfehler. Es ist schon richtig, dass ich das Makro von der Zeichnung aus starte oder?
------------------ Grüsse sw4you Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
d_b Mitglied vorhanden
Beiträge: 88 Registriert: 15.03.2001 42
|
erstellt am: 22. Mrz. 2008 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo sw4you, das Makro wird in der Zeichnung gestartet. Ich habe das Makro nochmal für SW07 angehängt. Wenn der Fehler weiter auftritt, bitte in der Fehlermeldung auf Debuggen klicken und dann einen Screenshot machen. Gruß, d_b Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sw4you Mitglied
Beiträge: 226 Registriert: 19.02.2002 SOLIDWORKS 2019 Windows 10
|
erstellt am: 22. Mrz. 2008 15:49 <-- editieren / zitieren --> Unities abgeben:
Hallo d_b Ja ist denn heute schon Ostern Mit der zweiten Version läuft es!!! Mit der ersten bekomme ich den Fehler wie in der Anlage, obwohl ich SWX2008 einsetzte. Egal, tausend Dank für das Ostergeschenk Leider kann ich dir nur 10 Unities geben, obwohl du 100 Unities verdient hättest. Nachtrag: Irgendwie habe ich mit den Unities etwas verpasst. Die stehen ja irgendwie nicht mehr zur Verfügung? Darum nochmals 1000 x Dank und grüsse aus der Schweiz. ------------------ Grüsse sw4you
[Diese Nachricht wurde von sw4you am 22. Mrz. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 22. Mrz. 2008 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hi Dieter (d_b), ( hab es aus dem Makro rausgelesen ) jou, das ist es! Aber ( was mein Bedarf angeht ) noch nicht alles. Ich weiß aus Fertigungserfahrung, daß es sinnvoll ist auch einen Punkt aus der Zeichnung als Nullpunkt zu definieren (per anclicken). Ich stelle es mir folgendermaßen vor: ich klicke einen Punkt an und starte das Makro. Das Makro schiebt die Ansicht ( den gewählten Punkt ) zu Blatt 0,0 und Sperrt die. Die Sperrung ist wichtig - sonst kann ich es wieder verschieben. So, jetzt eine sehr große BITTE an Dich: könntest Du es bitte umsetzen. Mir ist es sogar mehr 100 US wert. Übrigens die sind nach dem Java update erstmal verschwunden. Sobald die wieder da sind... Beste Grüße und frohe Ostern thomas ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
d_b Mitglied vorhanden
Beiträge: 88 Registriert: 15.03.2001 42
|
erstellt am: 24. Mrz. 2008 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo zusammen, hab' nochmal gebastelt. Das Makro unterstützt jetzt auch folgende Punktauswahl: 1. Eckpunkt 2. Kreis (Ursprung ist dann der Mittelpunkt des Kreises) 3. Skizzenpunkt. Dann wird die erste Zeichenansicht verschoben. Wird nichts gewählt, wird der Ursprung der 1.Zeichenansicht auf den Modellursprung verschoben. @Thomas (myca) Das Sperren der Position ist per API leider nicht möglich. Frohe Ostern, d_b Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
myca Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4383 Registriert: 15.06.2007 SW 2007 SW 2018 2,67 GHz,2 GB, ATI FIRE GL V5200, XP 64 3,4 GHz, 8GB, ATI FIRE PRO V7800, WIN 10 Pro
|
erstellt am: 25. Mrz. 2008 12:18 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hi Dieter (d_b), an dieser Stelle möchte ich mich Bei Dir für das Makro bedanken. Die obligatorischen 10US hast Du schon. Muß ich mir nur noch überlegen wie ich die restlichen auf dein konto rüberkriege... DANKE!!!!!!!!!!! G. thomas ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BxBender Mitglied techn. Zeichner
Beiträge: 363 Registriert: 28.04.2004
|
erstellt am: 26. Feb. 2009 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo. Danke für das Makro. Wäre es möglich, dass das Programm das umschreibende Rechteck der Zeichnung erkennt udn dann den virtuellen linken unteren Eckpunkt direkt auf 0,0 setzt? Unsere EDV druckt Bilder auf den Werkstattaufträgen an, ausgehend vom Nullpunkt. Dann wären die Bilder absolut Top angedruckt, ohne den Umweg über AutoCad machen zu müssen. Danke für ne Info. Gruß Alex ------------------ GAMING IS NOT A CRIME Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
Beiträge: 128 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 27. Feb. 2009 15:06 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Wir machen das ein bißchen anders. Ich benutze ein Makro, welches die Zeichnung einfach als DXF ausgibt (basierend auf der Arbeit von Stefan Berlitz) und dann ein Delphi-Programm startet, welches sich den ersten echten Skizzenpunkt in der Zeichnung greift und diesen als Nullpunkt definiert, sprich alle Konturen entsprechend verschiebt. Resultat ist eine DXF-Kontur im R12-Format (also nur Linien, Kreise und Kreisbögen) Wir nutzen das schon seit vielen Jahren für die Justierung der DXF fürs Fräsen und Lasern. Ich muss mal sehen, ob ich das so rauslösen kann, dass ichs mal hochladen kann. ------------------ Grüße aus Dresden Volkmar Grube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
Beiträge: 128 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 07. Mrz. 2009 13:34 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Im Anhang befindet sich das Makro für die justierte Ausgabe von DXF-Daten. Im Makro befinden sich 3 kleine Unterprogramme, die man über Knöpfe starten könnte. Sub main_mit_Justieriung() DXFSpeichern (1) ' R12 mit Justierung End Sub Sub main() DXFSpeichern (0) ' R12-Format End Sub Sub main_R14() DXFSpeichern (2) ' R14-Format End Sub Wichtig ist, das sich SW_DXF_Umwandlung.exe im gleichen Verzeichnis wie die Makrodatei befindet. SW_DXF_Umwandlung.exe übernimmt das erstellte DXF im Format R12, sucht nach dem ersten echten Skizzenpunkt, definiert diesen als Koordinatenursprung und verschiebt alle greifbaren Endpunkte (Linien, Kreise, Kreisbögen, Blockursprünge etc). Das entstehende File ist wieder im Format R12. Um also den späteren Koordinatenursprung festzulegen, muss man einen Skizzenpunkt in der Zeichnung zeichnen und diesen an die gewünschte Stelle positionieren (Ecke am Teil, Mitte einer Bohrung etc.) Das Makro selbst definiert den Dateinamen in Abhängigkeit vom Blattnamen (siehe dazu die Kommentare im Quelltext). Wenn man die Ziel-Datenformate ändern will, kein Problem, solange SW_DXF_Umwandlung mit Daten im Format R12 versorgt wird. Vor der Benutzung des Makros muss man in den Exportoptionen für DXF einstellen, dass Splines in Polylinien umgewandelt werden sollen und nur das aktive Blatt exportiert werden soll. Außerdem ist es manchmal sinnvoll, das Verschmelzen der Punkte auf einen Wert>0 zu setzen. ------------------ Grüße aus Dresden Volkmar Grube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bloer Mitglied Konstrukteur
Beiträge: 19 Registriert: 16.08.2006 Pentium 4 2,4GHz 512mb Ram Geforce FX 5200 XP Professional SP 2 Wildfire 2 F000
|
erstellt am: 09. Feb. 2017 06:59 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo, ich habe mal diesen alten Thread raus gekramt, weil ich ein ähnliches Problem habe, das weiter oben angebotene Makro mit meiner SWX 2014 Version leider nicht funktioniert. Ich möchte lediglich eine gewählte Ansicht auf dem Zeichenblatt definiert platzieren (X/Y-Werte eingeben). Leider fehlen mir die nötigen Programmierkenntnisse und mit der Markoaufnahme komme ich leider auch nicht weiter. Wahrscheinlich ist es nur ein Befehl - den ich aber nicht kenne. Kann mir hier bitte jemand helfen? Gruß Christian
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: 09. Feb. 2017 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Hallo Christian, Zitat: Original erstellt von Bloer: ich habe mal diesen alten Thread raus gekramt, weil ich ein ähnliches Problem habe, das weiter oben angebotene Makro mit meiner SWX 2014 Version leider nicht funktioniert.
Ich hab mir das gerade mal runtergeladen und das funktioniert bei mir noch tadellos, wenn du die Verweise angepasst hast. Wenn du dir nicht sicher bist wie das geht schau mal hier in eine Kurzerklärung mit ScreenshotZitat: Original erstellt von Bloer: Ich möchte lediglich eine gewählte Ansicht auf dem Zeichenblatt definiert platzieren (X/Y-Werte eingeben). Leider fehlen mir die nötigen Programmierkenntnisse und mit der Markoaufnahme komme ich leider auch nicht weiter.
Also wenn du per Makro eine Zeichenansicht definiert platzieren willst aber dir die Programmierkenntnisse fehlen wird es schwierig. Das klingt dann eher wie die Anfrage für eine Auftragsarbeit ;) Zitat: Original erstellt von Bloer: Wahrscheinlich ist es nur ein Befehl - den ich aber nicht kenne.
Jein. Das reine Platzieren der Ansicht ist oben schon beschrieben, das geht mit View::Position - aber wie eben auch oben schon beschrieben ist es nicht so trivial, einen bestimmten Punkt aus dem Modellraum über den Mittelpunkt der Ansicht auf die maßstabsbehafteten Blattkoordinaten umzurechnen. Das wird aber sehr schön in dem Makro von d_b oben gezeigt, wenn es auch einiges an Nachvollzieharbeit kostet, weil es nicht so dolle dokumentiert ist. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bloer Mitglied Konstrukteur
Beiträge: 19 Registriert: 16.08.2006 Pentium 4 2,4GHz 512mb Ram Geforce FX 5200 XP Professional SP 2 Wildfire 2 F000
|
erstellt am: 10. Feb. 2017 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
Danke für den Hinweis mit den Verweisen, jetzt funktioniert es bei mir auch. Ja, eine "Auftragsarbeit" oder noch besser ein Lehrgang wäre mir auch lieber, aber es muss ja gespart werden :/ Nach weiterem Suchen im Forum habe ich noch ein altes Beispiel von dir gefunden, was das Positionieren in etwas schlankerer Form übernimmt. ---------------------------------------------------------------------- Option Explicit Dim swApp As Object Dim DrawingDoc As Object Dim SelMgr As Object Dim SelCount As Long Dim DrawingView As Object Dim vViewPos(1) As Double Const swSelDRAWINGVIEWS = 12 Sub main() Set swApp = Application.SldWorks Set DrawingDoc = swApp.ActiveDoc Set SelMgr = DrawingDoc.SelectionManager SelCount = SelMgr.GetSelectedObjectCount If SelCount = 1 Then If (SelMgr.GetSelectedObjectType(1) = swSelDRAWINGVIEWS) Then Set DrawingView = SelMgr.GetSelectedObject4(1) vViewPos(0) = 0# vViewPos(1) = 0# DrawingView.Position = (vViewPos) DrawingDoc.EditRebuild End If End If End Sub ---------------------------------------------------------------------- Auch dafür nochmal vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
solas Mitglied
Beiträge: 461 Registriert: 11.02.2010 Kämpft mit BIM IFC
|
erstellt am: 14. Feb. 2017 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für sw4you
|