| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Eingabe einer Länge auch mit Mausklick (1006 / mal gelesen)
|
StephanD Mitglied Ingenieur
Beiträge: 121 Registriert: 10.01.2003 Modeling Version 20.1
|
erstellt am: 17. Feb. 2020 11:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich benötige für ein kleines Makro einen angeklickten Punkt auf einer Arbeitsebene und eine Länge als Variable. Das klappt auch, wenn ich die Länge von Hand eingebe. Schön wäre es jetzt, wenn ich die erste Variable auf der Ebene anklicke und dann eine Gummilinie erscheint, mit der Möglichkeit einen zweiten Punkt anzuklicken (die Länge wird dann als Differenz der beiden Punkte ermittelt) oder direkt eine Länge einzugeben. Im Prinzip genau das gleiche wie beim erstellen einer einfachen Linie auf einer Arbeitsebene. Auf die Variable bzw. Rückmelung mit dem Winkel könnte ich verzichten. Dieser Code funktioniert, nur dass die Bedienung nicht so komfortabel ist. Code:
:variables '( (Mittelpunkt :value-type :Point-2d ) (Laenge :value-type :Positive-length ) )
Einen Rückmeldung mit einer Gummilinie bekomme ich auch hin: (setq fback (sd-start-rubberline-feedback Mittelpunkt)) Dann muss ich aber den zweiten Punkt als Variable definieren und die Länge als Differenz der Punkte ausrechnen. Mit dieser Lösung kann ich aber nicht mehr die Länge direkt eingeben. Kennt dazu jemand eine elegante Lösung? Vielen Dank. Grüße Stephan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MiBr Mitglied Konstrukteur
Beiträge: 508 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 19R3 Mechanical Pro
|
erstellt am: 17. Feb. 2020 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für StephanD
Hallo Stephan, du kannst doch den zweiten Punkt ausssschließlich zum Berechnen der Länge nutzen und damit die dritte Variable optional ausfüllen. In etwa so: :variables '( (Mittelpunkt :value-type :Point-2d :next-variable 'Punkt_zwei ) (Punkt_zwei :value-type :Point-2d :toggle-type :invisible :after-input (progn (sd-set-variable-status 'Laenge :value (Berechnung der Länge P1-P2))) ) (Laenge :value-type :Positive-length ) ) So funzt das doch, oder verstehe ich dich Falsch? Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 17. Feb. 2020 18:59 <-- editieren / zitieren --> Unities abgeben: Nur für StephanD
Hi, es gibt ====>> Multiple Value Types Deine 2. Variable wäre also PUNKT und LÄNGE .. in digitaler Symbiose. Du musst dann nur in der Checkfunction aufpassen, oder auch bei :gui-value und natürlich im :after-input. Hier musst du immer beide Typen abfragen und entsprechend verzweigen. Etwas so: Code: (point_or_length : ... :after-input (if (numberp point_or_length) (pprint "kann so bleiben) ;; else (setq point_or_length (SD-VEC-LENGTH(sd-vec-subtract MittelPunkt point_or_length))) ) )
Nach aussen hin wäre point_or_length dann immer eine length. Wenn du einen schönen Beispiel Dialog machst, der nur die beiden Variablen enthält und etwas Ausgabe in der Console und co, mit start und end-feedback und anderem Gui-Schnickschnack und den hier veröffentlichst als "how-to-do-this-template" ... dann ... dann bekommst Du auch ein rotes Bienchen ins Heft gestempelt. ------------------ ● 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 |
StephanD Mitglied Ingenieur
Beiträge: 121 Registriert: 10.01.2003 Modeling Version 20.1
|
erstellt am: 18. Feb. 2020 11:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke das hat schon mal weiter geholfen. Das Ergebnis habe ich angehängt. Vielleicht reicht es ja schon für ein Bienchen. Luxus wäre jetzt noch eine Anzeige des Radius wie beim 2D-Copilot wenn man einen Kreis zeichnet. Über eventuelle Verbesserungen oder Korrekturhinweise in dem kurzen Programm bin ich natürlich auch dankbar. Grüße Stephan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Fachkoordinator / Projektingenieur (m/w/d) Maschinenbauliche Systeme ? Schiffbau / Yachten | In über 145 Jahren Firmengeschichte hat sich viel verändert, unser Wertekompass und unsere Leidenschaft für den Schiffbau jedoch nicht. Seit vier Generationen bleiben wir ? auch bei teils stürmischer See - als Familienunternehmen konstant auf Kurs und sorgen mit Teamwork, Qualität und Innovation für exzellenten Yachtbau auf höchstem Niveau. An unseren Standorten Bremen, Hamburg und Rendsburg sorgen ... | Anzeige ansehen | Projektmanagement |
|
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 23. Feb. 2020 22:21 <-- editieren / zitieren --> Unities abgeben: Nur für StephanD
|