;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; for CoCreate SolidDesigner ;; Description: ;; reduce object list ;; ;; Reference : https://ww3.cad.de/foren/ubb/Forum92/HTML/001036.shtml ;; Docu : https://support.ptc.com/help/creo_elements_direct/... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Filename : cadde-92-001036_Teile_verwalten.06.lsp ;; Version : 1.0 initial-version by der_Wolfgang ;; Created : Fri Sep 13 14:11:14 CEST 2024 ;; Modified : Wed Sep 25 11:52:48 CEST 2024 ;; Author : der_Wolfgang@forum@cad.de ;; Download : cad.de ;; SD-Version : developed with PE80 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; sub problem to get well selected selitem out of a list of obj pathes ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-package :cadde-wt) (use-package :oli) (sd-show-console-window) ;; if Modeling is not started with -v parameter ;; ----------- test code mit globalen variablen . NOT FOR PRODUCTION (setq teile-namen-liste (list "/Lego_Capri/Farbe/Vierer_Flach_glatt" "/Lego_Capri/Farbe/Zweier_Flach_glatt" "/" ; test data "/Mumpitz" ; test data "/A1" ; workplane "/emptyAssembly" ; test data )) ;; ----------- der LISP Novize: (setq meine-teile nil) (dolist (a-path teile-namen-liste) (setf a-obj (sd-pathname-to-obj a-path)) (if a-obj (when (sd-inq-part-p a-obj) (setf meine-teile (append meine-teile (list a-obj))) ) ) ) (pprint "Meine TeileListe 01:") (dolist (a-part meine-teile) (pprint (sd-inq-obj-pathname a-part)) ) ;; ----------- der Fortgeschrittene: (setq meine-teile nil) (dolist (a-path teile-namen-liste) (when (and (setq a-obj (sd-pathname-to-obj a-path)) (sd-inq-part-p a-obj) ) (push a-obj meine-teile) ) ) (pprint "Meine TeileListe 02:") (dolist (a-part meine-teile) (pprint (format nil "* ~S" (sd-inq-obj-pathname a-part))) ) ;; ----------- der weit Fortgeschrittene: ;; (setq meine-teile (delete-if-not 'sd-inq-part-p (delete nil (mapcar 'sd-pathname-to-obj teile-namen-liste)))) ;; (sd-inq-part-p nil) -> rumst! :-( (delete-if-not 'sd-inq-part-p ..) aufgebohrt mit lambda (setq meine-teile (delete-if-not '(lambda(si)(and(sel_item-p si)(sd-inq-part-p si))) (mapcar 'sd-pathname-to-obj teile-namen-liste))) (format T "~&Meine TeileListe 03:~%~{* ~S~%~}" (mapcar 'sd-inq-obj-pathname meine-teile)) ;; ----------- das Ende