| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Alle Bemassungen mit EDIT_DIM_TEXT editieren (906 mal gelesen)
|
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 13. Aug. 2012 08:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte den Text aller Maße innerhalb einer Zeichnung (mit Teilestruktur) editieren. Um die Maße aller Teile zu editieren brauche ich eine Schleife, denke die kann ich mit einigen Beispielen hier im Forum programmieren. Frage 1: Wie kann ich innerhalb eines Teiles alle Maße mit einem Befehl in einem Makro editieren? Der Text der Bemaßung soll sich nicht ändern, sondern lediglich editiert werden. EDIT_DIM_TEXT fordert laut Hilfe einen Punkt und einen String. Ich habe es versucht mit: EDIT_DIM_TEXT ALL aber das funktioniert nicht. Frage 2: Wie muss ich den String wählen, damit die Maßzahl nicht geändert wird? Hintergrund: Ich schreibe ein Makro zur Umwandlung von Zeichnungen, damit diese nach Konvertierung zu dxf in der vom Kunden geforderten Struktur erscheinen. Dafür muss ich leider die Teile-Struktur lösen. Teile, die in einem anderen Maßstab gezeichnet wurden, werden beim Einbinden verändert. Dazu möchte ich die Maße editieren um dies zu entgehen. Vielen Dank für Hilfen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin, SolidWorks-Backend-Developer
Beiträge: 1016 Registriert: 06.05.2002 SolidWorks 2020-Sp5 OneSpaceDrafting V20.5 MS-Windows 10 Prof. 64Bit Core i7-6700 @ 3.40 GHz 32,00 GB RAM ATI WX 5100
|
erstellt am: 13. Aug. 2012 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für Mark E
Du kannst die Bemaßungen mit INQ_ELEM / INQ_NEXT_ELEM packen, dann kannst Du mit EDIT_DIM_TEXT INQ 101 für die Position und als Wert INQ 3 einsetzen. Bei dem Punkt würde ich mit PICK_VP_PNT 1 x,y arbeiten, dass sollte dann sicher klappen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 13. Aug. 2012 09:37 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von riesi: Du kannst die Bemaßungen mit INQ_ELEM / INQ_NEXT_ELEM packen, dann kannst Du mit EDIT_DIM_TEXT INQ 101 für die Position und als Wert INQ 3 einsetzen. Bei dem Punkt würde ich mit PICK_VP_PNT 1 x,y arbeiten, dass sollte dann sicher klappen.
Ich fürchte, diesen Ansatz bräuchte ich etwas detaillierter. Tut mir leid. Wie würde die Befehlszeile mit EDIT_DIM_TEXT dann aussehen? EDIT_DIM_TEXT INQ (101) INQ (3) PICK VP_PNT 1 X,Y (Was macht der PICK_VP_PNT 1? Damit "gaukle" ich dem Programm einen Klick vor? Die Wahl der Maße erfolgt vorher über INQ_ELEM? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 13. Aug. 2012 10:46 <-- editieren / zitieren --> Unities abgeben:
So habe ich das bis jetzt geschrieben, funktioniert aber noch nicht. Ich weiß nicht wie ich über INQ_ELEM und INQ_NEXT_ELEM die Auswahl treffen kann und wie der Befehl DIM_TEXT_EDIT korrekt aufgebaut wird. DEFINE bemedit LOCAL TEXT LOCAL ART LOCAL PICK LOCAL SCHLEIFE INQ_ENV 8 LET SCHLEIFE (INQ 5) WHILE (SCHLEIFE > 0){Schleife um durch alle Teile zu gehen} TRAP_ERROR EDIT_PART ('~' + (STR SCHLEIFE)) IF (NOT CHECK_ERROR) LOOP REPEAT {Schleife um durch alle Elemente zu gehen} INQ_ELEM PICK - Wie wähle ich alle Bemassungen hintereinander aus? - LET ART (INQ 403) IF (ART = DIM_LINE) EDIT_DIM_TEXT - Wie lautet die korrekte Befehlszeile? - ELSE IF (ART = DIM_RADIUS) EDIT_DIM_TEXT ELSE IF (ART= DIM_DIAMETER) EDIT_DIM_TEXT ELSE IF (ART = DIM_ARC) EDIT_DIM_TEXT ELSE IF (ART = DIM_ANGLE) EDIT_DIM_TEXT ELSE IF (ART = DIM_CHAIN) EDIT_DIM_TEXT ELSE IF (ART = DIM_DATUM_SHORT) EDIT_DIM_TEXT ELSE IF (ART = DIM_DATUM_LONG) EDIT_DIM_TEXT ELSE IF (ART = DIM_COORD) EDIT_DIM_TEXT ELSE IF (ART = DIM_CHAMFER) EDIT_DIM_TEXT END_IF UNTIL ((INQ 14 = 0) END_LOOP END_IF LET SCHLEIFE (SCHLEIFE -1) END_WHILE END END_DEFINE Vielen Dank für die Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
friedhelm at work Mitglied Techniker Aluminium Profile
Beiträge: 882 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 13. Aug. 2012 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für Mark E
Hallo Mark, nicht mit INQ_ELEM sondern mit INQ_SELECTED_ELEM. Versuch es mal damit
Code: DEFINE Bemedit LOCAL Txt LOCAL Art LOCAL Pick LOCAL Schleife INQ_ENV 8 LET Schleife (INQ 5) WHILE (Schleife>0) TRAP_ERROR IF (NOT CHECK_ERROR) EDIT_PART ('~'+(STR Schleife)) INQ_SELECTED_ELEM DIMENSIONS ALL REPEAT LET Art (INQ 403) IF (POS (STR Art) 'DIM_') LET Pick (INQ 101) LET Txt (STR (INQ 306)) EDIT_DIM_TEXT Pick Txt END_IF INQ_NEXT_ELEM UNTIL (INQ 14=0) END_IF LET Schleife (Schleife -1) END_WHILE END END_DEFINE
------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 14. Aug. 2012 08:43 <-- editieren / zitieren --> Unities abgeben:
|
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 15. Aug. 2012 13:46 <-- editieren / zitieren --> Unities abgeben:
Ich dachte ich hätte nun alles am laufen, aber nun in den Probeläufen tauchen (wie zu erwarten war) weitere Fehler auf. Wenn nun die Teilenummern nicht durchgehend sind, führt folgende Zeile natürlich zu einem Fehler: EDIT_PART ('~'+(STR Schleife)) Gibt es eine Möglichkeit diesen Fehler aufzufangen, damit das Makro trotzdem fortgesetzt wird? Oder eine andere Möglichkeit der Schleife um alle Bauteile durchzugehen? EDIT: Hintergrund: Ich lösche Teile aus den Zeichnungen bevor ich den Rest umwandel. Nachdem Löschen sind die Nummern in der Teile-Liste nicht vergeben. Speicher ich die Datei ab und öffne diese neu, wurde die Teileliste aktualisiert und die Teilenummern sind wieder vorhanden. Ich bräuchte also lediglich einen Befehl wie ich die Teileliste vorher aktualisiere, gibt es da was? [Diese Nachricht wurde von Mark E am 15. Aug. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mark E Mitglied Ingenieur
Beiträge: 15 Registriert: 09.08.2012 OSDD V15.5 Solid Works 2010 PE CATIA V5R16 ACAD 2011
|
erstellt am: 15. Aug. 2012 14:31 <-- editieren / zitieren --> Unities abgeben:
|
| Industriemechanikerin / Industriemechaniker (w/m/d) | Als ?Die Forschungsuniversität in der Helmholtz-Gemeinschaft? schafft und vermittelt das Karlsruher Institut für Technologie (KIT) Wissen für Gesellschaft und Umwelt. Ziel ist es, zu den globalen Herausforderungen maßgebliche Beiträge in den Feldern Energie, Mobilität und Information zu leisten. Daran arbeiten am KIT rund 9.800 Mitarbeiterinnen und Mitarbeiter auf einer breiten disziplinären Basis in Forschung, Lehre und Innovation zusammen.... | Anzeige ansehen | Feste Anstellung |
|
friedhelm at work Mitglied Techniker Aluminium Profile
Beiträge: 882 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 15. Aug. 2012 21:58 <-- editieren / zitieren --> Unities abgeben: Nur für Mark E
ich finde diesen Befehl auch nicht wenn ich ihn mal wieder suche. Hab noch daran gedacht als ich das Macro weiter gebastelt habe. Deine Schleife gefällt mir übrigens gut, bin bisher immer über die Teilenamen gegangen. Uis sind unterwegs. ------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |