;; for reference see: http://ww3.cad.de/foren/ubb/Forum29/HTML/004652.shtml ;; exracted from SD_PrepareForRendering.lsp (in-package :schiller) (use-package :oli) (defparameter *material-by-partname* '( ("*Abdeckkappe*" "NAM_KUNSTSTOFF-01_" ) ;;schwarz ("*Steckverschraubung*" "NAM_KUNSTSTOFF-01_") ("*Klemmhebel*" "NAM_KUNSTSTOFF-01_") ("*Drossel-Rueckschlagventil*" "NAM_KUNSTSTOFF-01_") ("*Naeherungsschalter_SME*" "NAM_KUNSTSTOFF-01_") ("*Stecker_gerade*" "NAM_KUNSTSTOFF-01_") ("*Leuchtmelder*" "NAM_KUNSTSTOFF-01_") ("*Schutzkragen*" "NAM_GELB-01_") ("*Kompakt_Tastatur*" "NAM_KUNSTSTOFF-02_") ;;beige ("*Funkmaus*" "NAM_KUNSTSTOFF-02_") ("*Notausschalter*" "NAM_ROT-01_") ("*Zurrlasche*10124982*" "NAM_ROT-01_") ("*Steckdose*" "NAM_GELB-01_") ("*Piktogramm*" "NAM_GELB-01_") ("*Monitor*" "NAM_KUNSTSTOFF-01_") ("*MODLINK*" "NAM_KUNSTSTOFF-01_") ("*MANIFOLD_SOLID_BREP_19094*" "NAM_KUNSTSTOFF-01_") ("*Schnorr*" "NAM_ST-01_") ("*Dauerlichtelement*gelb*" "NAM_LEUCHTE-GELB_") ("*Dauerlichtelement*rot*" "NAM_LEUCHTE-ROT_") ("*Dauerlichtelement*gruen*" "NAM_LEUCHTE-GRUEN_") ("*10012430*" "NAM_KUNSTSTOFF-01_") ("*10012437*" "NAM_KUNSTSTOFF-01_") ("*10012432*" "NAM_KUNSTSTOFF-01_") ("*Schiller_Logo*" "NAM_SCHILLER-BLAU_") ("*LETTER*" "NAM_SCHILLER-BLAU_") ("*Flachmagnet_M5*" "NAM_ST-01_") ("*Schluesselschalter*" "NAM_ST-01_") ("*Fuehrungswagen*" "NAM_ST-01_") ("*Strebenprofil*" "NAM_AL-01_") ("*K_Fuehrungsschiene*" "NAM_Polished-01_") ("*K_Lumilux_Combi*" "NAM_KUNSTSTOFF-03_") ("*Filterluefter*10103452*" "NAM_KUNSTSTOFF-02_") ("*Rueckschlagventil_VBNF*" "NAM_KUNSTSTOFF-02_") ("*10089193*" "NAM_KUNSTSTOFF-04_") ("*lichtschranke*" "NAM_SENSOR_") ("*P_MOTOR*" "NAM_ZincPlated_" ) ("*" "NONE") ;; last fallback )) (defun get-Material-by-PartNamePattern (Teil) (let ((Teilename (sd-inq-obj-basename Teil))) (dolist (a-mat-PNP *material-by-partname*) (when (sd-string-match-pattern-p (car a-mat-PNP) Teilename) (return (cadr a-mat-PNP))) ) "NONE" ;; absolute fallback fallback :-D );;let );;AssignMaterialToPartName ;; und dann irgendwo im code: ;; statt (AssignMaterialToPartName Teil) (setq Prefix (get-Material-by-PartNamePattern Teil)) ;(setq Prefix (or (get-Material-by-PartNamePattern Teil) ; (get-Material-by-SurfaceName Oberflache) ; (get-Material-by-DingsBums ebendas)))