Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Probleme mit Dialog-Variable

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
  
HPE ProLiant Summer Academy 2025 in Linz, eine Veranstaltung am 11.09.2025
Autor Thema:  Probleme mit Dialog-Variable (1064 mal gelesen)
rmcc1980
Mitglied
Ingenieur


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

Beiträge: 358
Registriert: 06.06.2003

Drafting 18.1
Modeling 18.1
MM
Win7 64

erstellt am: 26. Jul. 2005 10: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


x.lsp.txt

 
Hallo,
in einem Dialog möchte ich einen Teilenamen einlesen. Dabei soll es egal sein, woher die Eingabe kommt. Man kann ein Teil in der Strukturliste oder im Modell anklicken oder direkt den Namen eingeben. Dabei möchte ich auf 'persistent-data-storage t' auf keinen Fall verzichten. Mit ':value-type :string' geht das im Prinzip, aber wenn ich ein Teil im Modell anklicke gibt es eine Fehlermeldung (da kommt wohl kein String sondern ein Teil). Nehme ich stattdessen ' :part' kann ich persistent-data-storage nicht benutzen. Wie kriege ich beides hin?

Schöne Grüße
Bernd

[Diese Nachricht wurde von rmcc1980 am 26. Jul. 2005 editiert.]

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

Dorothea
Mitglied



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

Beiträge: 242
Registriert: 22.11.2001

erstellt am: 26. Jul. 2005 11:31    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 rmcc1980 10 Unities + Antwort hilfreich

Hallo,

Prinzipiell ist es keine gute Idee, fuer alle Arten von Variablen, die Objekte im Designer referenzieren, das persistent-data-storage zu verwenden. Wie es auch in der Doku steht:

The following kinds of variables should not use persistent data storage:
    * selection variables (because they contain sel_items)

Der Grund dafuer ist einfach: fuer Zahlen und Boolean u.s.w. sind die gespeicherten Werte unabhaengig vom aktuellen Modellzustand. Fuer alle Arten von Selektion nicht.

Du koenntest dir vielleicht selber was basteln. Das Teil wird weiterhin mit :value-type  art spezifiziert. Damit erhaeltst du die Moeglichkeiten der Auswahl ueber Browser oder Pick. Dann baust du dir eine zusaetzliche Hilfs-Variable vom :value-type :string (moeglicherweise hidden). In :after-input von der Teil-Variable setzt du den Wert der Hilfsvariable auf (sd-inq-obj-pathname <Teil-Variable> ). Wenn der Dialog dann neu gestartet wird, dann gibt es den PDS-Wert fuer die Hilfsvariable. Diesen Wert kannst du dann auswerten und checken, ob wirklich ein Teil mit dem String referenziert wird (sd-pathname-to-obj). Wenn da ein sel_item zurueck kommt, dann setze den Wert der Teil-Variablen.

Hoffe das hilft!
Gruss Dorothea

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

rmcc1980
Mitglied
Ingenieur


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

Beiträge: 358
Registriert: 06.06.2003

Drafting 18.1
Modeling 18.1
MM
Win7 64

erstellt am: 26. Jul. 2005 12:24    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


x.lsp.txt

 
Zitat:
Original erstellt von Dorothea:
... Prinzipiell ist es keine gute Idee, fuer alle Arten von Variablen, die Objekte im Designer referenzieren, das persistent-data-storage zu verwenden...

Hallo,
das ist verständlich, aber ich will ja an dieser Stelle nicht das Teil, sondern nur den Namen des Teils. Mittlerweile helfe ich mir so, dass ich eine weitere Dialog-Variable 'von_teil' verwende wenn ich ein Teil im Modell anklicken will und den gefundenen Namen der Stringvariablen zuweise.

Jetzt ist aber ein anderes Problem aufgetaucht.
In einer weiteren Variable lese ich mit 'value-type :part-assembly' einen Baugruppennamen ein. Wenn ich den Dialog erneut aufrufe, enthält diese Variable plötzlich den Namen (mit Pfad) des neu erzeugten Teils. Wie kommt denn das? Kriegt man das weg?

Schöne Grüße
Bernd

p.s.
Mit 'value-type :assembly' passiert das nicht, aber bei mehrstufigen Strukturen kommt dann ein Hilfsdialog, der unter HPUX etwas merkwürdig läuft.

Mein Ziel ist eigentlich ein Dialog in dem es egal ist, was der User anklickt und das System das passende raussucht und nicht mit Fehlermeldungen nervt.

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

RainerH
Mitglied
Techn. Ang. (Konstruktion)


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

Beiträge: 736
Registriert: 22.01.2003

OSDM 14.00A
OSDD 14.50
MM 14.00A
Windows-XP Pro x64 Edition
--------------------------
HP xw6400
Intel Xeon 3.00 GHz
4.00 GB RAM
ATI FireGL V7200

erstellt am: 26. Jul. 2005 13:35    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 rmcc1980 10 Unities + Antwort hilfreich

@Bernd

Hast du dir den Ablauf vielleicht so vorgestellt:

;;--------------------------------------------------------------------------*
;;  Dateiname: he_create_part.lsp
;;  Version  : 1.0
;;  Datum    :
;;  Author  : B. Alef; Hennecke GmbH
;;--------------------------------------------------------------------------*


(in-package :custom)
(use-package  :oLI)

;;--------------------------------------------------------------------------*
;;    dialogs                                                              *
;;--------------------------------------------------------------------------*


(sd-defdialog 'he_create_part
:dialog-title "Neues Teil erstellen"
:variables
  '(
    (n_part :value-type :string
      :prompt-text "Namen des neuen Teils eingeben"
      :size :third
      :title "Name"
      ;; :persistent-data-storage t
      :proposals '()
      :initial-value nil
      :auto-add-proposal t
      :after-input
      (progn
        (when (sd-string-match-pattern-p "/*" n_part)
          (progn
            ;;ggf. Pfad entfernen
            (setf bgr (sd-inq-parent-obj (sd-pathname-to-obj n_part)))
            (setf n_part (sd-inq-obj-basename(sd-pathname-to-obj n_part)))
          )
        )
      );;endprogn
    )
    (bgr 
      :value-type :assembly
      :size :third
      :initial-value (sd-inq-parent-obj (sd-inq-curr-part))
    )
  )
  :ok-action
  '(sd-call-cmds
    (after-ok-action)
    :failure (sd-display-error (format nil "~a ~%=> Bei der Erstellung des neuen Teiles." (sd-inq-error-obj :message)))
  )
  :cancel-action
  '(sd-call-cmds
    (progn
      "cancel"
    )
  )
  :local-functions
  '(
    (after-ok-action ()
      (let ()
        (progn
          (create_part  :owner bgr :name n_part) ;;ohne Zaehler
        );;endprogn
      );;let
  )
  )
)
;;--------------------------------------------------------------------------*

HTHHope this helps (Hoffe, es hilft weiter)

(nicht zu 100% getestet)

Gruss
RainerH.

[Diese Nachricht wurde von RainerH am 26. Jul. 2005 editiert.]

[Diese Nachricht wurde von RainerH am 26. Jul. 2005 editiert.]

[Diese Nachricht wurde von RainerH am 26. Jul. 2005 editiert.]

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

der_Wolfgang
Moderator
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: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● 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: 26. Jul. 2005 20:12    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 rmcc1980 10 Unities + Antwort hilfreich

Hallo Bernd,

hast Du es schon mal mit :secondary-value-type probiert.

siehe:
.../help/osdm/Common/documentation/integration_kit/reference/dg_manual.html#secondary-vt

Also:

Code:

(my_part
  :value-type  art
  :secondary-value-type :string
  ....
)


im after-input und so muss man dann selber erstmal gucken was man 'bekommen' hat .. (if (sd-string-p my_part) ...

Wie das nun zusammen mit  ersistant-*-data harmoniert kann ich auch nicht sagen. Aber das ist vielleicht besser als mit 2 variablen zu hantieren.

Statt  ersistant-*-data kannst du natuerlich auch im :after-input bzw im :initial-value mit SD-S/GET-PERSISTENT-DATA arbeiten. Dann sollte es auch zusammen mit :secondary-value-type funktionieren, denn dann ist es in deiner Hand.

HTHHope this helps (Hoffe, es hilft weiter)  Wolfgang

----------------
an die Moderatoren: das Ausschalten der Smilies funktioniert nicht (mehr), zumindest in der Vorschau eines Beitrags.

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

der_Wolfgang
Moderator
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: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● 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: 26. Jul. 2005 20:24    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 rmcc1980 10 Unities + Antwort hilfreich

der automagische initial-value von
:value-type :part-assembly
bzw.
:value-type :part
ist == current part

siehe vorhandene Dokumentation:
.../help/osdm/Common/documentation/integration_kit/reference/dg_manual.html#selection-of-objects

Dein neu erzeugtes Teil, ist nun mal current nach der Erzeugung: deswegen erscheint es dort.

Mit einem explizitem
:initial-value NIL
bekommt man diese Verhalten auch weg, wenns denn sein muss

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