;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Filename: cadde-29-004994.lsp ;; Project: privat ;; Description: demonstrate sd-call-cmds + :success and :failure form ;; let's call on command line (call-my-risky-function) ;; Version: 90.0x ;; ;; Customer: --cadde-- ;; Author: der_Wolfgang@forum@cad.de ;; Created: Fri Nov 14 16:21:53 CET 2025 ;; Modified: Fri Nov 14 16:57:42 CET 202 der_Wolfgang@forum@cad.de ;; SD-Version: developed with PE90, ;; should work in older versions as well as in big Modeling ;; reference: https://ww3.cad.de/foren/ubb/Forum29/HTML/004994.shtml ;; ;; docu https://support.ptc.com/help/creo_elements_direct/r20.8.0.0/advanced_documentation/integration_kit/reference/sd-call-cmds.html#sd-call-cmds ;; docu https://support.ptc.com/help/creo_elements_direct/r20.8.0.0/advanced_documentation/integration_kit/reference/inq_gen.html#sd-inq-error-obj ;; ;; Language: Lisp ;; Package: :cadde ;; ;; (C) Copyright 2025 der_Wolfgang@forum@cad.de, all rights reserved. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-package :MiBr-is-learning) (use-package :oli) (sd-defdialog 'call-my-risky-function :dialog-control :sequential :toolbox-button :force ; for testing ;variables none :ok-action '(let ((call-result :undefined) function-result ) (sd-show-console-window) (format T "~&========================================================~%") (sd-call-cmds (setq function-result (my-risky-function :test-it)) :success (progn ;; Achtung! mal ohne quote hier! (pprint "my-risky-function call: alles roger") (setq call-result :everything-ok) ) :failure (progn ;; Achtung! mal ohne quote hier! (pprint "my-risky-function call: Husten ist ein Problem") (format T "~&~{~%* [[~S]]~%~%~}" (sd-inq-error-obj :all)) (setq call-result :housten-there-is-a-problem) :bad ) ) (format T "~&========================================================~%") (pprint (list :call-result call-result)) (pprint (list :function-result function-result)) (format T "~&========================================================~%") ) ;; end ok-action ) ;;end dialog (defun my-risky-function (one-parameter) (let ((check-now)) (if this-varaible-is-mad ;; the risky part simulation (setq check-now :mad) (setq check-now :fine) ) check-now ) ) ;(trace call-my-risky-function my-risky-function) ;; wer mehr wissen mag..