Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Benutzerabfrage einbauen, ...

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: Rezepte für besseres Konstruieren - Mit Creo Simulation Live optimierter Lenkhebel
Autor Thema:  Benutzerabfrage einbauen, ... (367 mal gelesen)
Seele
Mitglied
Konstrukteur


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

Beiträge: 318
Registriert: 11.06.2003

Intel Xeon CPU E5-1650 v3@3,50 GHz, 32GB RAM
NVidia Quadro K4200
Win10-64Bit
Elements/Direct v20.4.0.0
PartLibrary, Surfacing, 3D-PDF,
3D-Access, Unigraphics-Schnittstelle

erstellt am: 15. Jun. 2021 12:58    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 habe mal wieder eine Frage, ob es überhaupt geht.

In einem Lisp von mir wird eine Verarbeitung gemacht und anschließend auf Kollision geprüft.
Bei Kollision geb ich eine Warnmeldung aus und beende das Makro und ohne Kollision wird der Rest noch bearbeitet.

Jetzt ist die Frage aufgetaucht, ob man hier eine Abfrage setzen kann, ob ich trotzdem fortsetzen möchte oder nicht.
Hierzu bräuchte ich ja jetzt ein Fenster mit der Angabe Weitermachen ja/nein und die Möglichkeit hier eine Rückmeldung auszuwerten um dann korrekt weiter zu machen.

Gibt es in SolidDesigner LISP so ein Abfrage Fenster oder wie habt ihr das gelöst?

Gruß Wolfgang 

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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: 439
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: 15. Jun. 2021 13:17    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 Seele 10 Unities + Antwort hilfreich

Hallo,

wenn ich dich Richtig verstanden habe suchst Du nach soetwas:

Code:
(setf check_input (sd-display-warning (format nil "Kollision erkannt!~%~%Weiter?")
:title "Hinweis" :push-1 "Ja" :push-2 "Nein" :severity :low))
(if (eql check_input :yes) .....)

Gruß Michael

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

Seele
Mitglied
Konstrukteur


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

Beiträge: 318
Registriert: 11.06.2003

Intel Xeon CPU E5-1650 v3@3,50 GHz, 32GB RAM
NVidia Quadro K4200
Win10-64Bit
Elements/Direct v20.4.0.0
PartLibrary, Surfacing, 3D-PDF,
3D-Access, Unigraphics-Schnittstelle

erstellt am: 15. Jun. 2021 13:28    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

Herzlichen Dank Michael, ...

Genau das hatte ich gesucht, ...

Funktioniert tadellos

Gruß Wolfgang 

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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

der_Wolfgang
Ehrenmitglied
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: 1781
Registriert: 3.20.

● PEnix@home
● W10 Pro Build16299
● Drafting V17~V20.4.0
● Modeling V17~V20.4.0a
● @Scirotec201804

erstellt am: 15. Jun. 2021 23:29    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 Seele 10 Unities + Antwort hilfreich

Njjjjnnjaaaaa. 

Also ich vermeide sd-display-warning, sd-display-question, sd-display-message wie der Teufel das Badewasser. "Recorderfähigkeit" ist ein hohes Gut!

Alle 3 Routinen sind sogeanntes "==>> modales Userinterface" ..  Also UI popt hoch und eine Userinteraction wird erzwungen. Das kann dazu führen das automatisierte Dinge übers lange Wochenende einfach nicht durchlaufen und kann nen Haufen Ärger bedeuten.

Modales Window: Der Anwender WIRD gezwungen interaktive mit dem Programm zu agieren.

Wenn Du deinen eigene Funktion nämmlich von woanders aufrufst und du läufst auf eine von 3 drei Routinen dann steht die CHOOSE ..  nur wegen eines sau blöden Mausklicks.

Innerhalb eines Dialoges kann man sowas häufig durch geschickte Verwendung von :check-function, :confirmation und :next-variable umgehen.

Ich würde es zumindest wie folgt gestalten:

Code:
(when situation-xy-is-there
  (if (sd-call-action-active-p)
    (progn
      (pprint "Situation XY eingetreten. Standardmäßig geht es mit 'nein' weiter") ; für den log file
      (sd-display-alert "situation XY eingetreten. Standardmäßig geht es mit 'nein' weiter" :icon :warning)
      )
    ;; else
    (let ((the-answer (sd-display-question "Situation XY eingetreten. Weiter machen?")))
      (if (equal the-anser :yes)
        (progn
          (pprint "al la hop!!")
          (pprint "Situation XY eingetreten. Wir machen mit 'ja' weiter") ; für den log file
          )
        ;; else
        (progn
          (pprint "nix geht mehr!!")
          (pprint "Situation XY eingetreten. Wir machen mit 'nein' weiter") ; für den log file
          )
        ))
    )
  )
Heisst: wenn jemand Deine Routine per sd-call-cmds ruft, läuft die choose ungehindert weiter. Im interactiven mode kommt jenes UI in den Vordergrund.

https://support.ptc.com/help/creo_elements_direct/r20.4.0.0/advanced_documentation/integration_kit/reference/sd-call-cmds.html#sd-call-action-active-p

@Matthias ..  später nachmittag 

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

Seele
Mitglied
Konstrukteur


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

Beiträge: 318
Registriert: 11.06.2003

Intel Xeon CPU E5-1650 v3@3,50 GHz, 32GB RAM
NVidia Quadro K4200
Win10-64Bit
Elements/Direct v20.4.0.0
PartLibrary, Surfacing, 3D-PDF,
3D-Access, Unigraphics-Schnittstelle

erstellt am: 22. Jun. 2021 06:45    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 Wolfgang,

danke für den berechtigten Hinweis. Ich baue auch ungerne Abfragen für den Beutzer ein, in diesem Fall geht´s aber definitiv nicht anders, weil der Benutzer gefragt werden muss. Ursprünglich hatte ich schon ermittelt ob ein Fehler in der Kontur ist und wenn ja, dann sollte das LISP Makro mit einer Meldung abbrechen. Die Benutzer aber wollten unbedingt die Möglichkeit drin haben, es auch trotz dem Fehler ablaufen lassen zu können. Tja so kommt man um so eine Abfrage nicht herum, weil es Konstruktiv keine weiteren Kriterien für den Unterschied gibt, war dies die erste Abfrage, die ich so eingebracht habe, konnte es bis letzte Woche vermeiden, .... :-)

Trotzdem Danke für die Antwort, habe sie mir angesehen und das findet bestimmt in einem der nächsten Makros Verwendung, denn eigentlich hast Du vollkommen Recht, das es automatisch durchlaufen sollte.

Gruß Wolfgang   

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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

der_Wolfgang
Ehrenmitglied
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: 1781
Registriert: 3.20.

● PEnix@home
● W10 Pro Build16299
● Drafting V17~V20.4.0
● Modeling V17~V20.4.0a
● @Scirotec201804

erstellt am: 22. Jun. 2021 19:23    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 Seele 10 Unities + Antwort hilfreich

gerne.. 

'Fehler in der Kontour'

Manchmal lässt es sich schier nicht vermeiden das man in einer :check-function 5/7 des :after-input ausführt um zu gucken ob es gehen täte. Das ist dann (bei Deiner Beschreibung) der Fall das die :check-function eine :confirmation auslöst "Problem No42 entdeckt: Trotzdem weiter?"

Idealerweist nutzt man in solchen Fällen dann in der :check-function und dem :after-input die selben  / fast selben :local-functions und vermeidet so code-duplizierung, auch um es pflegeleicher zu machen.

Wenn man so eine 'Fraach-ma-den-User' Stelle innerhalb eines 'weit entfernten' Defuns hat..  werden die Alternativen aber etwas dünne.

------------------
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)2021 CAD.de | Impressum | Datenschutz