;;--------------------------Activate SD Power-i.e. Package TS-SD-STL:--------------------------- act_deact_module :act "SDPOWER-BASE" "MODULE-CONTROLLER-Techsoft SolidPower-SDPOWER-BASE-TB" '(TS-UI-SDPOWER-START-MODULE "SDPOWER-BASE") ;;------------------------------------------------------------------------- ;;--------------------------Define Custom Package and include Overall Lisp Interface Package Oli:------------------------------ (in-package :my-special-bom-attr);define my own package (use-package :oli);include the package oli in my new package ;;--------------------------Define Function that will overwrite node tree print with custom using input from normal node tree print------------------------------- (defun cvs-print-tree (node name) (declare (ignore name)) (if (oli:sd-pathname-to-obj (BrowserNode-objPath node));check that node is of type structure...if not don't overwrite anything (progn ; ---------------------------------TEMP VARIABLE DECLARATION---------------------------------------- (let* ( (sel-item (oli::sd-pathname-to-obj (oli::BrowserNode-objPath node))) (objname (BrowserNode-objPname node));assign BrowserNode-objPname to objname (path (BrowserNode-objPath node));assign path of BrowserNode-objPath to path (obj (oli:sd-pathname-to-obj path));define obj = of sd object with pathname path (Material (TS-SD-STL::ts-am-stl-get-info-sel-item (sd-pathname-to-obj path) "WERKSTOFF")) ;techsoft's ts-sd-stl table attribute for attribute name "werkstoff"? ) ; ---------------------------------VARIABLE DECLARATION END--------------------------------------- ; ---------------------------------DO SOMETHING USING ABOVE VARIABLES----------------------------- (if (not (eq Material nil)) ;;anything not evaluating to NILL is automatically TRUE therefore (if Material ...would work aswell...this is just for clarity (progn ;progn is used when the if statement contains more than one statement to evaluate (setq CommaMaterial (concatenate 'string "_Werkstoff:" Material)) (setq NewString (concatenate 'string objname CommaMaterial)) );end progn ;;else (setq NewString (concatenate 'string objname "_Werkstoff:keine")) );;end if ;---------this is what i print-------- ;NewString ;makes sure not to print the root node (if (sd-string= "/" (BrowserNode-objPath node)) "" (if (And (sd-inq-vp-drawlist-member-p (sd-inq-current-vp) sel-item) (Or (sd-inq-part-p sel-item) (sd-inq-assembly-p sel-item))) NewString "...blank";else ) );end if ;------------------------------------- ) );end prog "...blank";else ) ) ;end of overwrite function cvs-print-tree ;----------------------------ADD BROWSER INTERROGATOR---------------------------------------- (sd-browser-add-interrogator "parcel-gbrowser" :interrogator-type :tree-print-name :interrogator-func 'cvs-print-tree);end print node tree ;--------------------------------------------------------------------------------------------- ;;------------------------------------------------------------------------- ;;----------------------------DEFINE DIALOGUE AND SELECTION---------------- (sd-defdialog 'BOM_Print_Selection :dialog-title "Print BOM" :toolbox-button t :variables '( ;;================================================================================================ ;;=========== zu positionierendes Objekt & Besitzer auswählen ==================================== ;;================================================================================================ ("Teil-/Baugruppenwahl") (TempBG :value-type :part-assembly ; :initial-value nil :modifies nil :after-input (progn ;(setf partassy TempBG) (fensterauf) );progn :title "Teil/Bg." );;TempBG ;;================================================================================================ ;;=========== Zusatzfenster ====================================================================== ;;================================================================================================ ("Fenstertools") (fensteropen :push-action (progn (fensterauf) );;progn :title "AUF" );;fensteropen (fensteloesch :push-action (progn (fensterzu) ); Ende progn :title "ZU" );;fensteloesch ) ;end variables :ok-action '( progn ;(wechslebaugruppe) (print_my_bom) ;(fensterzu) );end progn :cancel-action '(progn (fensterzu) );end Progn :local-functions '( ;;================================================================================================ ;;=========== Zusatzfenster schließen ============================================================ ;;================================================================================================ (fensterzu () (when (sd-inq-vp-exists-p "PrintWindow") (progn (sd-call-cmds (DELETE_VP "PrintWindow") );;sd-call-cmds );;progn );;When );end fensterzu ;;================================================================================================ ;;=========== Zusatzfenster erstellen =========================================================== ;;================================================================================================ (fensterauf() (setf fensterrichtung (sd-call-cmds (uic_store_vp_view (sd-inq-current-vp)))) (when (sd-inq-vp-exists-p "PrintWindow") (progn (sd-call-cmds (DELETE_VP "PrintWindow") );;sd-call-cmds );;progn );;When (sd-call-cmds (create_vp :name "PrintWindow" :CORNER_1 850,850 :corner_2 1200,1200 );;create_vp );;sd-call-cmds (sd-call-cmds (set_vp_drawlist "PrintWindow" TempBG)) (sd-call-cmds (uic_recall_vp_view "PrintWindow")) (sd-call-cmds (fit_vp "PrintWindow")) (sd-call-cmds (update_screen)) );end fensterauf ;------------JM FUNCTIONS----------------------------------------------------- ;------------------------------------------------------------------------------ (print_my_bom () ;(sd-display-message "You are here 1.") (sd-inq-vp-drawlist-objects (sd-inq-current-vp)) ;-------------------------------------------------------------------------------------------- ;(sd-display-message "You are here 2.") ;--------------------------------------------------------------------------------------------- (if (sd-browser-exec-cmd "parcel-gbrowser" :IS-OBJECT-EXPANDED) NIL (sd-browser-exec-cmd "parcel-gbrowser" :EXPAND-TREE 0));expand all completely ;-------------------------------------------------------------------------------------------- ;(sd-browser-print-tree "parcel-gbrowser" :file "C:/c.csv" :mode :overwrite :start-node ???) (sd-browser-exec-cmd "parcel-gbrowser" :EXPAND-TREE 1);expand all to level 1 (sd-display-message "You have exported your selection for BOM generation using RAW10mitLisp.xls.") print_browser_tree "parcel-gbrowser" cd "C:/" "C:/c.csv" :overwrite ) );endlocalfunction ) ;enddefdialog ;set_pers_context "Toolbox-Context" BOM_Print_Selection :tempbg ;;--------------------------------------------------------------------------