| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Schweizer Premium-Anbieter von Flugzeuginnenausstattungen "fliegt" auf Modelsearch , ein Anwenderbericht
|
Autor
|
Thema: Makro schreiben für DXF-Export (1760 mal gelesen)
|
ls Mitglied Konstrukteur Systembetreuer
Beiträge: 37 Registriert: 23.05.2002
|
erstellt am: 19. Jun. 2003 08:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Ihr Makro-Experten Ich muss ein Makro schreiben, welches ich in Annotation anwenden kann. Dabei geht es darum von einer 2D-Zeichnung, welche diverse Ansichten mit einer Abwicklungsansicht (WICHTIG!!!) enthält, über einen Knopf-Druck alles löschen kann ausser die Abwicklungsansicht, d.h. auch Bemassung alle gelben Linien und Ansichten müssen weg. Nur die reine Geometrie darf übrig bleiben. Wir brauchen das, um anschliessend in der Werkstatt diese Zeichnung als DXF wieder einlesen zu können und so die Kontur von Blechen mit dem hergestellten Teil zu vergleichen. Ich habe dabei schon angefangen zu programmieren, hier der Ausschnitt: ("nur Geometrie Extented" :title "nur Geometrie Extented" :action (PROGN (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_dimension :by_drawing_docu_rest complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_symbol :by_drawing_docu_rest complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_text :by_drawing_docu_rest complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_ref_text_line :by_drawing_docu_rest complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_center_line :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_tangent_geo :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_sym_line :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_face :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_point :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_c_circle :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_hidden_geo :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "am_delete2 :geo :GEO :docu_c_line :by_drawing_docu_geo complete") (UI:UIC-AM-ACTION "AM_SHEET_RESIZE :frame-type \"Keine\" complete") (UI:UIC-AM-ACTION "AM_DELETE2 :GEO :del_all :YES complete") ) :ui-behavior :relative ) Jetzt habe ich eigentlich nur noch zwei Probleme: 1. Wie kriege ich die Biege-Linien in der Abwicklung weg? 2. Wie kriege ich alle Ansichten ausser die Abwicklung weg? Kann mir da jemand helfen??? Schwierig nicht war!!!
------------------ Gruss ls Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
karl-josef_wernet Mitglied SysAdmin CAD-ME
Beiträge: 1008 Registriert: 27.11.2000 PTC-Direct-Modeling/Drafting 19.0 Classic/Tablett DELL T5820, Precision 7760 Workmanager/Model-/Drawing-Manager WIN10
|
erstellt am: 19. Jun. 2003 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Hi, hast Du die Zeichnung mal in ME10 angeschaut, insbesondere die Infos. Moeglicherweise hast Du hier einen Ansatzpunkt um die unerwuenschten Biegelinien zu entfernen. Bei der Abgewickelten Ansicht, muesste man ueber den Ansichtsnamen eine Selektion machen können. ------------------ kjw Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dittrich Mitglied SysAdmin
Beiträge: 388 Registriert: 06.06.2000 Wenn es nicht geht, probier was anderes, vielleicht geht es dann auch nicht.
|
erstellt am: 20. Jun. 2003 07:35 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Hi, ich kenne die Makroprogrammierung im Drafting nicht, aber dieses Rätsel musste ich in ME10 schon mehrfach lösen. Für die Biegelinien habe ich keine Idee, wenn sie sich nicht über Farbe, Linienart oder Info eindeutig identifizieren lassen. Um die anderen Ansichten wegzuwerfen gibt es eine automatische Lösung, wenn die Abwicklung ein eigenständiges Teil ist und per Namen identifizierbar ist. Ansonsten interaktiv mit 3-4 Klicks. Folgendes Makro ist die Negation des globalen Löschens mit Auswahlrahmen. Löscht eben alles was ausserhalb des gewählten Rahmens ist. Wenn es dir gelingt die Zeichnungskoordinaten der Abwicklung dort reinzusteuern ist es ein Automatismus. Ich weiss aber nicht wie das im Drafting geht. DEFINE Del_gl_ohne_box LOCAL P1 LOCAL P2 READ PNT '1.Punkt waehlen' P1 READ PNT '2.Punkt waehlen' RUBBER_BOX P1 P2 DELETE SELECT GLOBAL ALL SUBTRACT GLOBAL BOX P1 P2 CONFIRM REDRAW END_DEFINE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2158 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 23. Jun. 2003 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Hallo ls, ich kann mich meinen Vorrednern (-schreibern?) nur anschliessen: So ein Problem, wo die Assoziativität keine Rolle mehr spielt, ist "quick and dirty" mit ME10-Makros schneller zu lösen. Dazu gibts (sd-execute-annotator-command :cmd befehl). befehl kann natürlich auch ein Makroname sein. Das kann man auch mit (sd-execute-annotator-command :cmd (format nil "INPUT pfad/dateiname" )) initialisieren. Sieh dir die Infos und Teilestruktur einer repräsentativen Zeichnung in ME10 an, die Ansichten sind ja Teile mit sprechenden Namen und die Linienelemente haben alle entsprechende Infos. ------------------ Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ls Mitglied Konstrukteur Systembetreuer
Beiträge: 37 Registriert: 23.05.2002
|
erstellt am: 24. Jun. 2003 08:08 <-- editieren / zitieren --> Unities abgeben:
Nun vielen Dank mal für die bisherigen Antworten. Sie konnten mich ein Stückweit weiter helfen. Doch jetzt stecke ich schon wieder fest. Ich habe mich entschiede mein Problem in 2 Teilschritte zu lösen: 1. User muss ein Makro ausführen (ist nur teilweise fertig) 2. User kann anhand des unten aufgeführten Makros alle anderen Ansichten löschen. An dieser Stelle ist ein Dankeschön an Dittrich angebracht. Ich hoffe du kannst mir nun beim Punkt 1 weiterhelfen. Selbstverständlich nehmen ich aber auch von allen anderen Forum-Usern gerne Hilfe entgegen. DEFINE Geometrie CHECK_3D_GEO_MODIFY OFF CONFIRM END CHANGE_GLOBAL_INFO '*' '' CONFIRM END DELETE SELECT GLOBAL C_GEO ALL CONFIRM END DELETE SELECT GLOBAL CENTERLINES ALL CONFIRM END DELETE SELECT GLOBAL SYMLINES ALL CONFIRM END DELETE SELECT GLOBAL EDITED_DIMENSIONS ALL CONFIRM END DELETE SELECT GLOBAL DIMENSIONS ALL CONFIRM END DELETE SELECT GLOBAL TEXTS ALL CONFIRM END REDRAW END_DEFINE Worum gehts noch: Das angeführte Makro läuft irgendwie nicht. Kann mir jemand sagen wieso? Wenn ich die Zeilen einzelnen im ME10 ausführe, dann ist alles tip top. Weiter fehlen mir noch 2 Anweisungen in diesem Makro: 1. Alle Biege-Linien löschen (gelb; Strich-2-Punkt) 2. Alle gelben Linien löschen Es dürfen nur die weissen Linien übrig bleiben. Vielen Dank für eure Hilfe. ------------------ Gruss ls Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2158 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 24. Jun. 2003 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Also mit diesem Befehl sollte in Anno schon das meisste erschlagen sein: (oli::sd-execute-annotator-command :cmd "DELETE SELECT GLOBAL ALL SUBTRACT GLOBAL WHITE CONFIRM END")Wenn es noch weisse Texte oder Bemassungen geben sollte: (oli::sd-execute-annotator-command :cmd "DELETE SELECT GLOBAL TEXTS ALL CONFIRM END")(oli::sd-execute-annotator-command :cmd "DELETE SELECT GLOBAL DIMENSIONS ALL CONFIRM END")Noch mal zu Wiederholung: Diese Methode ist ausserordentlich brutal und sollte wirklich nur für Exportzwecke verwendet werden, wo Assoziativität wurscht ist!!! ------------------ Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernard_D Mitglied Konstruktionsingenieur
Beiträge: 30 Registriert: 05.07.2002
|
erstellt am: 25. Jun. 2003 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für ls
|
ls Mitglied Konstrukteur Systembetreuer
Beiträge: 37 Registriert: 23.05.2002
|
erstellt am: 25. Jun. 2003 15:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Walter Vielen Dank für deinen Tip, jetzt funz das Mekro soweit ich es mal programmiert haben. Was jetzt noch zu lösen wäre, ist das ich die gelben Biegelinie löschen kann. Den folgenden Befehl geht leider so nicht: DELETE SELECT GLOBAL GEO YELLOW SOLID CONFIRM Dieser Befehl löscht mir immer alles. Kann mir jemand sagen was hier falsch sein könnte. Vielen Dank. ------------------ Gruss ls Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
karl-josef_wernet Mitglied SysAdmin CAD-ME
Beiträge: 1008 Registriert: 27.11.2000 PTC-Direct-Modeling/Drafting 19.0 Classic/Tablett DELL T5820, Precision 7760 Workmanager/Model-/Drawing-Manager WIN10
|
erstellt am: 26. Jun. 2003 00:12 <-- editieren / zitieren --> Unities abgeben: Nur für ls
|
Tommy Mitglied Dipl.-Ing. ET
Beiträge: 20 Registriert: 08.11.2000
|
erstellt am: 26. Jun. 2003 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Hallo ls, wir haben bei uns in der Firma eine ähnliche Problematik und haben dies wie teilweise in den Beiträgen beschrieben gelöst : Abwicklungen werden über sheet-adviser erzeugt -> Teilegeometrie dort ist immer im Teil "upside". Dieses Teil wird über Makro bereinigt und beim Speichern der Zeichnung (Speicherdialog stillgelegt & Speichern über seperaten Dialog im FS) wird automatisch die entsprechende Abwicklung unter gleichem Dateinamen mit seperater Endung gespeichert. Da wir (noch) ohne workmanager arbeiten, sammelt dann ein cron-job auf dem Server die ganzen Abwicklungen ein und verschiebt diese an den Programmierpool. Damit kann kein Konstrukteur vergessen, daß eine Abwicklungssatz erzeugt werden muß. Tommy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 07. Aug. 2003 14:06 <-- editieren / zitieren --> Unities abgeben: Nur für ls
Hallo IS, Dein Problem ist eigentlich kein "Grosses". Die Lösung, wie übrigens Alle (großes Lob) bemerkt haben, ist in zwei Schritten zu lösen. 1) Ein Makro in SD wird benötigt: Sollte eine View aus Annotation selektieren lassen und deren ID an ein Macro in ME10 code weitergeben. 2) Ein Makro in ME10 code Sollte mit eine View_id aus Anno versorgt werden. Sollte das Teil kopieren - Maßstab auf 1:1 bringen Alle element via Infostrings "..SELECT INFOS "*sdss* .." löschen Diese Teil als DXF abspeichern unötiges Teil wieder Löschen Und nicht vergessen das Teil mit "view_id" wieder aktiv zu setzen. Wie weit bist Du mit deinem Makro schon gekommen ??
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 18. Aug. 2003 18:35 <-- editieren / zitieren --> Unities abgeben: Nur für ls
|