;Generated With PSOL engine (in-package :psol) (oli::GEOMETRY_MODE :REAL) (oli::act_deact_module :act "STEP" "MODULE-CONTROLLER-Interfaces-STEP-TB" '(STARTUP::ACTIVATE-STEP)) (oli::act_deact_module :act "ACIS_SAT" "MODULE-CONTROLLER-Interfaces-ACIS_SAT-TB" '(STARTUP::ACTIVATE-SD-SAT-ADAPTER)) (oli::act_deact_module :act "IGESDEK" "MODULE-CONTROLLER-Interfaces-IGESDEK-TB" '(STARTUP::ACTIVATE-SD-IGESDEK-ADAPTER)) ;;;;;********** Begin Reset Global Variables ********** (defparameter *ObjectParentName* "/" "/") (defparameter *ObjectPathName* "/" "/") (defparameter *ObjectAsmName* "/" "/") (defparameter *PartExistsValue* 0) (defparameter *PartExistsName* nil) (defparameter *OnOpenValue* 0) (defparameter *OnOpenName* nil) (defparameter *OnSaveValue* 0) ;********** Begin Logging Utilities ********** (defun BeginExportLog() (if (not (boundp '*LogLevel*)) (defparameter *LogLevel* 3) ) (defparameter *ErrorLog* (list "********** Enter OSDM Export **********")) (defparameter *WarningLog* (list "********** Enter OSDM Export **********")) (defparameter *DebugLog* (list "********** Enter OSDM Export **********")) (defparameter *TraceLog* (list "********** Enter OSDM Export **********")) ) (defun EndExportLog() (defparameter *ErrorLog* (append *ErrorLog* (list "********** Leave OSDM Export **********"))) (defparameter *WarningLog* (append *WarningLog* (list "********** Leave OSDM Export **********"))) (defparameter *DebugLog* (append *DebugLog* (list "********** Leave OSDM Export **********"))) (defparameter *TraceLog* (append *TraceLog* (list "********** Leave OSDM Export **********"))) ) (defun DisplayExportLog() (if (and (= *LogLevel* 4) (> (length *ErrorLog*) 2)) (dolist (PSolLogEntry *ErrorLog*) (oli::display PSolLogEntry) ) ) (if (and (= *LogLevel* 3) (> (length *WarningLog*) 2)) (dolist (PSolLogEntry *WarningLog*) (oli::display PSolLogEntry) ) ) (if (and (= *LogLevel* 2) (> (length *DebugLog*) 2)) (dolist (PSolLogEntry *DebugLog*) (oli::display PSolLogEntry) ) ) (if (and (= *LogLevel* 1) (> (length *TraceLog*) 2)) (dolist (PSolLogEntry *TraceLog*) (oli::display PSolLogEntry) ) ) ) (defun PSolLog(level message) (if (> level 0) (defparameter *TraceLog* (append *TraceLog* (list message))) ) (if (> level 1) (defparameter *DebugLog* (append *DebugLog* (list message))) ) (if (> level 2) (defparameter *WarningLog* (append *WarningLog* (list message))) ) (if (> level 3) (defparameter *ErrorLog* (append *ErrorLog* (list message))) ) ) ;;;;;********** Utilities ********** (defun ReplaceAll (string part replacement &key (test #'char=)) (with-output-to-string (out) (loop with part-length = (length part) for old-pos = 0 then (+ pos part-length) for pos = (search part string :start2 old-pos :test test) do (write-string string out :start old-pos :end (or pos (length string))) when pos do (write-string replacement out) while pos) ) ) (defun PartBrowse(selected_part searched_part) (defparameter *PartTestName* (oli::sd-inq-obj-contents-name selected_part)) (if (string= searched_part *PartTestName*) (progn (defparameter *PartExistsValue* 1) (defparameter *PartExistsName* (oli::sd-inq-obj-pathname selected_part)) (return-from PartBrowse t) ) (progn (if (oli::sd-inq-assembly-p selected_part) (progn (dolist (i (oli::sd-inq-obj-children selected_part)) (PartBrowse i searched_part) ) ) ) ) ) ) (defun RootBrowse(searched_part) (dolist (item (oli::sd-inq-obj-children (oli::sd-pathname-to-obj "/"))) (if (or (oli::sd-inq-assembly-p item) (oli::sd-inq-part-p item)) (PartBrowse item searched_part) ) ) ) (defun PartExists (partPathName) (defparameter *PartExistsValue* 0) (defparameter *PartExistsName* nil) (RootBrowse partPathName) ) (defun transform-document (full_name ox1 oy1 oz1 ox2 oy2 oz2 ox3 oy3 oz3 nx1 ny1 nz1 nx2 ny2 nz2 nx3 ny3 nz3) (oli::pos_dynamic :objects-by-selection full_name :dyn-pos-method :off :other-method :PT-PT-PT (oli::make-gpnt3d :x ox1 :y oy1 :z oz1) (oli::make-gpnt3d :x nx1 :y ny1 :z nz1) (oli::make-gpnt3d :x ox2 :y oy2 :z oz2) (oli::make-gpnt3d :x nx2 :y ny2 :z nz2) (oli::make-gpnt3d :x ox3 :y oy3 :z oz3) (oli::make-gpnt3d :x nx3 :y ny3 :z nz3) ) ) (defun TransformPosition(matXVec matYVec matZVec matTVec position) (let ( (x (+ (* (oli::gpnt3d_x matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_x matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_x matZVec) (oli::gpnt3d_z position)) (oli::gpnt3d_x matTVec))) (y (+ (* (oli::gpnt3d_y matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_y matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_y matZVec) (oli::gpnt3d_z position)) (oli::gpnt3d_y matTVec))) (z (+ (* (oli::gpnt3d_z matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_z matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_z matZVec) (oli::gpnt3d_z position)) (oli::gpnt3d_z matTVec))) ) (return-from TransformPosition (oli::make-gpnt3d :x x :y y :z z)) ) ) (defun TransformDirection(matXVec matYVec matZVec matTVec position) (let ( (x (+ (* (oli::gpnt3d_x matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_x matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_x matZVec) (oli::gpnt3d_z position)))) (y (+ (* (oli::gpnt3d_y matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_y matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_y matZVec) (oli::gpnt3d_z position)))) (z (+ (* (oli::gpnt3d_z matXVec) (oli::gpnt3d_x position)) (* (oli::gpnt3d_z matYVec) (oli::gpnt3d_y position)) (* (oli::gpnt3d_z matZVec) (oli::gpnt3d_z position)))) ) (return-from TransformDirection (oli::make-gpnt3d :x x :y y :z z)) ) ) (defun DecodeEmbeddedData(data) (let ( (max (- (length data) 1)) (ret "") ) (do ((i 0 (+ i 1))) ((> i max) (return-from DecodeEmbeddedData ret)) (progn (if (= (char-code (aref data i)) (char-code #\\)) (progn (setf ret (format nil "~A~A" ret (aref data (+ i 1)) )) (setf i (+ i 1)) ) (progn (setf ret (format nil "~A~A" ret (aref data i) )) ) ) ) ) ) ) ;;;;;*********** Load/Store ************ (defun OpenFile(fileName) ;(display (format nil "OpenFile ~A" fileName)) (if (oli::sd-inq-file-status fileName :read-access) (progn (oli::universal_load :file fileName) (oli::display :hide) (return-from OpenFile t) ) ) (return-from OpenFile nil) ) (defun SaveFile(objectName fileName overwriteNeeded) ;(display (format nil "SaveFile ~A ~A ~A" objectName fileName overwriteNeeded)) (if (oli::sd-inq-file-status fileName :existing) (return-from SaveFile nil) ) (let ( (obj (oli::sd-pathname-to-obj objectName))) (if (not (null obj)) (if (= overwriteNeeded 1) (oli::save_package :objects objectName :filename fileName :overwrite) (oli::save_package :objects objectName :filename fileName) ) ) ) (return-from SaveFile t) ) (defun OpenSDPC(sourcePath fileName) ;(display (format nil "OpenSDPC ~A ~A" sourcePath fileName)) (let ((wd (oli::sd-get-current-working-directory))) (oli::cd sourcePath) (if (oli::sd-inq-file-status fileName :read-access) (progn (oli::load_sd fileName) (oli::display :hide) (oli::cd wd) (return-from OpenSDPC t) ) (progn (oli::cd wd) (return-from OpenSDPC nil) ) ) ) ) (defun SaveSDPC(objectName targetPath instanceFileName) ;(display (format nil "SaveSDPC ~A ~A ~A" objectName targetPath instanceFileName)) (let ( (obj (oli::sd-pathname-to-obj objectName)) (wd (oli::sd-get-current-working-directory)) (parentPath nil) (baseName nil) ) (setf baseName (oli::sd-inq-obj-basename obj)) (if (oli::sd-inq-parent-obj obj) (setf parentPath (oli::sd-inq-obj-pathname (oli::sd-inq-parent-obj obj))) (setf parentPath "/") ) (if (not (string= "/" parentPath)) (oli::change_pa_owner :new_owner "/" :parts_assemblies obj) ) (oli::cd targetPath) (oli::save_sd_modified :cwd_changed (concatenate 'string "/" baseName) :display-instances :change_instance_file 0 instanceFileName :undisplay-instances :directory targetPath) (oli::cd wd) (if (not (string= "/" parentPath)) (oli::change_pa_owner :new_owner parentPath :parts_assemblies (oli::sd-pathname-to-obj (concatenate 'string "/" baseName))) ) ) (return-from SaveSDPC t) ) (defun GetAllTopLevelObjects() (return-from GetAllTopLevelObjects (oli::sd-inq-obj-children (oli::sd-pathname-to-obj "/"))) ) (defun LoadSTEPFile(fileName modelName parentPath createLibraryAttributes library_Class) ;(display "Enter LoadStepFile") (let (lastActivePart lastActiveWP topLevelItemsBefore topLevelItemsAfter namesBefore namesAfter i) (setf lastActivePart (oli::sd-inq-curr-part)) (setf lastActiveWP (oli::sd-inq-curr-wp)) ;Store #TopLevelParts and #TopLevelAssemblies before import (setf topLevelItemsBefore (psol::GetAllTopLevelObjects)) (dolist (item topLevelItemsBefore) (setf namesBefore (cons (oli::sd-inq-obj-pathname item) namesBefore)) ) ;Do the import (oli::step_import :filename fileName) ;Store #TopLevelParts and #TopLevelAssemblies after import (setf topLevelItemsAfter (psol::GetAllTopLevelObjects)) (dolist (item topLevelItemsAfter) (setf namesAfter (cons (oli::sd-inq-obj-pathname item) namesAfter)) ) (oli::create_container :name (concatenate 'string modelName "_C") :model_name (concatenate 'string modelName "_C") :owner (oli::sd-pathname-to-obj parentPath)) (setf container (oli::sd-pathname-to-obj (concatenate 'string parentPath "/" modelName "_C"))) (let ((found nil) (counter 1)) (dolist (nameAfter namesAfter) (setf found nil) (dolist (nameBefore namesBefore) (if (string= nameBefore nameAfter) (setf found t) ) ) (if (not found) (progn (dolist (item (oli::sd-inq-obj-children (oli::sd-pathname-to-obj nameAfter))) (oli::change_name_pa :part_asmb item :name (concatenate 'string modelName "_Item" (format nil "~A" counter)) :model_name (concatenate 'string modelName "_I")) (if createLibraryAttributes (setq name-in-library (oli::sd-set-library-attr item library_class (concatenate 'string modelName "_I" (format nil "~A" counter)))) ) (oli::change_pa_owner :new_owner container :parts_assemblies item) (setf counter (+ counter 1)) ) (oli::delete_3d nameAfter) ) ) ) ) (if createLibraryAttributes (setq name-in-library (oli::sd-set-library-attr container library_class (concatenate 'string modelName "_C"))) ) (if (not (null lastActiveWP)) (oli::current_wp lastActiveWP) ) (if (not (null lastActivePart)) (oli::current_part lastActivePart) ) (oli::display :hide) ) ) (defun HasGeometry(obj) (if (oli::sd-inq-part-p obj) (return-from HasGeometry (not (oli::sd-inq-empty-part-p obj))) ) (let ( (children (oli::sd-inq-obj-children obj)) ) (dolist (child children) (if (HasGeometry child) (return-from HasGeometry t) ) ) (return-from HasGeometry nil) ) ) (defun Hilite(model) (oli::add_to_vp_drawlist (oli::sd-inq-current-vp) :no-hilite model) (let ( (children (oli::sd-inq-obj-children model)) ) (dolist (child children) (Hilite child) ) ) ) (defun CreatePSol() (PSolLog 2 (concatenate 'string "Calling Callback " "AppBeforeCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "AppBeforeCreate")) ;;;;;*********** Enter Save Old Actives ********** (defparameter *ActiveWorkplane* (oli::sd-inq-curr-wp)) (defparameter *ActivePart* (oli::sd-inq-curr-part)) ;;;;;*********** Leave Save Old Actives ********** (defun CreateNewAssembly_1001() (PSolLog 1 "Enter CreateNewAssembly_1001") (GenerateObject_1001) (PSolLog 1 "Leave CreateNewAssembly_1001") (return-from CreateNewAssembly_1001 t) ) (defun BuildAssembly_1001() (PSolLog 1 "Enter BuildAssembly_1001") (PSolLog 2 "Assembly Name: AZM_161_B6") (PSolLog 2 "Content Name: AZM_161_B6") (PSolLog 2 "Instance Name: AZM_161_B6") ;;;;;********** Callback Invokation ********** (onopen_1001) (if (= *OnOpenValue* -1) (progn (PSolLog 2 "OnOpen_1001 Failed") (PSolLog 1 "Leave BuildAssembly_1001") (return-from BuildAssembly_1001 nil) ) ) (if (= *OnOpenValue* 1) (progn (PSolLog 2 "Loaded Assembly From Session After OnOpen") (PSolLog 1 "Leave BuildAssembly_1001") (return-from BuildAssembly_1001 t) ) ) (if (not (CreateNewAssembly_1001)) (progn (PSolLog 4 "Assembly Creation Failed") (PSolLog 1 "Leave BuildAssembly_1001") (return-from BuildAssembly_1001 nil) ) (progn (PSolLog 2 "Assembly Creation Succeeded") ) ) ;;;;;********** Callback Invokation ********** (beforesave_1001) ;;;;;********** Callback Invokation ********** (onsave_1001) ;;;;;********** Callback Invokation ********** (aftersave_1001) (PSolLog 1 "Leave BuildAssembly_1001") (return-from BuildAssembly_1001 t) ) (defun onopen_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocOnOpen")) (PSolLog 2 "Enter Callback SessionAssemblyOnOpen") (PSolLog 2 "Content Name: AZM_161_B6") (defparameter *OnOpenValue* 0) (defparameter *OnOpenName* nil) (let ( (fileName "AZM_161_B6") (displayName (oli::sd-gen-obj-basename :part :parent *ObjectParentName* :prefix "AZM_161_B6.")) ) (PartExists "AZM_161_B6") (if (not (= *PartExistsValue* 0)) (progn (PSolLog 2 (concatenate 'string "Found Content At: " *PartExistsName*)) (oli::create_MULTIPLE_PA :share :owner *ObjectParentName* :name displayName :source *PartExistsName*) (let (tVec xVec zVec tx ty tz xx xy xz zx zy zz) (setf tVec (oli::sd-vec-xform 0,0,0 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf xVec (oli::sd-vec-xform 1,0,0 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf zVec (oli::sd-vec-xform 0,0,1 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf tx (oli::gpnt3d_x tVec)) (setf ty (oli::gpnt3d_y tVec)) (setf tz (oli::gpnt3d_z tVec)) (setf xx (oli::gpnt3d_x xVec)) (setf xy (oli::gpnt3d_y xVec)) (setf xz (oli::gpnt3d_z xVec)) (setf zx (oli::gpnt3d_x zVec)) (setf zy (oli::gpnt3d_y zVec)) (setf zz (oli::gpnt3d_z zVec)) (transform-document (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) tx ty tz xx xy xz zx zy zz 0 0 0 1 0 0 0 0 1) ) (defparameter *OnOpenValue* 1) (defparameter *OnOpenName* (concatenate 'string *ObjectParentName* "/" displayName)) (defparameter *ObjectPathName* *OnOpenName*) (PSolLog 2 (concatenate 'string "New Instance Path: " *ObjectPathName*)) ) (progn (PsolLog 2 "Content Not Found In Session") ) ) ) (PSolLog 2 "Leave Callback SessionAssemblyOnOpen") (PSolLog 2 (concatenate 'string "Called Callback " "DocOnOpen")) ) (defun beforecreate_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocBeforeCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "DocBeforeCreate")) ) (defun aftercreate_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocAfterCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "DocAfterCreate")) ) (defun beforesave_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocBeforeSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocBeforeSave")) ) (defun onsave_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocOnSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocOnSave")) ) (defun aftersave_1001() (PSolLog 2 (concatenate 'string "Calling Callback " "DocAfterSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocAfterSave")) ) (defun GenerateObject_1001() ;;;;;********** Enter CreateAssembly ********** (defparameter *ObjectAsmName* "AZM_161_B6") (if (string= *ObjectParentName* "/") (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* *ObjectAsmName*)) (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* "/" *ObjectAsmName*)) ) (progn (oli::create_assembly :owner *ObjectParentName* :name *ObjectAsmName*) ;;;;;********** Change Assembly Name ********** (defparameter *ObjectAsmName* "AZM_161_B6") (defparameter *ObjectAsmModelName* "AZM_161_B6") (oli::change_name_pa :part_asmb *ObjectPathName* :name *ObjectAsmModelName* :model_name *ObjectAsmName*) (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* "/" *ObjectAsmModelName*)) ;;;;;********** Callback Invokation ********** (beforecreate_1001) ;;;;;********** Create MIdent Attribute ********** (oli::sd-attach-item-attribute (oli::sd-pathname-to-obj *ObjectPathName*) "PARTsolutions-attribute" :attachment :contents :on-copy :copy :on-xform :maintain :values '("mident" "{$CADENAS_DATA/23d-libs/schmersal/2/azm161/betatiger/betaetiger.prj}%2C186%20{VTYP=3D}%2C{STYP=ASSTAB}%2C{NB=AZM%20161-B6}%2C{LINA=AZM%20161-B6}%2C{NN=AZM161%20Betaetiger}%2C{DATE=26.05.2023%2007:23:16}%2C{GEOMDATE=23.05.2023%2011:26:29}%2C{VERSION=}%2C{LINEID=100}%2C{WBVAR=}%2C{WBNUMERIC=}%20%20{NB=AZM%20161-B6}%2C{LINA=AZM%20161-B6}%2C{KT=DUMMY}%2C{HS=K.A.%20Schmersal%20GmbH%20&%20Co.%20KG}%2C{TYPE=AZM%20161-B6}%2C{BESTNR=101144420}%2C{KURZBESCH=Beweglicher%20Bet%E4tiger%20f%FCr%20kleine%20Bet%E4tigungsradien}%2C{CNSEAN=4030661283210}%2C{ECLASS=27-27-26-06}%2C{INFO=Datenblatt}%2C{INFOALG=https://products.schmersal.com/view/101144420}%2C{VER=10}%2C{PPATH=assemblies/betaetiger_asmtpl.prj}") :set-modified nil :check-read-only nil) ;;;;;********** Create Default Attributes ********** ;Default Attributes Configured (oli::sd-attach-item-attribute (oli::sd-pathname-to-obj *ObjectPathName*) "DEFAULTATTR" :attachment :contents :on-copy :copy :on-xform :maintain :set-modified nil :check-read-only nil :values '( "NB" "AZM 161-B6" "NN" "AZM161 Betaetiger" "NT" "" "NBSYN" "$TYPE." "LINA" "AZM 161-B6" "CATALOG" "Schmersal" "HS" "K.A. Schmersal GmbH & Co. KG" "TYPE" "AZM 161-B6" "BESTNR" "101144420" "KURZBESCH" "Beweglicher Betätiger für kleine Betätigungsradien" "CNSEAN" "4030661283210" "ECLASS" "27-27-26-06" "INFO" "https://products.schmersal.com/view/101144420" "SUPPLIER" "SCHMERSAL" "ARTICLENO" "AZM 161-B6" "BOMINFO" "AZM 161-B6" "CREATOR" "CADENAS GmbH" ) ) (let ((volumeTotal 0) (surfaceTotal 0) (massTotal 36)) ;;;;;********** Create Members ********** ;;;;;********** Create Component 0: "101144420_betaetiger" ********** (let ((SAVEPARENT *ObjectParentName*) (SAVEASM *ObjectAsmName*) (SAVEPATH *ObjectPathName*)) (defparameter *ObjectParentName* *ObjectPathName*) (defun CreateNewPart_1() (PSolLog 1 "Enter CreateNewPart_1") (GenerateObject_1) (PSolLog 1 "Leave CreateNewPart_1") (return-from CreateNewPart_1 t) ) (defun BuildPart_1() (PSolLog 2 "Enter BuildPart_1") (PSolLog 2 "Part Name: 101144420_betaetiger") (PSolLog 2 "Pool Path: \\10.40.0.244\data_v9/pool/onespacemodeller/") (PSolLog 2 "File Name: 101144420_betaetiger") (PSolLog 2 "Display Name: 101144420_betaetiger") (OnOpen_1) (if (= *OnOpenValue* -1) (progn (PSolLog 2 "OnOpen_1 Failed") (PSolLog 1 "Leave BuildPart_1") (return-from BuildPart_1 nil) ) ) (if (= *OnOpenValue* 1) (progn (PSolLog 2 "Loaded Part From Session After OnOpen") (PSolLog 2 "Leave BuildPart_1") (return-from BuildPart_1 t) ) ) (if (not (CreateNewPart_1)) (progn (PSolLog 4 "Part Creation Failed. Aborting With Fatal Error") (PSolLog 2 "Leave BuildPart_1") (return-from BuildPart_1 nil) ) (progn (PSolLog 2 "Part Creation Succeeded") ) ) (beforesave_1) (onsave_1) (aftersave_1) (PSolLog 2 "Leave BuildPart_1") (return-from BuildPart_1 t) ) (defun onopen_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocOnOpen")) (PSolLog 2 "Enter Callback SessionPartOnOpen") (PSolLog 2 "Content Name: 101144420_betaetiger") (defparameter *OnOpenValue* 0) (defparameter *OnOpenName* nil) (let ( (fileName "101144420_betaetiger") (displayName (oli::sd-gen-obj-basename :part :parent *ObjectParentName* :prefix "101144420_betaetiger.")) ) (PartExists "101144420_betaetiger") (if (not (= *PartExistsValue* 0)) (progn (PSolLog 2 (concatenate 'string "Found Content At: " *PartExistsName*)) (oli::create_MULTIPLE_PA :share :owner *ObjectParentName* :name displayName :source *PartExistsName*) (let (tVec xVec zVec tx ty tz xx xy xz zx zy zz) (setf tVec (oli::sd-vec-xform 0,0,0 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf xVec (oli::sd-vec-xform 1,0,0 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf zVec (oli::sd-vec-xform 0,0,1 :source-space (oli::sd-pathname-to-obj (concatenate 'string *ObjectParentName* "/" displayName)) :dest-space :global)) (setf tx (oli::gpnt3d_x tVec)) (setf ty (oli::gpnt3d_y tVec)) (setf tz (oli::gpnt3d_z tVec)) (setf xx (oli::gpnt3d_x xVec)) (setf xy (oli::gpnt3d_y xVec)) (setf xz (oli::gpnt3d_z xVec)) (setf zx (oli::gpnt3d_x zVec)) (setf zy (oli::gpnt3d_y zVec)) (setf zz (oli::gpnt3d_z zVec)) (transform-document (oli::sd-inq-curr-part) tx ty tz xx xy xz zx zy zz 0 0 0 1 0 0 0 0 1) ) (defparameter *OnOpenValue* 1) (defparameter *OnOpenName* (concatenate 'string *ObjectParentName* "/" displayName)) (defparameter *ObjectPathName* *OnOpenName*) (PSolLog 2 (concatenate 'string "New Instance Path: " *ObjectPathName*)) ) (progn (PSolLog 2 "Content Not Found In Session") ) ) ) (PSolLog 2 "Leave Callback SessionPartOnOpen") (PSolLog 2 (concatenate 'string "Called Callback " "DocOnOpen")) ) (defun beforecreate_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocBeforeCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "DocBeforeCreate")) ) (defun aftercreate_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocAfterCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "DocAfterCreate")) ) (defun beforesave_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocBeforeSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocBeforeSave")) ) (defun onsave_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocOnSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocOnSave")) ) (defun aftersave_1() (PSolLog 2 (concatenate 'string "Calling Callback " "DocAfterSave")) (PSolLog 2 (concatenate 'string "Called Callback " "DocAfterSave")) ) (defun GenerateObject_1() (PSolLog 1 "Enter GenerateObject_1") ;;;;;********** Enter CreatePart ********** (defparameter *ObjectPartName* "101144420_betaetiger") (if (string= *ObjectParentName* "/") (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* *ObjectPartName*)) (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* "/" *ObjectPartName*)) ) (progn (oli::create_part :owner *ObjectParentName* :name *ObjectPartName*) ;;;;;********** Change Part Name ********** (defparameter *ObjectPartName* "101144420_betaetiger") (defparameter *ObjectPartModelName* "101144420_betaetiger") (oli::change_name_pa :part_asmb *ObjectPathName* :name *ObjectPartModelName* :model_name *ObjectPartName*) (defparameter *ObjectPathName* (concatenate 'string *ObjectParentName* "/" *ObjectPartModelName*)) ;;;;;********** Callback Invokation ********** (beforecreate_1) ;;;;;********** Create MIdent Attribute ********** (oli::sd-attach-item-attribute (oli::sd-pathname-to-obj *ObjectPathName*) "PARTsolutions-attribute" :attachment :contents :on-copy :copy :on-xform :maintain :values '("mident" "{$CADENAS_DATA/23d-libs/schmersal/2/azm161/betatiger/parts/azm161_betaetiger.prj}%2C192%20{VTYP=3D}%2C{NB=101144420_betaetiger}%2C{LINA=101144420_betaetiger}%2C{NN=AZM161%20Betaetiger}%2C{DATE=28.09.2022%2012:53:27}%2C{GEOMDATE=26.09.2022%2010:58:00}%2C{VERSION=}%2C{LINEID=100}%2C{WBVAR=}%2C{WBNUMERIC=}%20%20{NB=101144420_betaetiger}%2C{LINA=101144420_betaetiger}%2C{KT=DUMMY}%2C{HS=K.A.%20Schmersal%20GmbH%20&%20Co.%20KG}%2C{TYPE=AZM%20161-B6}%2C{BESTNR=101144420}%2C{KURZBESCH=Beweglicher%20Bet%E4tiger%20f%FCr%20kleine%20Bet%E4tigungsradien}%2C{EAN=4030661283210}%2C{ECLASS=27-27-26-06}%2C{INFO=Datenblatt}%2C{INFOALG=https://products.schmersal.com/view/101144420}%2C{VER=10}") :set-modified nil :check-read-only nil) ;;;;;********** Create Default Attributes ********** ;Default Attributes Configured (oli::sd-attach-item-attribute (oli::sd-pathname-to-obj *ObjectPathName*) "DEFAULTATTR" :attachment :contents :on-copy :copy :on-xform :maintain :set-modified nil :check-read-only nil :values '( "NB" "101144420_betaetiger" "NN" "AZM161 Betaetiger" "NT" "" "NBSYN" "$BESTNR._betaetiger" "LINA" "101144420_betaetiger" "CATALOG" "Schmersal" "HS" "K.A. Schmersal GmbH & Co. KG" "TYPE" "AZM 161-B6" "BESTNR" "101144420" "KURZBESCH" "Beweglicher Betätiger für kleine Betätigungsradien" "EAN" "4030661283210" "ECLASS" "27-27-26-06" "INFO" "Datenblatt" "INFOALG" "https://products.schmersal.com/view/101144420" "VER" "10" "SUPPLIER" "SCHMERSAL" "ARTICLENO" "101144420_betaetiger" "BOMINFO" "101144420_betaetiger" "CREATOR" "CADENAS GmbH" ) ) ;;;;;********** Cleanup Temporary Geometry ********** (if (not (null (oli::sd-pathname-to-obj "/PSOL_CONSTRUCTION1"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_CONSTRUCTION1"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_SWEEP1"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_SWEEP1"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_SWEEP2"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_SWEEP2"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_THREAD"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_THREAD"))) ;;;;;********** Create Construction Plane ********** (oli::create_workplane :new :owner "/" :name "PSOL_CONSTRUCTION1" :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ;;;;;********** Create Part Geometry ********** ;Sketch: Sketch 1 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x -8 :y 11) (oli::make-gpnt2d :x -8 :y 1.5)) (oli::arc :3_pos (oli::make-gpnt2d :x -8 :y 1.5) (oli::make-gpnt2d :x -6.5 :y 0) (oli::make-gpnt2d :x -7.56066017177982 :y 0.439339828220179)) (oli::line :two_points (oli::make-gpnt2d :x -6.5 :y 0) (oli::make-gpnt2d :x 6.5 :y 0)) (oli::arc :3_pos (oli::make-gpnt2d :x 6.5 :y 0) (oli::make-gpnt2d :x 8 :y 1.5) (oli::make-gpnt2d :x 7.56066017177982 :y 0.439339828220179)) (oli::line :two_points (oli::make-gpnt2d :x 8 :y 1.5) (oli::make-gpnt2d :x 8 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x 8 :y 11) (oli::make-gpnt2d :x -8 :y 11)) ;BaseExtrude: Base extrude 1 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 20 :direction :BOTH_SIDES :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 2 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x 20 :y 11) (oli::make-gpnt2d :x 28 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x 28 :y 11) (oli::make-gpnt2d :x 28 :y 1.5)) (oli::arc :3_pos (oli::make-gpnt2d :x 28 :y 1.5) (oli::make-gpnt2d :x 26.5 :y 0) (oli::make-gpnt2d :x 27.5606601717798 :y 0.439339828220179)) (oli::line :two_points (oli::make-gpnt2d :x 26.5 :y 0) (oli::make-gpnt2d :x 20 :y 0)) (oli::line :two_points (oli::make-gpnt2d :x 20 :y 0) (oli::make-gpnt2d :x 20 :y 11)) ;BaseRotate: Base rotate 1 (oli::turn :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (oli::sd-deg-to-rad 90) :keep_profile :yes :keep_wp :yes ) (oli::turn :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (- (oli::sd-deg-to-rad 90)) :keep_profile :no :keep_wp :yes ) (let (tempPart) (setf tempPart (concatenate 'string (oli::sd-inq-obj-pathname (oli::sd-inq-curr-part)) ".1")) (if (oli::sd-pathname-to-obj tempPart) (oli::unite_3d :blank (oli::sd-inq-curr-part) :tools tempPart :keep_tools :no) ) ) ;Sketch: Sketch 3 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x -20 :y 0) (oli::make-gpnt2d :x -26.5 :y 0)) (oli::arc :3_pos (oli::make-gpnt2d :x -26.5 :y 0) (oli::make-gpnt2d :x -28 :y 1.5) (oli::make-gpnt2d :x -27.5606601717798 :y 0.439339828220179)) (oli::line :two_points (oli::make-gpnt2d :x -28 :y 1.5) (oli::make-gpnt2d :x -28 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x -28 :y 11) (oli::make-gpnt2d :x -20 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x -20 :y 11) (oli::make-gpnt2d :x -20 :y 0)) ;BaseRotate: Base rotate 2 (oli::turn :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (oli::sd-deg-to-rad 90) :keep_profile :yes :keep_wp :yes ) (oli::turn :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (- (oli::sd-deg-to-rad 90)) :keep_profile :no :keep_wp :yes ) (let (tempPart) (setf tempPart (concatenate 'string (oli::sd-inq-obj-pathname (oli::sd-inq-curr-part)) ".1")) (if (oli::sd-pathname-to-obj tempPart) (oli::unite_3d :blank (oli::sd-inq-curr-part) :tools tempPart :keep_tools :no) ) ) ;Sketch: Sketch 4_ALT_Drilling 1 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x 20 :y 11) (oli::make-gpnt2d :x 22.75 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x 22.75 :y 11) (oli::make-gpnt2d :x 22.75 :y 2.25)) (oli::line :two_points (oli::make-gpnt2d :x 22.75 :y 2.25) (oli::make-gpnt2d :x 25 :y 0)) (oli::line :two_points (oli::make-gpnt2d :x 25 :y 0) (oli::make-gpnt2d :x 20 :y 0)) (oli::line :two_points (oli::make-gpnt2d :x 20 :y 0) (oli::make-gpnt2d :x 20 :y 11)) ;CutRotate: Cut rotate 1_ALT_Drilling 1 (oli::bore :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x 20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (- (oli::sd-deg-to-rad 360)) :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 5_ALT_Drilling 2 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x -20 :y 11) (oli::make-gpnt2d :x -17.25 :y 11)) (oli::line :two_points (oli::make-gpnt2d :x -17.25 :y 11) (oli::make-gpnt2d :x -17.25 :y 2.25)) (oli::line :two_points (oli::make-gpnt2d :x -17.25 :y 2.25) (oli::make-gpnt2d :x -15 :y 0)) (oli::line :two_points (oli::make-gpnt2d :x -15 :y 0) (oli::make-gpnt2d :x -20 :y 0)) (oli::line :two_points (oli::make-gpnt2d :x -20 :y 0) (oli::make-gpnt2d :x -20 :y 11)) ;CutRotate: Cut rotate 2_ALT_Drilling 2 (oli::bore :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :axis :two_pta (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 0) :source-space (oli::sd-inq-curr-wp) :dest-space :global) (oli::sd-vec-xform (oli::make-gpnt2d :x -20 :y 11) :source-space (oli::sd-inq-curr-wp) :dest-space :global) :rotation_angle (- (oli::sd-deg-to-rad 360)) :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 6 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -13.8 :y -7) (oli::make-gpnt2d :x 13.8 :y -7)) (oli::line :two_points (oli::make-gpnt2d :x 13.8 :y -7) (oli::make-gpnt2d :x 13.8 :y 7)) (oli::line :two_points (oli::make-gpnt2d :x 13.8 :y 7) (oli::make-gpnt2d :x -13.8 :y 7)) (oli::line :two_points (oli::make-gpnt2d :x -13.8 :y 7) (oli::make-gpnt2d :x -13.8 :y -7)) ;CutExtrude: Cut extrude 1 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1.2 :direction :BOTH_SIDES :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 7 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -13.7 :y -6.9) (oli::make-gpnt2d :x 13.7 :y -6.9)) (oli::line :two_points (oli::make-gpnt2d :x 13.7 :y -6.9) (oli::make-gpnt2d :x 13.7 :y 6.9)) (oli::line :two_points (oli::make-gpnt2d :x 13.7 :y 6.9) (oli::make-gpnt2d :x -13.7 :y 6.9)) (oli::line :two_points (oli::make-gpnt2d :x -13.7 :y 6.9) (oli::make-gpnt2d :x -13.7 :y -6.9)) ;BaseExtrude: Base extrude 2 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1.2 :direction :-W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 8_ALT_Drilling 3 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 11 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x 7 :y -2.3) 1.5) ;CutExtrude: Cut extrude 2_ALT_Drilling 3 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1.2 :direction :-W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 9 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -6.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -3)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -3) (oli::make-gpnt2d :x 10.15 :y -3)) (oli::line :two_points (oli::make-gpnt2d :x 10.15 :y -3) (oli::make-gpnt2d :x 10.15 :y 5.2)) (oli::line :two_points (oli::make-gpnt2d :x 10.15 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 5.2)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y -6.1)) ;CutExtrude: Cut extrude 3 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 0.9 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 10 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -6.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -3)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -3) (oli::make-gpnt2d :x 6.55 :y -3)) (oli::line :two_points (oli::make-gpnt2d :x 6.55 :y -3) (oli::make-gpnt2d :x 6.55 :y 4.2)) (oli::line :two_points (oli::make-gpnt2d :x 6.55 :y 4.2) (oli::make-gpnt2d :x 7.55 :y 5.2)) (oli::line :two_points (oli::make-gpnt2d :x 7.55 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 5.2)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y -6.1)) ;CutExtrude: Cut extrude 4 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 2.47 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 11 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -2.99999999999999) (oli::make-gpnt2d :x 2.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -4.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -4.1) (oli::make-gpnt2d :x 11.75 :y -3)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y -3) (oli::make-gpnt2d :x 2.75 :y -2.99999999999999)) ;CutExtrude: Cut extrude 5 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 9.96 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 12 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 5.2)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 5.2) (oli::make-gpnt2d :x 11.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x 11.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 6.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 6.1) (oli::make-gpnt2d :x -2.75 :y 5.2)) ;CutExtrude: Cut extrude 6 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 9.96 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 13 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -6.1)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -6.1) (oli::make-gpnt2d :x 2.75 :y -5)) (oli::line :two_points (oli::make-gpnt2d :x 2.75 :y -5) (oli::make-gpnt2d :x -11.75 :y -5)) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y -5) (oli::make-gpnt2d :x -11.75 :y -6.1)) ;CutExtrude: Cut extrude 7 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 9.96 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 14 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y 3.1) (oli::make-gpnt2d :x -2.75 :y 3.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 3.1) (oli::make-gpnt2d :x -2.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -2.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y 4.1)) (oli::line :two_points (oli::make-gpnt2d :x -11.75 :y 4.1) (oli::make-gpnt2d :x -11.75 :y 3.1)) ;CutExtrude: Cut extrude 8 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 9.96 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 15_ALT_Drilling 4 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x 8.2 :y 4.1) 2) ;CutExtrude: Cut extrude 9_ALT_Drilling 4 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 2.47 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 16 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 1.5 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 1.5 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 1.5 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x 8.2 :y 4.1) 1.85) ;BaseExtrude: Base extrude 3 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 8.46 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 17 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 8.2 :y 1.5 :z -4.1) (oli::sd-vec-add (oli::make-gpnt3d :x 8.2 :y 1.5 :z -4.1) (oli::make-gpnt3d :x -1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 8.2 :y 1.5 :z -4.1) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -1 :y -0.577350269189626) (oli::make-gpnt2d :x 0 :y -1.15470053837925)) (oli::line :two_points (oli::make-gpnt2d :x 0 :y -1.15470053837925) (oli::make-gpnt2d :x 1 :y -0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x 1 :y -0.577350269189626) (oli::make-gpnt2d :x 1 :y 0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x 1 :y 0.577350269189626) (oli::make-gpnt2d :x 0 :y 1.15470053837925)) (oli::line :two_points (oli::make-gpnt2d :x 0 :y 1.15470053837925) (oli::make-gpnt2d :x -1 :y 0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x -1 :y 0.577350269189626) (oli::make-gpnt2d :x -1 :y -0.577350269189626)) ;CutExtrude: Cut extrude 10 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 0.4 :direction :-W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 18 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x 5 :y 1.1) 1.6) (oli::circle :cen_rad (oli::make-gpnt2d :x 5 :y 1.1) 1.09) ;BaseExtrude: Base extrude 4 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1.8 :direction :-W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 19_ALT_Drilling 5 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 2.47 :z 0) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x -7 :y -0.9) 2.95) ;CutExtrude: Cut extrude 11_ALT_Drilling 5 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 0.2 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 20 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x -7 :y 2.67 :z 0.9) (oli::sd-vec-add (oli::make-gpnt3d :x -7 :y 2.67 :z 0.9) (oli::make-gpnt3d :x -1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x -7 :y 2.67 :z 0.9) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::circle :cen_rad (oli::make-gpnt2d :x 0 :y 0) 2.86) ;BaseExtrude: Base extrude 5 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 0.2 :direction :+W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 21 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x -7 :y 2.47 :z 0.9) (oli::sd-vec-add (oli::make-gpnt3d :x -7 :y 2.47 :z 0.9) (oli::make-gpnt3d :x -1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x -7 :y 2.47 :z 0.9) (oli::make-gpnt3d :x 0 :y 0 :z -1)) ) (oli::line :two_points (oli::make-gpnt2d :x -1 :y -0.577350269189626) (oli::make-gpnt2d :x 0 :y -1.15470053837925)) (oli::line :two_points (oli::make-gpnt2d :x 0 :y -1.15470053837925) (oli::make-gpnt2d :x 1 :y -0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x 1 :y -0.577350269189626) (oli::make-gpnt2d :x 1 :y 0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x 1 :y 0.577350269189626) (oli::make-gpnt2d :x 0 :y 1.15470053837925)) (oli::line :two_points (oli::make-gpnt2d :x 0 :y 1.15470053837925) (oli::make-gpnt2d :x -1 :y 0.577350269189626)) (oli::line :two_points (oli::make-gpnt2d :x -1 :y 0.577350269189626) (oli::make-gpnt2d :x -1 :y -0.577350269189626)) ;CutExtrude: Cut extrude 12 (oli::mill :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1.3 :direction :-W :keep_profile :no :keep_wp :yes ) ;Sketch: Sketch 22 (oli::current_wp "/PSOL_CONSTRUCTION1") (oli::position_wp_dia (oli::sd-inq-curr-wp) :other-method :pt_pt_pt (oli::make-gpnt3d :x 0 :y 0 :z -1) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z -1) (oli::make-gpnt3d :x 1 :y 0 :z 0)) (oli::sd-vec-add (oli::make-gpnt3d :x 0 :y 0 :z -1) (oli::make-gpnt3d :x 0 :y 1 :z 0)) ) (oli::line :two_points (oli::make-gpnt2d :x -13.5 :y -17.249) (oli::make-gpnt2d :x -10.8861100727339 :y -27.0035892274218)) (oli::arc :3_pos (oli::make-gpnt2d :x -10.8861100727339 :y -27.0035892274218) (oli::make-gpnt2d :x -10.2168985707844 :y -27.1828985707844) (oli::make-gpnt2d :x -10.6032660257559 :y -27.2864269593136)) (oli::line :two_points (oli::make-gpnt2d :x -10.2168985707844 :y -27.1828985707844) (oli::make-gpnt2d :x -8.7 :y -25.666)) (oli::line :two_points (oli::make-gpnt2d :x -8.7 :y -25.666) (oli::make-gpnt2d :x -8.7 :y -20.95)) (oli::line :two_points (oli::make-gpnt2d :x -8.7 :y -20.95) (oli::make-gpnt2d :x -6 :y -20.95)) (oli::line :two_points (oli::make-gpnt2d :x -6 :y -20.95) (oli::make-gpnt2d :x -6 :y -22.95)) (oli::line :two_points (oli::make-gpnt2d :x -6 :y -22.95) (oli::make-gpnt2d :x -4.2 :y -22.95)) (oli::line :two_points (oli::make-gpnt2d :x -4.2 :y -22.95) (oli::make-gpnt2d :x -4.2 :y -21.95)) (oli::line :two_points (oli::make-gpnt2d :x -4.2 :y -21.95) (oli::make-gpnt2d :x 4.2 :y -21.95)) (oli::line :two_points (oli::make-gpnt2d :x 4.2 :y -21.95) (oli::make-gpnt2d :x 4.2 :y -22.95)) (oli::line :two_points (oli::make-gpnt2d :x 4.2 :y -22.95) (oli::make-gpnt2d :x 6 :y -22.95)) (oli::line :two_points (oli::make-gpnt2d :x 6 :y -22.95) (oli::make-gpnt2d :x 6 :y -20.95)) (oli::line :two_points (oli::make-gpnt2d :x 6 :y -20.95) (oli::make-gpnt2d :x 8.7 :y -20.95)) (oli::line :two_points (oli::make-gpnt2d :x 8.7 :y -20.95) (oli::make-gpnt2d :x 8.7 :y -25.666)) (oli::line :two_points (oli::make-gpnt2d :x 8.7 :y -25.666) (oli::make-gpnt2d :x 10.2168985707844 :y -27.1828985707844)) (oli::arc :3_pos (oli::make-gpnt2d :x 10.2168985707844 :y -27.1828985707844) (oli::make-gpnt2d :x 10.8861100727339 :y -27.0035892274218) (oli::make-gpnt2d :x 10.6032660257559 :y -27.2864269593136)) (oli::line :two_points (oli::make-gpnt2d :x 10.8861100727339 :y -27.0035892274218) (oli::make-gpnt2d :x 13.5 :y -17.249)) (oli::line :two_points (oli::make-gpnt2d :x 13.5 :y -17.249) (oli::make-gpnt2d :x 13.5 :y -10.45)) (oli::line :two_points (oli::make-gpnt2d :x 13.5 :y -10.45) (oli::make-gpnt2d :x 12.232 :y -0.818000000000001)) (oli::line :two_points (oli::make-gpnt2d :x 12.232 :y -0.818000000000001) (oli::make-gpnt2d :x 7.5 :y 0.45)) (oli::line :two_points (oli::make-gpnt2d :x 7.5 :y 0.45) (oli::make-gpnt2d :x 3.80640526124231 :y 0.061937514584895)) (oli::arc :3_pos (oli::make-gpnt2d :x 3.80640526124231 :y 0.061937514584895) (oli::make-gpnt2d :x 3.14600123654103 :y 0.711014115368962) (oli::make-gpnt2d :x 3.32313383173892 :y 0.23073509188779)) (oli::line :two_points (oli::make-gpnt2d :x 3.14600123654103 :y 0.711014115368962) (oli::make-gpnt2d :x 3.48799221452392 :y 4.61491112719705)) (oli::arc :3_pos (oli::make-gpnt2d :x 3.48799221452392 :y 4.61491112719705) (oli::make-gpnt2d :x 3.39114746636218 :y 5.72244969023431) (oli::make-gpnt2d :x 3.48803680256604 :y 5.17291842886018)) (oli::line :two_points (oli::make-gpnt2d :x 3.39114746636218 :y 5.72244969023431) (oli::make-gpnt2d :x 2.96604352940025 :y 7.30883755852049)) (oli::arc :3_pos (oli::make-gpnt2d :x 2.96604352940025 :y 7.30883755852049) (oli::make-gpnt2d :x 2.00012266395673 :y 8.05) (oli::make-gpnt2d :x 2.60887649001432 :y 7.84335917418294)) (oli::line :two_points (oli::make-gpnt2d :x 2.00012266395673 :y 8.05) (oli::make-gpnt2d :x -2.00012266395673 :y 8.05)) (oli::arc :3_pos (oli::make-gpnt2d :x -2.00012266395673 :y 8.05) (oli::make-gpnt2d :x -2.96604352940025 :y 7.30883755852049) (oli::make-gpnt2d :x -2.60887649001432 :y 7.84335917418295)) (oli::line :two_points (oli::make-gpnt2d :x -2.96604352940025 :y 7.30883755852049) (oli::make-gpnt2d :x -3.39114746636218 :y 5.72244969023431)) (oli::arc :3_pos (oli::make-gpnt2d :x -3.39114746636218 :y 5.72244969023431) (oli::make-gpnt2d :x -3.48799221452392 :y 4.61491112719705) (oli::make-gpnt2d :x -3.48803680256604 :y 5.17291842886019)) (oli::line :two_points (oli::make-gpnt2d :x -3.48799221452392 :y 4.61491112719705) (oli::make-gpnt2d :x -3.14600123654103 :y 0.711014115368963)) (oli::arc :3_pos (oli::make-gpnt2d :x -3.14600123654103 :y 0.711014115368963) (oli::make-gpnt2d :x -3.80640526124231 :y 0.061937514584895) (oli::make-gpnt2d :x -3.32313383173893 :y 0.230735091887789)) (oli::line :two_points (oli::make-gpnt2d :x -3.80640526124231 :y 0.061937514584895) (oli::make-gpnt2d :x -7.5 :y 0.450000000000001)) (oli::line :two_points (oli::make-gpnt2d :x -7.5 :y 0.450000000000001) (oli::make-gpnt2d :x -12.232 :y -0.817999999999999)) (oli::line :two_points (oli::make-gpnt2d :x -12.232 :y -0.817999999999999) (oli::make-gpnt2d :x -13.5 :y -10.45)) (oli::line :two_points (oli::make-gpnt2d :x -13.5 :y -10.45) (oli::make-gpnt2d :x -13.5 :y -17.249)) (oli::line :two_points (oli::make-gpnt2d :x 0.999999999999998 :y -12.102) (oli::make-gpnt2d :x 1.8 :y -16.639)) (oli::line :two_points (oli::make-gpnt2d :x 1.8 :y -16.639) (oli::make-gpnt2d :x 1.8 :y -17.95)) (oli::line :two_points (oli::make-gpnt2d :x 1.8 :y -17.95) (oli::make-gpnt2d :x 4.2 :y -17.95)) (oli::line :two_points (oli::make-gpnt2d :x 4.2 :y -17.95) (oli::make-gpnt2d :x 4.2 :y -16.95)) (oli::line :two_points (oli::make-gpnt2d :x 4.2 :y -16.95) (oli::make-gpnt2d :x 6 :y -16.95)) (oli::line :two_points (oli::make-gpnt2d :x 6 :y -16.95) (oli::make-gpnt2d :x 6 :y -18.95)) (oli::line :two_points (oli::make-gpnt2d :x 6 :y -18.95) (oli::make-gpnt2d :x 8.7 :y -18.95)) (oli::line :two_points (oli::make-gpnt2d :x 8.7 :y -18.95) (oli::make-gpnt2d :x 8.7 :y -16.939)) (oli::line :two_points (oli::make-gpnt2d :x 8.7 :y -16.939) (oli::make-gpnt2d :x 9.5 :y -12.402)) (oli::line :two_points (oli::make-gpnt2d :x 9.5 :y -12.402) (oli::make-gpnt2d :x 9.5 :y -4.25)) (oli::arc :3_pos (oli::make-gpnt2d :x 9.5 :y -4.25) (oli::make-gpnt2d :x 8.2 :y -2.95) (oli::make-gpnt2d :x 9.11923881554251 :y -3.33076118445749)) (oli::line :two_points (oli::make-gpnt2d :x 8.2 :y -2.95) (oli::make-gpnt2d :x 2 :y -2.95)) (oli::arc :3_pos (oli::make-gpnt2d :x 2 :y -2.95) (oli::make-gpnt2d :x 0.999999999999999 :y -3.95) (oli::make-gpnt2d :x 1.29289321881345 :y -3.24289321881345)) (oli::line :two_points (oli::make-gpnt2d :x 0.999999999999999 :y -3.95) (oli::make-gpnt2d :x 0.999999999999998 :y -12.102)) (oli::circle :cen_rad (oli::make-gpnt2d :x 0 :y 4.05) 1.3) (oli::line :two_points (oli::make-gpnt2d :x -9.5 :y -4.25) (oli::make-gpnt2d :x -9.5 :y -12.402)) (oli::line :two_points (oli::make-gpnt2d :x -9.5 :y -12.402) (oli::make-gpnt2d :x -8.7 :y -16.939)) (oli::line :two_points (oli::make-gpnt2d :x -8.7 :y -16.939) (oli::make-gpnt2d :x -8.7 :y -18.95)) (oli::line :two_points (oli::make-gpnt2d :x -8.7 :y -18.95) (oli::make-gpnt2d :x -6 :y -18.95)) (oli::line :two_points (oli::make-gpnt2d :x -6 :y -18.95) (oli::make-gpnt2d :x -6 :y -16.95)) (oli::line :two_points (oli::make-gpnt2d :x -6 :y -16.95) (oli::make-gpnt2d :x -4.2 :y -16.95)) (oli::line :two_points (oli::make-gpnt2d :x -4.2 :y -16.95) (oli::make-gpnt2d :x -4.2 :y -17.95)) (oli::line :two_points (oli::make-gpnt2d :x -4.2 :y -17.95) (oli::make-gpnt2d :x -1.8 :y -17.95)) (oli::line :two_points (oli::make-gpnt2d :x -1.8 :y -17.95) (oli::make-gpnt2d :x -1.8 :y -16.639)) (oli::line :two_points (oli::make-gpnt2d :x -1.8 :y -16.639) (oli::make-gpnt2d :x -1 :y -12.102)) (oli::line :two_points (oli::make-gpnt2d :x -1 :y -12.102) (oli::make-gpnt2d :x -1 :y -3.95)) (oli::arc :3_pos (oli::make-gpnt2d :x -1 :y -3.95) (oli::make-gpnt2d :x -2 :y -2.95) (oli::make-gpnt2d :x -1.29289321881345 :y -3.24289321881345)) (oli::line :two_points (oli::make-gpnt2d :x -2 :y -2.95) (oli::make-gpnt2d :x -8.2 :y -2.95)) (oli::arc :3_pos (oli::make-gpnt2d :x -8.2 :y -2.95) (oli::make-gpnt2d :x -9.5 :y -4.25) (oli::make-gpnt2d :x -9.11923881554251 :y -3.33076118445749)) ;BaseExtrude: Base extrude 6 (oli::extrude :auto_direction :yes :sel_part (oli::sd-inq-curr-part) :wp (oli::sd-inq-curr-wp) :distance_type :distance 1 :direction :BOTH_SIDES :keep_profile :no :keep_wp :yes ) ;;;;;********** Cleanup Temporary Geometry ********** (if (not (null (oli::sd-pathname-to-obj "/PSOL_CONSTRUCTION1"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_CONSTRUCTION1"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_SWEEP1"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_SWEEP1"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_SWEEP2"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_SWEEP2"))) (if (not (null (oli::sd-pathname-to-obj "/PSOL_THREAD"))) (oli::delete_3d (oli::sd-pathname-to-obj "/PSOL_THREAD"))) ;;;;;********** Create Part Colors ********** ;Don't Use Instance Colors Configured (oli::set_part_base_color :parts *ObjectPathName* :color :rgb (oli::gpnt3d 0.25 0.25 0.25)) ;;;;;********** Create Surface Colors ********** (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -28 6.25 0))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -27.7990381056766 0.750000000000004 2.22044604925031e-15))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -23.875 1.125 -4.44089209850063e-16))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -22.75 6.625 4.44089209850063e-16))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -20.7508761831753 11 5.70347085650142))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -20.7483246304051 0 -5.68408988905317))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -13.8 10.4 0.830642496536483))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -13.7 10.4 -0.844039956158033))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -13.5 -13.8495 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -13.20533330084 -8.21164854392035 -1.07574101783596))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -12.4555864476808 -21.1465723805943 -0.843337536020096))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -11.75 0.45 -3.15529041877838))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -11.75 1.685 1.10529041877838))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -11.75 6.135 5.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -11.75 6.135 -3.6))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -10.7056687697161 -0.408999999999999 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -10.499741283259 -27.3000558583098 -1.14152414539734))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.95 2.57 0.9))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.5 -9.1992845704915 -1.05246896469365))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.49311006505629 -26.4591100650563 -1.25418951848765))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.32583302491977 -3.59999999999999 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.1 -14.6705 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -9.04538975240416 9.96 -3.65997710092525))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -8.7 -22.940876628599 -0.725543422529097))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -8.70000000000002 -17.9445 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -8.2242958444838 6.135 -4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -8 3.22 0.9))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -7.72057713659401 3.22 0.161324865405186))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -7.5 3.22 1.76602540378444))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -7.35 -20.95 -0.992270314960651))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -7.19891746381366 -18.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -7 3.77 0.933017358654865))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6.5 3.22 1.76602540378444))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6.33974596215561 6.135 5))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6.279422863406 3.22 0.161324865405188))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6.1 6.135 6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6.00000000000001 -21.8979687504397 -0.865266584395513))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6 -17.45 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -6 3.22 0.9))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.75305631266312 9.96 5.51072226688948))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.72457043594497 2.47 2.29937647010698))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.65320263062116 0.255968757292448 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.65016414947921 11 1.15250511478335))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.59032124826824 6.135 -3.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.1 -22.95 -0.724321122529529))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.1 -16.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -4.52316734517651 2.57 -0.53))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -4.26151439636867 2.67 1.63377500597726))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -4.2 -22.4358910263135 -0.793198664689963))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -4.2 -17.45 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.7242958444838 0.45 -4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.7242958444838 1.81889348812659 -4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.44371214608747 0.139037927641107 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.26180768579435 2.03296843667003 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.05532392436467 -2.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3 -17.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -2.75 0.45 -5.35898384862246))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -2.75 1.87196589118144 -5.34608222507051))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -2.75 6.135 -3.6))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -2.75 6.135 -5.64792206390402))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -1.8 -17.2945 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -1.4 -14.3705 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -1.13397459621556 -3.45 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -1 -9.0479843236303 -1.05506945841604))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -0.00775496308508072 0.599461072457676 6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.5315160228637e-15 -21.95 -0.85829571874509))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -2.48063093925089e-15 -16.9857376308337 0))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -3.60517036766711e-16 -14.5969013410076 -2))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d -5.3828995133341e-15 0.45 -6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0 0.75 7.79903810567666))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0 0.75 -7.79903810567666))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.41718549749547e-15 1.685 6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0 6.25 -8))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0 6.25 8))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0.320713969044681 2.47 -3.03401223083805))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0.875644347017862 10.4 7))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0.875644347017877 10.4 -7))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 0.999999999999999 -9.04798432363031 -1.05506945841604))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.01191930336663 9.8 6.95011990407673))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.13397459621556 -3.45 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.14884942777476 10.4 -6.9))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.14884942777475 10.4 6.9))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.4 -14.3705 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.8 -17.2945 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 1.9 1.90407631472834 -6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 2.15877281296331 9.96 -5.67044785917771))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 2.75 0.629706396773934 5.38987272381408))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 2.75 1.685 5.36106178471843))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 2.75 6.135 3.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 2.75 6.135 5.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3 -17.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.25603670867421 1.96709155164949 -1.28136084117366))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.34224503691493 6.135 -6.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.44371214608747 0.139037927641105 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.44403995615805 6.135 -5.2))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.7242958444838 0.234643899059424 4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.7242958444838 1.685 4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 3.95368705534593 9.96 3.53586148080994))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 4 -2.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 4.2 -22.4358910263135 -0.793198664689963))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 4.2 -17.45 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 4.60856273552777 2.47 -1.32599641001389))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5 0.67 0.189096630010824))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5 1.685 0.5))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.06731409782015 -22.95 -0.724321122529529))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.16346652052679 -16.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.65320263062116 0.255968757292448 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.77692378864669 6.135 3))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 5.99999999999999 -21.8979687504398 -0.865266584395512))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6 -17.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.09 1.985 -1.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.55 1.685 1.5))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.55 1.75707787290893 -2.64863667516765))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.86156308983856 0 5.24044023528353))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.91603437903612 2.47 -2.75580607433087))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 6.99637425611638 -20.95 -0.992270314960651))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7 9.8 2.03322822727888))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.17270222614062 -18.95 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.2 1.7 -4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.58556098932872 1.5 -2.8623413426397))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.65262794416288 1.7 -4.93867513459481))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.67692378864669 1.685 3))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 7.85012886940357 1.7 -3.14729765305227))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.2 1.73371066152484 -2.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.2 6.135 -5.95))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.2242958444838 6.135 4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.29903810567666 10.4 1.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.31892526208306 0.9 1.46827023066803))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.42288913971621 1.9 -4.48269935172956))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.7 -22.940876628599 -0.725543422529097))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.69999999999998 -17.9445 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.74737205583713 1.7 -4.93867513459481))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 8.82806172184908 1.7 -3.30791106579801))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 9.1 -14.6705 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 9.2 1.7 -4.1))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 9.32583302491977 -3.6 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 9.49311006505628 -26.4591100650563 -1.25418951848765))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 9.5 -9.1992845704915 -1.05246896469365))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.0773502691895 0.9 -4.80940107675844))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.1368663000408 -0.256582093924707 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.15 0.45 -4.66410161513775))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.15 0.45 -3.44378221735089))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.3102413988215 6.135 -5.2))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.4126933041054 1.86574404275755 -5.2))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.499741283259 -27.3000558583098 -1.14152414539734))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.5716679003209 0.45 -5.2))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 10.95 0.281494453690386 3))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 0.258777957414438 3.53335859309185))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 0.45 -5.65))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 1.685 3.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 1.88470089989648 -5.64508636060078))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 6.135 -5.65))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 11.75 6.135 3.55))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 12.6239309158741 -3.79519131048874 -0.946666666666667))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 13.0041600642658 -19.0993896607065 -0.999940057553239))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 13.5 -13.8495 -1))) :color :modify_rgb_color (+ (* (+ (* 130 256) 130) 256) 130) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 13.7 10.4 -0.844039956158037))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 13.8 10.4 0.83064249653648))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 15.9006546485441 11 5.37545742322926))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 20.7483246304051 0 5.68408988905318))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 20.7508761831753 11 5.70347085650143))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 22.75 6.625 4.44089209850063e-16))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 23.875 1.125 -4.44089209850063e-16))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 27.7990381056767 0.749999999999998 -6.66133814775094e-16))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) (oli::face_prop (oli::sd-call-cmds (oli::get_selection :focus_type oli::*sd-face-seltype* :single_selection :curr_part_only :select (oli::gpnt3d 28 6.25 0))) :color :modify_rgb_color (+ (* (+ (* 64 256) 64) 256) 64) :done) ;;;;;********** Create Surface Text Annotations ********** ;;;;;********** Assign Secure Section Flag ********** ;No Secure Section Flag Configured ;;;;;********** Create Part Physical Properties ********** (if (not (oli::sd-inq-empty-part-p (oli::sd-pathname-to-obj *ObjectPathName*))) (progn (oli::assign_mp_data :parcel (oli::sd-pathname-to-obj *ObjectPathName*) :wetted_area (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :area)) :solid_volume (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :volume)) :centroid (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :centroid)) :prin_1 (first (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :prin_2 (second (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :prin_3 (third (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :mmi_1 (oli::gpnt3d_x (first (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) :mmi_2 (oli::gpnt3d_y (second (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) :mmi_3 (oli::gpnt3d_z (third (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) ) ) ) ;;;;;********** Callback Invokation ********** (aftercreate_1) ;;;;;********** Create Document Library Attribute ********** ;Library Attribute Configured (setq name-in-library (oli::sd-set-library-attr (oli::sd-pathname-to-obj *ObjectPathName*) "PSOL" "101144420_betaetiger")) ) (PSolLog 1 "Leave GenerateObject_1") ) (if (null (BuildPart_1)) (progn (return-from GenerateObject_1001 nil) ) ) (let ( (volLocal 0) (surfaceLocal 0) (massLocal 0) ) (if (HasGeometry (oli::sd-pathname-to-obj *ObjectPathName*)) (progn (setf volLocal (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb (oli::sd-pathname-to-obj *ObjectPathName*) :volume))) (setf surfaceLocal (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb (oli::sd-pathname-to-obj *ObjectPathName*) :area))) (setf massLocal (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb (oli::sd-pathname-to-obj *ObjectPathName*) :mass))) ) ) (setf volumeTotal (+ volumeTotal volLocal)) (setf surfaceTotal (+ surfaceTotal surfaceLocal)) (setf massTotal (+ massTotal massLocal)) ) (defparameter *ObjectAsmName* SAVEASM) (defparameter *ObjectParentName* SAVEPARENT) (let (tVecPar xVecPar zVecPar txPar tyPar tzPar xxPar xyPar xzPar zxPar zyPar zzPar tVecMem xVecMem zVecMem xxMem xyMem xzMem zxMem zyMem zzMem) (setf tVecPar (oli::sd-vec-xform 0,0,0 :source-space (oli::sd-pathname-to-obj *ObjectParentName*) :dest-space :global)) (setf xVecPar (oli::sd-vec-xform 1,0,0 :source-space (oli::sd-pathname-to-obj *ObjectParentName*) :dest-space :global)) (setf zVecPar (oli::sd-vec-xform 0,0,1 :source-space (oli::sd-pathname-to-obj *ObjectParentName*) :dest-space :global)) (setf tVecMem (oli::sd-vec-xform 0,0,0 :source-space (oli::sd-pathname-to-obj *ObjectPathName*) :dest-space :global)) (setf xVecMem (oli::sd-vec-xform 1,0,0 :source-space (oli::sd-pathname-to-obj *ObjectPathName*) :dest-space :global)) (setf zVecMem (oli::sd-vec-xform 0,0,1 :source-space (oli::sd-pathname-to-obj *ObjectPathName*) :dest-space :global)) (setf txPar (oli::gpnt3d_x tVecPar)) (setf tyPar (oli::gpnt3d_y tVecPar)) (setf tzPar (oli::gpnt3d_z tVecPar)) (setf xxPar (oli::gpnt3d_x xVecPar)) (setf xyPar (oli::gpnt3d_y xVecPar)) (setf xzPar (oli::gpnt3d_z xVecPar)) (setf zxPar (oli::gpnt3d_x zVecPar)) (setf zyPar (oli::gpnt3d_y zVecPar)) (setf zzPar (oli::gpnt3d_z zVecPar)) (setf txMem (oli::gpnt3d_x tVecMem)) (setf tyMem (oli::gpnt3d_y tVecMem)) (setf tzMem (oli::gpnt3d_z tVecMem)) (setf xxMem (oli::gpnt3d_x xVecMem)) (setf xyMem (oli::gpnt3d_y xVecMem)) (setf xzMem (oli::gpnt3d_z xVecMem)) (setf zxMem (oli::gpnt3d_x zVecMem)) (setf zyMem (oli::gpnt3d_y zVecMem)) (setf zzMem (oli::gpnt3d_z zVecMem)) (transform-document (oli::sd-pathname-to-obj *ObjectPathName*) txMem tyMem tzMem xxMem xyMem xzMem zxMem zyMem zzMem txPar tyPar tzPar xxPar xyPar xzPar zxPar zyPar zzPar) ) (defparameter *ObjectPathName* SAVEPATH) ) ;;;;;********** Create Assembly Physical Properties ********** ;Assembly Enhanced PhysicalProperties Configured (if (HasGeometry (oli::sd-pathname-to-obj *ObjectPathName*)) (progn (oli::assign_mp_data :parcel (oli::sd-pathname-to-obj *ObjectPathName*) :wetted_area surfaceTotal :solid_volume volumeTotal :solid_density (/ 36 volumeTotal) :centroid (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :centroid)) :prin_1 (first (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :prin_2 (second (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :prin_3 (third (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :principal))) :mmi_1 (oli::gpnt3d_x (first (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) :mmi_2 (oli::gpnt3d_y (second (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) :mmi_3 (oli::gpnt3d_z (third (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb *ObjectPathName* :inertia_ref_coord)))) ) ) ) (let ( (assignedAssemblyMass massTotal) (calculatedSubPartsMassTotal 0) (calculatedSubPartsVolumeTotal 0) (subParts (oli::sd-inq-obj-children (oli::sd-pathname-to-obj *ObjectPathName*))) ) (dolist (subPart subParts) (oli::current_part subPart) (if (not (oli::sd-inq-empty-part-p subPart)) (progn (setf calculatedSubPartsMassTotal (+ calculatedSubPartsMassTotal (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb subPart :mass))) ) (setf calculatedSubPartsVolumeTotal (+ calculatedSubPartsVolumeTotal (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb subPart :volume))) ) ) ) ) (dolist (subPart subParts) (oli::current_part subPart) (let ( (calculatedSubPartVolume nil) ) (if (not (oli::sd-inq-empty-part-p subPart)) (progn (setf calculatedSubPartVolume (oli::sd-call-cmds (oli::get_vol_prop :for_part :part_asmb subPart :volume))) (oli::set_part_inst_density :parts subPart :dens (/ (* (/ calculatedSubPartVolume calculatedSubPartsVolumeTotal) assignedAssemblyMass) calculatedSubPartVolume)) ) ) ) ) ) ) ;;;;;********** Callback Invokation ********** (aftercreate_1001) ;;;;;********** Create Document Library Attribute ********** ;Library Attribute Configured (setq name-in-library (oli::sd-set-library-attr (oli::sd-pathname-to-obj *ObjectPathName*) "PSOL" "AZM_161_B6")) ) (PSolLog 1 "Leave GenerateObject_1001") ) ;;;;;********** Enter Assembly Creation Main "AZM_161_B6" ********** (if (null (BuildAssembly_1001)) (progn (return-from CreatePSol nil) ) ) ;;;;;********** Leave Assembly Creation Main "AZM_161_B6" ********** (Hilite (oli::sd-pathname-to-obj *ObjectPathName*)) ;;;;;********** Enter Restore Old Actives ********** (if (not (null *ActiveWorkplane*)) (oli::current_wp *ActiveWorkplane*) ) (if (not (null *ActivePart*)) (oli::current_part *ActivePart*) ) ;;;;;********** Leave Restore Old Actives ********** (PSolLog 2 (concatenate 'string "Calling Callback " "AppAfterCreate")) (PSolLog 2 (concatenate 'string "Called Callback " "AppAfterCreate")) ;;;;;********** Begin Reset Global Variables ********** (defparameter *ObjectParentName* "/" "/") (defparameter *ObjectPathName* "/" "/") (defparameter *ObjectAsmName* "/" "/") (defparameter *PartExistsValue* 0) (defparameter *PartExistsName* nil) (defparameter *OnOpenValue* 0) (defparameter *OnOpenName* nil) (defparameter *OnSaveValue* 0) ) (oli::sd-defdialog 'PARTsolutions :dialog-title "PARTsolutions Export" :toolbox-button nil :variables '() :local-functions '( (OnApply() (BeginExportLog) (oli::sd-call-cmds (CreatePSol)) (oli::display :hide) (EndExportLog) (DisplayExportLog) ) (OnError() (EndExportLog) (DisplayExportLog) ) ) :ok-action '(OnApply) :exception '(OnError) ) (PARTsolutions)