| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Der INNEO Führungskreis stellt sich für die Zukunft neu auf, eine Pressemitteilung
|
Autor
|
Thema: Bemassungstext kopieren (3321 / mal gelesen)
|
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 09. Jan. 2018 08:49 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen alle zusammen, mein Anliegen wie folgt: Wir bauen Spritzgusswerkzeugen und haben nach dem Neubau eines Werkzeugs auch Korrekturschleifen. Das bedeutet das wir Masse nach Messbericht einstellen müssen. Also, wenn ich Masse im 3D ändere, muss ich die geänderten Masse im 2D mit einem Index versehen und hinter dem Index das alte Mass als durchgestriches aufschreiben (siehe Anhang). Das macht sehr viel Arbeit. Hat jemand evtl. ein Lisp mit dem man einen Bemassungstext kopieren kann. Meine Vorstellung ist folgende: Ich klicke einen Bemassungstext an, dieser Text wird kopiert und automatisch mit einem kleinen Abstand neben dem alten Text abgelegt. Ideal wäre es wenn zwischen dem neuen und alten Mass noch ein Indext eingefügt werden könnte, siehe Anhang. Wenn der Index auch noch automatisiert werden könnte, wäre genial. Kurz gesagt: 1. Vorhandenen Bemassungstext anklicken 2. Index wird hinter den Bemassungstext gesetzt 3. Anschließend hinter den Index wird der angeklikte Bemassungstext gesetzt, als durchgestrichenes Mass, siehe Anhang. (Einen Schriftfont als durchgestrichen, habe ich.) Da ich kein Programmierer bin, meine Frage, ob jemand evtl. schon sowas in der Art hat oder bereit wäre diese Aufgabe zu lösen? Vieln Dank für jede Hilfe im Voraus. Gruß Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gero Adrian Mitglied MBA, Dipl.Ing.
Beiträge: 529 Registriert: 13.12.2000 Ihr Berater Klietsch Partner
|
erstellt am: 24. Jan. 2018 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
|
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 29. Jan. 2018 07:44 <-- editieren / zitieren --> Unities abgeben:
|
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003
|
erstellt am: 30. Jan. 2018 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
|
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 31. Jan. 2018 15:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Peter, habe dein Lisp getestet, macht fast das was ich brauche. 1. Bemassung wird korrekt kopiert 2. Index muss fest wählbar sein. Wenn ich die erste Korrektuschleife bearbeite, bekommen alle geänderten Masse Index (1). Der Index sollte in einen Kreis und nicht in eine Klammer eingebettet sein. 3. Die kopierte Bemassungszahl sollte als durchgestrichene Zahl dargestellt sein. Der Index nicht. 4. Dann muss es wahlweise, entweder für den prefix oder postfix anwendbar sein, weil ich bei der Koordinatenbemassung mal links mal rechts die kopierten Masse setze. Das kopierte Mass kommt immer nach aussen. 5. Einen Schriftfont als "durchgestrichen" habe ich dazu angehängt. Das ganze mit einem Klick zu realisieren, schein mir schwierig zu sein. Daher folgender Gedanke: 1. Ein Lisp mit dem ich nur den Index hinter alle Masse setze. 2. Ein weiteres Lisp womit ich die Bemassung kopiere. 3. Das ganze in einer Maske mit zwei Knöpfen "Index setzen" "Bemassung kopieren" Wenn das möglich ist wäre super. Ich danke herzlich für deinen Einsatz. Gruß, Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003
|
erstellt am: 31. Jan. 2018 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Hallo Eugen, zwei unterschiedliche Fonts im Pre- bzw. Postfix sind nicht möglich. Du könntest den Index in den Superfix schreiben. Für den Kreis um den Index fällt mir im Moment auch keine Lösung ein.
------------------ Gruß, Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003 WIN 10 Modeling 20.2.1 Drafting 20.2.1 UI4 Model Manager 20.2.1
|
erstellt am: 01. Feb. 2018 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Nachtrag: Die Fixtexte werden überschrieben. Falls du in diesen noch sonstige Texte hast müssen die vorher ausgelesen werden und danach wieder hinzugefügt werden. ------------------ Gruß, Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 01. Feb. 2018 10:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Peter, vielen Dank, hab das letzte Lisp ausprobiert, macht genau was es soll, nur der Index als Superfix macht sorgen. Wenn ich in der Koordinatenbemassung viel Bemassung habe, führt das Superfix zu vielen Überlappungen. Deshalb mein Vorschlag, den Index komplett wegzulassen, den kann ich über einen Befehlsknopf, den ich mir erstellt habe, anschließend mit dem entsprechenden Index hinter die Kopierte Bemassung hinzufügen. Der Befehl lautet: am_create_text :size 1.8 :frame "BALLOON" :docu-text "1" wner Ideal wäre, wenn man noch eine Löschfunktion für die Fixtexte einbauen könnte. Dafür habe ich auch einen Befehlsknopf: am_dim_add_fixtext :dim_list refix "" ostfix "" :superfix "" :subfix "" :apply Gruß Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.5011 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 01. Feb. 2018 14:16 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Zitat: Original erstellt von Jako: vielen Dank,
darauf hatte ich schon (nach Peters intensiver Hilfe) gewartet. Zitat: anschließend mit dem entsprechenden Index hinter die Kopierte Bemassung hinzufügen. Der Befehl lautet: am_create_text :size 1.8 :frame "BALLOON" :DOCU-text "1" :Owner
Das ist keine ganz so gute Idee, denke ich. Denn dieser 'freie' Text hat erstmal keinerlei Bezug zu dem Mass. Wenn das Mass aufgrund eine Updates also auf der Zeichnung wandert, bleibt Deine manueller Index dort liegen, wo Du ihn haendisch hingesetzt hast. Das mag voellig woanders sein, aber (Murphy sei dank) mit wahrscheinlichkeit in der Naehe eines anderen Masses. Es gibt aber den Befehl "Group" AM_DEFINE_GROUP . Damit kannst Du Texte, Symbole und Bemassungen zu einer Einheit zusammen fassen. Damit bleibt beim Update auch alles beieinander. Den muesstest Du also mit verwenden.
Vielleicht kanns Du auch mal noch nen Screenshot bereit stellen,wenn sich 5 Masse schon 3..4..5 mal geaendert haben und wie das bei Koordinatenbemassung aus sehen soll / oder momentan aussieht. Eine andere Ueberlegung waere den 'second value' einer Bemassung zu nutzen. ------------------ ● 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 |
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 01. Feb. 2018 15:32 <-- editieren / zitieren --> Unities abgeben:
Im 2D erscheint nur der letze Index. Wenn sich ein Maß mehrmals ändert, wird immer nur das letzte Maß mit dem dazugerögigen Index auf der 2D Zeichnung stehen gelassen. Sonst würden wir auf manchen Zeichnungen mehr wirrwar erzeugen als Sinn. Es ist für uns primär wichtig, das geänderte Masse auf den Zeichnungen sofort ersichtlich sind. Das machen wir mit der durchgestrichenen Masszahl und dem Index. Weiter ist für die Zeichnungen nichts mehr erforderlich. Zwecks Nachvollziehbarkeit speichern wir die geänderten Daten als 3D Daten zum jewailigen Index in einem jewails dafür angelegten Ordner ab. Und wir arbeiten mit Farben und können anhand der Farben sehen, welche Bereiche sich geändert haben. Es würde mir reichen, wenn die Masszahl ohne Index kopiert werden könnte und wenn noch ein Button zum löschen der Fixtexte dabei wäre. Im Grunde funktioniert es ja schon, nur der Superfix stört, wg. Platzmangel. Gruß Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003
|
erstellt am: 01. Feb. 2018 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
|
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 02. Feb. 2018 06:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Peter, das ist eine sehr gute Lösung. Wenn du noch die Funktion "Fixtexte löschen" einbauen könntest, wäre dieses Lisp noch perfekter. Es kann und wird passieren das man statt prefix auch mal postfix wählen wird und dann kann man mit "Fixtexte löschen" ohne aus dem Befehl auszusteigen löschen und weiter machen. Ich danke dir sehr, es ist ein geniales sehr gut gelungenes Lisp. Viele Grüße Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003
|
erstellt am: 02. Feb. 2018 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
|
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 02. Feb. 2018 09:48 <-- editieren / zitieren --> Unities abgeben:
|
MiBr Mitglied Konstrukteur
Beiträge: 576 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside
|
erstellt am: 02. Feb. 2018 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Hallo, ich habe mir mal erlaubt noch ein wenig an der Lisp zu ändern. Vielleicht gefällts und wenn nicht auch gut! Zitat: Es kann und wird passieren das man statt prefix auch mal postfix wählen wird und dann kann man mit "Fixtexte löschen" ...
Ich denke, das kann wirklich lästig werden, von daher habe ich mal Versucht dies automatisch zu ermitteln. Dies funktioniert in der Lisp, wenn die Bemaßung zu 0° oder 90° steht, anstonsten kommt eine Abfrage. Denke das sollte bei der Koordinatenbemaßung i.O. sein. Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jako Mitglied Werkzeugmacher, Kostruktion
Beiträge: 84 Registriert: 20.11.2009 Solid Designer / Annotation Version: 16.50
|
erstellt am: 02. Feb. 2018 11:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, das macht das Lip jetzt richtig genial. Man muss nicht ständig zwischen postfix und prefix hin und her schalten. Sehr genial kann ich da nur sagen. Vielen herzlichen Dank, gefällt mir sehr gut. Gruß Eugen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.5011 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 03. Feb. 2018 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
@Peter and @Michael hey prima.. sogar fast durchgaengig 2 sprachig kleine Stolperer:
Code: (= (- (gpnt2d_y (sd-am-inq-dim-extline1-begin-pnt DIM_SEL)) (gpnt2d_y (sd-am-inq-dim-extline1-end-pnt DIM_SEL))) 0)
Das kommt im Prinzip 4 mal vor. Du berechnest den Abstand zwischen 2 Y werten und guckst ob dieser 0 ist. Also guckst Du eigentlich ob der begin und end point (bzw. nur Y davon) gleich sind. Floating Numbers auf GLEICHHEIT zu testen ist in der computerei recht gefaehrlich. Zahlen mit Nachkommastellen lassen sich im Binaer system nicht so einfach darstellen. Da wackelt es halt mal an der 13. Stellen hinterm Komma. Deswegen vergleicht man solche Zahlen nicht mit '='! Da greifen wir in die IKIT Grabbel Kiste und nehmen : sd-num-equal-p Checks if the two passed numbers are equal within the specified geometric resolution. Also: Code: (sd-num-equal-p (gpnt2d_y (sd-am-inq-dim-extline1-begin-pnt DIM_SEL)) (gpnt2d_y (sd-am-inq-dim-extline1-end-pnt DIM_SEL)))
Im hinteren Bereich der local function (if TEXT_POSTFIX...) haette ich mir eher 2 lokale variablen spendiert und nur einen einzigen Aufruf AM_DIM_PROPS codiert. Warum? Das ist dann besser aenderbar, wenn man z.b. die Farbe oder den Font aendern will. Ausgerechnete der laengliche sd-call-cmds am_dim_props Aufruf ist vier mal vorhanden. Schwerwiegender ist da eher noch die Verwendung von sd-display-warning, denn dies "bricht" die recorder Faehigkeit des Dialogs. Einen solchen Check/eine solche Abfrage muesste man konsequenterweise in die :check-function und deren :confirmation einbauen. Und ihr seht - solche Kleinigkeiten machen source code schnell komplizierter. __________________________________ formal: eine variable 'input' zu nennen, ist suboptimal. "Input" ist a) was sehr allgemeines b) programmtechnisch irgendwie vorbelegt (sagt mir mein Bauch ). Also habe ich da nen passenderen Namen genutzt und die Definition runter gezogen. __________________________________ Und wenn es schon bequem sein soll... habe ich noch proposals eingebaut. Da bleibt die Hand laenger auf der Maus und muss nicht zwischendurch kurz ne Nummer eingeben. --------------------- Meine Variante anbei. Ich habe aber nicht alles angesprochene geaendert. ------------------ ● 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 |
MiBr Mitglied Konstrukteur
Beiträge: 576 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside
|
erstellt am: 05. Feb. 2018 07:29 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Hallo Wolfgang, erstmal wieder ein Dankeschön für deine Ausführung, jetzt kann ich alle meine Lisp mal wieder auf Optimierungspotential (sehr hoch) durchschauen! Das mit dem sd-num-equal-p ist ein sehr guter Hinweiß, hatte mit dem Vergleichen = von Zahlen schon mal ein Problem und sage jetzt lieber nicht, wie ich das gelöst habe! Das mit dem Input, hatte ich eins zu eins aus dem IKit übernommen und mir bei der Variable überhaupt nichts gedacht. Und mit dem fast durchgänig in zwei Sprachen, habe ich dann auch wohl zu verantworten! (noo englisch scil) @Eugen: Freut mich wenn gefällt! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.5011 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 07. Feb. 2018 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Zitat: Original erstellt von MiBr: erstmal wieder ein Dankeschön für deine Ausführung, jetzt kann ich alle meine Lisp mal wieder :Dance: auf Optimierungspotential (sehr hoch) durchschauen!
Bitte, gerne doch! Ja die Proposals sind SOOOO schoen!! Die kann man fast blind einbauen bringen fuer die Usability aber immer einiges. Und wenn dann der manuelle UserInput beim naechsten restart auch noch in der drop down liste auftaucht, ist das doch bequem, oder? Man kann auch mit einer leeren Proposal list anfangen, die fuellt sich ja automagisch mit der Zeit. Deswegen kommt das in von mir geschriebenen / angepassten Dialogen eigenlich immer vor. Viel Vergnuegen beim Ueberarbeiten!!! hehe. ------------------ ● 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 |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.5011 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 07. Feb. 2018 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
|
MiBr Mitglied Konstrukteur
Beiträge: 576 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside
|
erstellt am: 07. Feb. 2018 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Hallo Wolfgang, die Variante funzt aber nur zu Null und dann müsste da ein < Zeichen stehen, oder! Ich sagte zwar, dass ich es lieber nicht sage wie ich´s gelöst hatte! Aber egal! In etwa so hatte ich das beim Zahlenvergleich gemacht (ungetestet): (and (> (+ num1 0.001) num2) (< (- num1 0.001) num2)) Wir driften aber jetzt auch irgend wie vom Thema ab, aber Eugen wird´s wohl verzeihen! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2232 Registriert: 3.20. ● PE20+60+80@home ● W10 Pro Build19045.5011 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 07. Feb. 2018 18:46 <-- editieren / zitieren --> Unities abgeben: Nur für Jako
Zitat: Original erstellt von MiBr: die Variante funzt aber nur zu Null und dann müsste da ein < Zeichen stehen, oder!
< oder > je nachdem ob du beim Verleich ein T oder ein NIL haben willst. Ich glaube du hast den (abs ... ) Aufruf ueberlesen. ;) Wir bestimmen den "Abstand" zweier Zahlen durch Differenzbildung (- num1 num2). Der "Abstand" sollte aber ein positiver Wert sein: ==> das macht abs, in dem es das 'das minus zeichen weg macht'. Dann gucken wir ob dieser Abstand kleiner einer Tollllleranzgrenze ist. Das waere dann 1:1 umgesetzt:
Code: (< (abs (- num1 num2)) tolerance)
Okay im vorherigen Posting habe ich "Toleranz ist groesser als der Abstand" auskodiert... aber (3 mal nachdenken) das laeuft ja aufs gleiche raus.
Hier findet sich ein schoene und kompakte Ubersicht der Lisp Nummern. Die Funkionen gcd und lcm habe auch noch nie angewandt, glaube ich... was es nicht so alles gibt. . lach.. ------------------ ● 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 |