Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Dialog abrechen

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
  
Extended Maintenance & Support I Abkündigung der Abas ERP Version ERP 20, eine Pressemitteilung
Autor Thema:  Dialog abrechen (743 mal gelesen)
StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 786
Registriert: 11.10.2000

exone - Win10
i9-12900K 3187MHz
32GB Ram
nVidia RTX A5000
creo elements/direct V20.5.1.0
SolidPower V20.4
ModelSearch
KeyShot 11
CADdoktor SX
PHOENIX V11

erstellt am: 07. Nov. 2007 14:41    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


Sd_MoveToOrigin.lsp.txt

 
Hallo!

Ich habe so meine Probleme mit einem Progrämmchen! Wenn ich während der Ausführung auf CANCEL klicke, dann bricht der Dialog nicht wie erwartet ab, sondern es erscheint die Fehlermeldung: Zeichenfolge entspricht nicht dem Objekt der gewünschten Art.

Zitat:
Aus der Dokumentation "Dialog Programming for CoCreate OneSpace Modeling"
The activation of the CANCEL button will trigger the evaluation of :cancel-action and cause the dialog to be removed from the screen and to loose all current variable bindings, irregardless whether :cancel-action was successfully and completely executed or not.

Keine Ahnung was hier falsch läuft! Auch habe ich versucht den Dialog nach Prüfung der Variable Objekt

Code:
(if (sd-inq-obj-contents-read-only-p Objekt) 
          (display "Objekt muss reserviert werden")
          (sd-abort-dialog)
          );;if

zu beenden. Aber das will auch nicht tun 

Irgendwas scheint hier Grundsätzlich falsch zu laufen! Wenn ich das ganze durch drücken von ESC beende und neu starte dann bringt er mir nach wählen der Variable OBJEKT (:value-type :Part-assembly) die Meldung:  Zeichenfolge entspricht nicht dem Objekt der gewünschten Art.

Vielleicht hat ja jemand die Lust und die Zeit (bitte bitte) mal über den Code rüber zu gucken!

Gruß

Stephan

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

clausb
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 2914
Registriert: 20.12.2000

Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.

erstellt am: 07. Nov. 2007 15:46    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 StephanWörz 10 Unities + Antwort hilfreich

Erste Massnahme: Herausfinden, in welcher Funktion der Fehler auftritt. Hast Du schon überprüft, ob Deine Funktion DeleteObsoleteObject gerufen wird?

------------------
CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 07. Nov. 2007 16:00    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 StephanWörz 10 Unities + Antwort hilfreich

Das Ganze kommt mir überhaupt etwas umständlich vor. Diese Hilfsteile brauchst du gar nicht, ich hab auch mal so was Ähnliches programmiert aber mit Positionieren "Punkt-Richtung-Punkt":
Code:

(defun dc4-teil-ausrichten-auf-ursprung (teil refpt front updir)
(let (vpt upt orig xricht zricht)
  (setf upt (sd-vec-add refpt (first updir)))
  (setf vpt (first front))
  (setf orig (make-gpnt3d :x 0 :y 0 :z 0))
  (setf xricht (make-gpnt3d :x 1 :y 0 :z 0))
  (setf zricht (make-gpnt3d :x 0 :y 0 :z 1))
  (sd-call-cmds (position_pa (sd-inq-obj-pathname teil) :match_pt_dir_pt refpt orig vpt xricht upt zricht))
);;let
)


Die Abfrage des Schreibschutzes kannst du dir überhaupt sparen, wenn du
Code:
:modifies :contents
verwendest.
Wenn du stattdessen unbedingt eine Fehlermeldung ausgeben willst, dann mit
Code:

          :check-function
          #'(lambda (Objekt)
              (if (sd-inq-obj-contents-read-only-p Objekt)
                (values :error "Objekt muss reserviert werden")
                :OK
                );;if
            );;lambda

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 786
Registriert: 11.10.2000

exone - Win10
i9-12900K 3187MHz
32GB Ram
nVidia RTX A5000
creo elements/direct V20.5.1.0
SolidPower V20.4
ModelSearch
KeyShot 11
CADdoktor SX
PHOENIX V11

erstellt am: 08. Nov. 2007 09: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


Sd_MoveToOrigin.lsp.txt

 
Guten morgen,

nun bin ich ein gutes Stück weitergekommen!  ... mal ein bisschen ausführlicher für diejenigen die auch noch was  lernen wollen.

Zitat:
Erste Massnahme: Herausfinden, in welcher Funktion der Fehler auftritt.

... in der :Cleanup-action wurde versucht Objekte zu löschen die zum Zeitpunkt des Programmabruchs noch gar nicht existiert haben!

Zitat:
Die Abfrage des Schreibschutzes kannst du dir überhaupt sparen, wenn du

Code:
--------------------------------------------------------------------------------
:modifies :contents
--------------------------------------------------------------------------------

verwendest.

... so eingach kann das sein.

Zitat:
Original erstellt von Walter Geppert:
Das Ganze kommt mir überhaupt etwas umständlich vor. Diese Hilfsteile brauchst du gar nicht, ich hab auch mal so was Ähnliches programmiert aber mit Positionieren "Punkt-Richtung-Punkt":

... ist so viel einfacher/eleganter! Habe ich mal so übernommen. Danke!

Gruß

Stephan

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 08. Nov. 2007 09:37    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 StephanWörz 10 Unities + Antwort hilfreich

Noch ein paar Anregungen dazu:
Du solltest noch absichern, dass die beiden Richtungen nicht zusammenfallen. Wie so was ausschauen könnte mit entsprechenden :after-input Aufrufen und angepassten Variablennamen:
Code:

    (front-action ()
    (when (and front updir)
      (when (< (sd-vec-length
              (sd-vec-cross-product
              (sd-vec-add (first updir) (second updir))
              (sd-vec-add (first front) (second front))))
            0.000001)
      (progn
        (setf front nil)
        (sd-display-error "Diese Richtung ist gleich oder entgegengesetzt zur Richtung oben!")
      );;progn
      );;when
    );;when
    )
    (updir-action ()
    (when (and front updir)
      (when (< (sd-vec-length
              (sd-vec-cross-product
              (sd-vec-add (first updir) (second updir))
              (sd-vec-add (first front) (second front))))
            0.000001)
      (progn
        (setf updir nil)
        (sd-display-error "Diese Richtung ist gleich oder entgegengesetzt zur Richtung vorne!")
      );;progn
      );;when
    );;when
    )

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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