Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Eingabe einer Länge auch mit Mausklick

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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 (1000 mal gelesen)
StephanD
Mitglied
Ingenieur


Sehen Sie sich das Profil von StephanD an!   Senden Sie eine Private Message an StephanD  Schreiben Sie einen Gästebucheintrag für StephanD

Beiträge: 121
Registriert: 10.01.2003

Modeling Version 20.1

erstellt am: 17. Feb. 2020 11:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von MiBr an!   Senden Sie eine Private Message an MiBr  Schreiben Sie einen Gästebucheintrag für MiBr

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanD 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanD 10 Unities + Antwort hilfreich

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 ESRJava 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


Sehen Sie sich das Profil von StephanD an!   Senden Sie eine Private Message an StephanD  Schreiben Sie einen Gästebucheintrag für StephanD

Beiträge: 121
Registriert: 10.01.2003

Modeling Version 20.1

erstellt am: 18. Feb. 2020 11:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Test_eingabe.lsp.txt

 
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



CATIA V5-Konstrukteur (m/w/d)

ibb, der Engineering Spezialist. Wir entwickeln und konstruieren Produkte, Anlagen, Betriebsmittel und Werkzeuge. Wir optimieren mit FEM Analysen und Simulationen. Wir unterstützen Prozesse von der Arbeitsvorbereitung, Fertigung bis hin zum Qualitätsmanagement. CAD Aus- und Weiterbildungen als zertifizierter Bildungsträger runden unser Portfolio ab. Wir möchten unser Team erweitern und entwickeln....
Anzeige ansehenKonstruktion, Visualisierung
der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanD 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanD:
danke das hat schon mal weiter geholfen. Das Ergebnis habe ich angehängt. Vielleicht reicht es ja schon für ein Bienchen.

Es summt schon.....

die Feedback Geschichte regelt man allerdings in

  • :start-input-feedback
  • :end-input-feedback

Denn.. 
Code:
(dotimes (i 100) (Test_Eingabe :Mittelpunkt 20,20 :laenge (+ 42 i)))
Du willst nicht, das das jetzt ein gefklacker gibt.

und circle-fback  is not defined

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz