(in-package :CHER) (use-package :oli) ; ü=Ï ; ä=Ì ; ö=?? ; Ü=Û ; Ä=Ø ; Ö=Ú ; Ø=Ò; µ=ó ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (sd-defdialog 'BG_aufloesen :dialog-title "BG aufloesen" :variables '( (bg :selection (*sd-object-seltype*) ;legt den Typ des Eingabefeldes fest :title "Baugruppe" ;Titel des Eingabefeldbuttons :prompt-text "Bitte die aufzuloesende Baugruppe angeben" ;Text in der Aufforderungsleiste ); end Eingabefeld (next :push-action (naechste) :title "NÌchste" ) ) :local-functions ; definition der lokalen Funktionen '( (naechste() (aufloesen bg) ) (make-newname (prefix postfix) (format nil "~A.~A" prefix postfix)) (aufloesen (bg) ; definition der ersten Funktion (let* ((geschwister (oli:sd-inq-obj-children (sd-inq-parent-obj bg))) (geschwisternamen (mapcar #'sd-inq-obj-basename geschwister))) ;; (PA_UNSHARE :source bg :onelevel :on) (dolist (elem (sd-inq-obj-children bg)) (let ((elem-name (sd-inq-obj-basename elem))) (when (member elem-name geschwisternamen :test #'sd-string=) (setf elem-name (sd-gen-obj-basename :part :parent (sd-inq-parent-obj bg) :prefix (format nil "~A." elem-name)))) (display elem-name))) ;; (CHANGE_PA_OWNER ;; :new_owner ;; (sd-inq-obj-pathname (sd-inq-parent-obj bg)) ;; :parts_assemblies ;; (sd-inq-obj-pathname elem) ;; ) ;; );end dolist ;; (DELETE_3D bg) ) ) ;end der Funktion ) ; end der lokalen Funktionsdeklaration :ok-action '(aufloesen bg) ; definition der Aktion bei klick auf OK ) (defun build-testcase1() (delete_3d :all_at_top) (create_assembly :name "a1" :owner "/") (create_assembly :name "a2" :owner "/a1") (create_part :owner "/a1" :name "p1") (create_part :owner "/a1/a2" :name "p1") (create_part :owner "/a1/a2" :name "p42"))