| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
[an error occurred while processing this directive]
Autor
|
Thema: EQUIDISTANCE arbeitet als in Annotation anders als in ME10 (186 / mal gelesen)
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 04. Jun. 2025 11:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Micro-Joints in Blechteilen sind eine Super Sache. In SheetMetal gibt es aber leider keine entsprechenden Funktionen. Wir helfen uns damit ab, dass wir Konturen mit konstanter, definierter Breite ins Blechteil stanzen. Vorgabe für die Kontur: Der Abschluss muss mit einer geraden Linie gezeichnet werden, die der definierten Konturbreite entspricht. Die angrenzenden Linien müssen rechtwinkelig anschließen, bei Radien muss die Tangente rechtwinkelig sein. Bisher ist der Laser immer die gesamte Kontur abgefahren, somit doppelte Schnittlänge, da er ja die gesamte Kontur einmal "rundherum" abfährt. Wir versuchen daher, die Mittellinie der Kontur zu erzeugen (die originale Kontur wird anschließend ausgeblendet und beim dxf-Export gelöscht). Das Erstellen der Äquidistante geht manuell in Annotation so recht und schlecht. Leider ist dieser Befehl extrem empfindlich und schlecht bedienbar. Radien, die kleiner sind als die halbe Konturbreite führen dazu, dass keine Äquidistante erstellt werden kann, weil der Befehl die Kontur außen erstellt und die Innenseite gar nicht probiert. Man kann dann nicht einmal auf "Andere Seite" klicken. In ME10 muss man die Seite, auf der die Kontur erstellt wird, selber angeben, da passiert das nicht. Sogar wenn die Radien zu klein sind, wird die Äquidistante nach Ausgabe einer Fehlermeldung erzeugt. Unter diesen Voraussetzungen kann man das in Annotation nicht programmieren / automatisieren. Also haben wir den Weg über ME10-Makros gewählt. Das funktioniert soweit ganz gut, aber leider passieret hier ein ähnlicher Fehler wie in Annotation, nämlich dass die Äquidistante außerhalb erstellt wird, obwohl ganz sicher ein Punkt innerhalb der Kontur angegeben wird. Irgendwie ist die Sache sehr verzwickt. Im Annotation-Trace werden die Werte der Variablen und somit die Koordinaten, die zur Erstellung der Äquidistanten berechnet wurden, ausgegeben. Wenn ich die Zeichnung in ME10 lade und die Werte der Stellen, an denen die Kontur auf der Außenseite erzeugt werden, eingebe, wird die Kontur immer auf der Innenseite, also korrekt, gezeichnet. Ich habe im ME10-Makro, das von Annotation aufgerufen wird, sogar farbige Punkte an den berechneten Koordinaten erstellt, um zu sehen, ob da etwas falsch läuft. Aber da ist alles korrekt. Mittlerweile bin ich am Verzweifeln und weiß nicht mehr weiter. Ich hänge mal eine Beispielzeichnung und das komplette LISP-File an. Der entscheidende Punkt ist der Aufruf des Makros
Code: ST_create_microjoint_equidistant
Ich hoffe da kann mir jemand helfen. Bitte gebt mir Bescheid, wenn ihr weitere Infos, aufbereitete Daten, etc. braucht. Ich weiß jetzt nicht, wie ich das Ganze kürzer halten kann. ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2316 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5854 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 04. Jun. 2025 19:32 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
Das ist aber ne harte Nuss so kurz nach Feierabend.. Am kniffeligsten wird dann ja wohl der Aufruf vcn "St_get_equidist_startpnt" sein, oder? Zitat: Sogar wenn die Radien zu klein sind, wird die Äquidistante nach Ausgabe einer Fehlermeldung erzeugt.
Und du fängst die Fehlermeldung im Makro Code ggf. auch ab? TRAP_ERROR und Verwandschaft kennst du, oder? Statt im Lisp Code: ;; Mittelpunkt der Linie = Richtungsvektor für Seite der Äquidistanten
würde ich im Makro mal Code: DISPLAY_NO_WAIT 'meldung'
verwenden. Das mag in der Makro Trace Ausgabe helfen. Das ist wie ein (pprint "Meldung") in der Modeling Konsole. Erleichtert die Orientierung. Den Macro 'ST_create_microjoint_equidistant' mit ZWEI Aufrufen von sd-execute-annotator-command in den Annotator zu pusten. UHH das muss ich alter Anno-Hase aber schlucken 😵. Ja das Ding ist zu lang (über 1000irgendwas). Aber das das funktioniert!!?! 😧 UFF Was sagt denn (ppint (sd-am-errors)) * bei der Macro laderei * vor/nach dem Aufruf, also um Zeile 380 im Lisp code Und vor Zeile 380 würde ich momentan IMMER den ME10 trace einschalten .. also
Code: (sd-am-errors :clear) (sd-execute-annotator-command :cmd "trace del_old 'c:/temp/ST_create_microjoint_equidistant.log") ;; oder append (sd-execute-annotator-command :cmd (format nil "ST_create_microjoint_equidistant... " ....)) ;; wie gehabt (sd-execute-annotator-command :cmd "trace off") (when (sd-am-errors) (pprint (sd-am-errors)))
In dem Trace sind keine '***' vorhanden? Du kannst den Annotation Makro ja auch im ME10 laufen lassen! Die Elem_pntr der beiden Elemente kannst du dir ja per INQ_ELEM (INQ 332) erst rausfischen. Ich würde alle Makros in die Datei annotation-micro-joints.m schreiben und im LISP dann einmal laden via:
Code: (sd-execute-annotator-command :cmd (format nil "input '~A'" (sd-string-replace (namestring *load-truename*) ".lsp" ".m")))
Das passt solange beide Dateien im selben Verzeichnis sind. Dafür hast Du syntax hiflighting beim Editieren der annotation-micro-joints.m Datei. Mehr weiss ich jetzt auch nicht. Habsnettlaufenlassen. 😉 ------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 05. Jun. 2025 12:23 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen, vielen Dank Wolfgang für deine umfangreichen Anregungen.
Zitat: Und du fängst die Fehlermeldung im Makro Code ggf. auch ab? TRAP_ERROR und Verwandschaft kennst du, oder?
Ist im Makro direkt vor dem Befehl EQUIDISTANCE. :) Zitat: Den Macro 'ST_create_microjoint_equidistant' mit ZWEI Aufrufen von sd-execute-annotator-command in den Annotator zu pusten.
Das mache ich relativ oft und funktioniert tadellos, den Tipp habe ich von unserem Supporter bekommen, für den Fall, dass man keine Makro-Datei extra erstellen will. ;) Zitat: Was sagt denn (pprint (sd-am-errors))
NIL Zitat: Und vor Zeile 380 würde ich momentan IMMER den ME10 trace einschalten .. also
Auch hier die Ausgabe jedesmal NIL, egal, ob die Kontur innen (korrekt) oder außen (nicht korrekt) erstellt wurde. Zitat: Du kannst den Annotation Makro ja auch im ME10 laufen lassen! Die Elem_pntr der beiden Elemente kannst du dir ja per INQ_ELEM (INQ 332) erst rausfischen.
Das habe ich vorher schon gemacht (mache ich eigentlich immer bei komplexeren Makros, wenns irgendwie geht). Die Konturen werden immer korrekt erstellt. Ich werde mal einen einfachen LISP-Dialog basteln, bei dem man nur das Start- und End-Element wählen muss und übernehme nur die zwingend notwendigen Makros in einer Makro-Datei. ------------------ Gruß aus dem Salzkammergut Thomas Edit: Warum funktionieren eigentlich die lachenden und zwinkernden Smilies nicht? Egal ob am Ende der Zeile oder in einer neuen Zeile. [Diese Nachricht wurde von holt am 05. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 05. Jun. 2025 13:15 <-- editieren / zitieren --> Unities abgeben:         
Im Anhang die komprimierte Version des Ganzen, aufgeteilt in LISP und Makrodatei. Zusätzlich noch ein Trace von der Kontur, die im Annotation fehlerhaft erstellt wird. Die Traces habe ich mit BeyondCompare verglichen. Bis auf die variablen Werte (Ids, Infotexte) ist alles gleich. Was vor allem wichtig ist: Die Koordinaten sind exakt gleich. Ich bekomme auch nirgends einen Fehler. Wie es für mich aussieht, ist das kein Fehler von meinem Code, sondern ein fehlerhaftes Verhalten des Befehls EQUIDISTANCE im ME10-Teil von Annotation.
------------------ Gruß aus dem Salzkammergut Thomas [Diese Nachricht wurde von holt am 05. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 05. Jun. 2025 13:43 <-- editieren / zitieren --> Unities abgeben:         
Was auffällt: Wenn ich im Annotation als zweites Element den großen Bogen auswähle, wird die Kontur immer korrekt erzeugt. Beim kleinen immer falsch. Ich könnte jetzt als workaround ermitteln, ob die angrenzenden Elemente Bögen sind und falls ja, den größeren der beiden ans Makro übergeben. Und hoffen, dass das wirklich dauerhaft so ist. Den Unterschied im Verhalten zwischen Annotation und ME10 verstehe ich trotzdem nicht. ------------------ Gruß aus dem Salzkammergut Thomas [Diese Nachricht wurde von holt am 05. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 05. Jun. 2025 14:33 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von der_Wolfgang: Am kniffeligsten wird dann ja wohl der Aufruf vcn "St_get_equidist_startpnt" sein, oder?Zitat: Sogar wenn die Radien zu klein sind, wird die Äquidistante nach Ausgabe einer Fehlermeldung erzeugt.
Darauf habe ich vergessen zu antworten: Das war nur ein Beispiel, dass es in ME10 viel besser funktioniert. In dem Anwendungsfall mit den Microjoints kann das gar nicht vorkommen, da die Kontur immer zwischen zwei äquidistanten Konturen erzeugt wird, der Radius der neuen Kontur also nie 0 oder negativ sein kann. ------------------ Gruß aus dem Salzkammergut Thomas [Diese Nachricht wurde von holt am 05. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 730 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 06. Jun. 2025 07:55 <-- editieren / zitieren --> Unities abgeben:         
Mein workaround funktioniert!! Das Thema unterschiedliches Verhalten des ME10-Befehls EQUIDISTANCE in Annotation und ME10 ist wohl ein Thema für den Support.
------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2316 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5854 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 06. Jun. 2025 10:30 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
friedhelm at work Mitglied Techniker Aluminium Profile
  
 Beiträge: 914 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: 06. Jun. 2025 16:02 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
karl-josef_wernet Mitglied SysAdmin CAD-ME im Sabbatical
   
 Beiträge: 1048 Registriert: 27.11.2000 PTC-Direct-Modeling/Drafting 19.0 Classic/Tablett DELL T5820, Precision 7760 Workmanager/Model-/Drawing-Manager WIN10 PE8.0
|
erstellt am: 07. Jun. 2025 12:18 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2316 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5854 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 07. Jun. 2025 19:38 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|