(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) ) (aufloesen (bg) ; definition der ersten Funktion (setq schwesterteileliste (sd-inq-obj-children (sd-inq-parent-obj bg)));;Liste der Teile der Kinder der Vaterbaugruppe ;; (display (sd-inq-obj-basename (first schwesterteileliste))) ;; (display (sd-inq-obj-basename (second schwesterteileliste))) ;; (display (sd-inq-obj-basename (third schwesterteileliste))) (setq schwesterteilenamen nil) ;;Leere Liste erstellen (dolist (schwesterteil schwesterteileliste) ; eine Liste aller Namen der Schwesterteile erstellen (setq schwesterteilenamen (cons (sd-inq-obj-basename schwesterteil) schwesterteilenamen)) );end list ;; (display (first schwesterteilenamen)) ;; (display (second schwesterteilenamen)) ;; (display (third schwesterteilenamen)) ;; (PA_UNSHARE :source bg :onelevel :on) (setq prefix (first (sd-string-split name))) (setq postfix 0) (make-newname (prefix postfix) (setf newname (format nil "~A.~A" prefix postfix)) (dolist (elem (sd-inq-obj-children bg)) (dolist (name schwesterteilenamen) (when (generalstring= name (sd-inq-obj-basename elem)) ;;Vor v15 muss man statt string= noch generalstring= schreiben ;; handle conflict (let* ((postfix 1) (prefix (first (sd-string-split name))) (newname (make-newname prefix postfix))) (loop while (member newname schwesterteilenamen :Test #'generalstring=) do ;;Vor v15 muss man statt string= noch generalstring= schreiben (incf postfix) (setf newname (make-newname prefix postfix)) ); end loop ); end let ); end when ); end list ); end list (display newname) ); end defun ;; (dolist (elem (sd-inq-obj-children bg)) ;; ;; (display (sd-inq-obj-pathname (sd-inq-parent-obj bg))) ;; ;; (display (sd-inq-obj-pathname elem)) ;; ;; (display (sd-inq-obj-basename elem)) ;; ;; (setq postfix 1) ;; ;; (dolist (name schwesterteilenamen) ;; (if (equal name (sd-inq-obj-basename elem)) ;; (progn ;; (Display "Namenskonflikt!") ;; (setq kernname (first(sd-string-split name "."))) ;; (display kernname) ;; (display (setq newname (format nil "~a~a~a" kernname "." postfix))) ;; ;;(if (equal newname ) ;; ); end progn ;; ;; );end if ;; );end list ;; (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 )