;;--------------------------------------------------------------------------* ;; Dateiname: HK_Stueckliste_Rev_03.lsp ;; Revision : 3.0 ;; Datum : 08.12.2005 ;; Author : Tasche ;; Version : 13.20A ;;--------------------------------------------------------------------------* ;; Beschreibung: ;; Erstellen einer Stueckliste mit logische Tabellen MY-BOM-ATTR-PROJEKT ;; ;;--------------------------------------------------------------------------* (in-package :my-special-bom-attr) (in-package :mei) (use-package :OLI) ;;--------------------------------------------------------------------------* ;;-------------------------------------------------------------------------- ;; logische Tabellen ;;-------------------------------------------------------------------------- (sd-create-logical-table "Material_Artikel" :columns '(:Material :Dichte :Fertigmasse_Bestellnummer) :columnNames '("Material" "g/mm^3" "Schwund") :types '(:string :mass :string) :units '(nil :g :nil) :contents '( ("ABS" 0.00105 "0,5%") ("HD-PE" 0.00095 "2,2%") ("PA6" 0.00115 "1,8%") ("PA6+GF30" 0.00135 "0,6-0,8%") ("POM/PVC" 0.0014 "2%") ("PP" 0.0009 "1,6%") ("PS" 0.00105 "0,5%") ("SAN anthr." 0.00108 "0,5%")) );;sd-create-logical-table "Material_Artikel" (sd-create-logical-table "Material_Werkstueck" :columns '(:Material :Haerte :Dichte :Farbe2) :columnNames '("Material" "Mat. Haerte HRC" "g/mm^3" "Farbe2") :types '(:string :string :mass :string) :units '(nil nil :g nil) :contents'( ("1730" "---------------" 0.00785 "1,1,0.5") ("2083" "D Haerter 50 " 0.00785 "0.6,0.6,0.6") ("2767" "D Haerter 55-58" 0.00785 "0.6,0.6,0.6") ("2162" "E Haerter 58-60" 0.00785 "0.9,0.1,0.1") ("2311" "E Haerter 60-62" 0.00785 "0.2,0.2,0.2") ("2312" "E Haerter 60-62" 0.00785 "0.2,0.2,0.1") ("2738" "E Haerter 60-62" 0.00785 "0.4,0.4,0.4") ("2764" "E Haerter " 0.00785 "1,0,0") ("Alu" "---------------" 0.00270 "1,0,1") ("Ampco" "---------------" 0.00785 "1,0,0") ("Becu" "---------------" 0.00785 "1,0,0") ("Dreckshage" "---------------" 0.00785 "1,0,0") ("Graphit" "---------------" 0.00200 "1,0,0") ("M390" "---------------" 0.00785 "1,0,0") ("DME" "---------------" 0.00785 "1,0,0") ("Ermeto" "---------------" 0.00785 "1,0,0") ("Festo" "---------------" 0.00270 "1,0,0") ("HASCO" "---------------" 0.00785 "1,0,0") ("Kupfer" "---------------" 0.00870 "1,0,0") ("Pepperl & Fuchs" "---------------" 0.00270 "1,0,0") ("Messing" "---------------" 0.00860 "1,0,0") ("Profi Quick" "---------------" 0.00785 "1,0,0") ("Roehmheld" "---------------" 0.00785 "1,0,1") ("Sankyo" "---------------" 0.00785 "1,0,0") ("Strack" "---------------" 0.00785 "1,0,0")) );;Material_Werkstueck (sd-create-logical-table "Benenn_Werkst" :columns '(:Benennung) :columnNames '("Benennung") :types '(:string) :units '(nil) :contents'( ("Angussbuchse") ("Aufspannplatte_DS") ("Aufspannplatte_AS") ("Aw_Grundplatte") ("Aw_Platte") ("Backe_links") ("Backe_rechts") ("Blindstempel") ("Datumstempel") ("Distanzleisten") ("Distanzrolle") ("Einsatz_DS") ("Einsatz_AS") ("Fuehrungssaeule") ("Formplatte_AS") ("Formplatte_DS") ("Kern") ("Konusplatte_DS") ("Konusplatte_AS") ("Materialstempel") ("Transportbruecke") ("Zent_Ring_AS") ("Zent_Ring_DS") ("Zwischenplatte") ("Zusammenbauzeichnung")) );;Benenn_Werkst (sd-create-logical-table "Benenn_Artikel" :columns '(:Benennung) :columnNames '("Benennung") :types '(:string) :units '(nil) :contents'( ("Deckel") ("Spule") ("Flansch") ("Kernrohr") ("Zusammenbauzeichnung")) );;Benenn_Artikel ;;----------------------------------------------------------------------------- ;; Display Tabellen ;;----------------------------------------------------------------------------- (sd-create-display-table "Material_Artikel" :tableTitle "Material und Dichte Tabelle" :logicalTable "Material_Artikel" :columns '(:Material :dichte :Fertigmasse_Bestellnummer) :applyColumns '(:Material :dichte :Fertigmasse_Bestellnummer) :displayHeight 180 :displayWidth 220 :filterStatusLine nil :selectionMode :single-row :applyAction :default-tokens );;Material_Artikel (sd-create-display-table "Material_Werkstueck" :tableTitle "Material und Dichte Tabelle" :logicalTable "Material_Werkstueck" :columns '(:Material :Haerte :Dichte :Farbe2) :applyColumns '(:Material :Dichte :Farbe2) :displayHeight 350 :displayWidth 220 :filterStatusLine nil :selectionMode :single-row :applyAction :default-tokens );;Material_Werkstueck (sd-create-display-table "Benenn_Werkst" :tableTitle "Teile_Benennung" :logicalTable "Benenn_Werkst" :columns '(:Benennung) :applyColumns '(:Benennung) :displayHeight 250 :filterStatusLine nil :selectionMode :single-row :applyAction :default-tokens );;Benenn_Werkst (sd-create-display-table "Benenn_Artikel" :tableTitle "Teile_Benennung" :logicalTable "Benenn_Artikel" :columns '(:Benennung) :applyColumns '(:Benennung) :displayHeight 150 :filterStatusLine nil :selectionMode :single-row :applyAction :default-tokens );;Benenn_Artikel ;;----------------------------------------------------------------------------- ;; functions to inquire attached BOM information of an SD part or assembly ;;----------------------------------------------------------------------------- (defun bomattr-get-Material (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Material) nil) );let ) (defun bomattr-get-hk_teile_legende (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :hk_teile_legende) nil) );let ) (defun bomattr-get-Pos (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :part-number) nil) );let ) ;;----------------------------------------------------------------------------- ;; dialog to attach BOM information to an SD part or assembly ;;----------------------------------------------------------------------------- (sd-defdialog 'hk_stueckliste_rev_02 :toolbox-button T :dialog-title "H&K Stueckliste Rev_03" :after-initialization '(progn (mei::hk-curr-user-status) (if (string= T hk_ben_status) (sd-set-variable-status 'hk_more :visible T) );;if (hk-posnr-revision) (hk-text-verweise-zuordnen) (setq Material (bomattr-get-Material object)) (setq Dichte (sd-inq-part-density object)) (setq Farbe (sd-rgb-to-color (sd-inq-part-color object))) (setq Benennung (bomattr-get-Benennung object)) (setq Benennung2 (bomattr-get-Benennung2 object)) (setq Menge (bomattr-get-Menge object)) (setq Fertigmasse_Bestellnummer (bomattr-get-Fertigmasse_Bestellnummer object)) (setq Waermebehandlung (bomattr-get-Waermebehandlung object)) (setq hk_teile_legende (bomattr-get-hk_teile_legende object)) );;progn :start-variable 'object :precondition '(if (string/= NIL (format nil"~A"(sd-inq-curr-part))) :ok ;;else (hk-kein-bt-aktiv);;(values :error "Kein Teil aktiv, Macro wird beendet") );;if :variables'( ("Teilem. & Durchm.") (Abmasse :value-type :grouped-boolean :title "Masse" :initial-value t );;Abmasse (hk_dm_zeichen :value-type :grouped-boolean :title "Durchm." :initial-value NIL );;hk_dm_zeichen ("Attribute auswaehlen") (OBJECT :value-type :part-assembly :modifies :contents :title "Teil" :prompt-text "Teil auswaehlen." :after-input (progn (hk-posnr-revision) (hk-text-verweise-zuordnen) (setq Material (bomattr-get-Material object)) (setq Dichte (sd-inq-part-density object)) (setq Farbe (sd-rgb-to-color (sd-inq-part-color object))) (setq Benennung (bomattr-get-Benennung object)) (setq Benennung2 (bomattr-get-Benennung2 object)) (setq Menge (bomattr-get-Menge object)) (setq Fertigmasse_Bestellnummer (bomattr-get-Fertigmasse_Bestellnummer object)) (setq Waermebehandlung (bomattr-get-Waermebehandlung object)) (setq hk_teile_legende (bomattr-get-hk_teile_legende object)) );progn );Object (Material :value-type :string :title "Material" :before-input (progn (hk-posnr-revision) (hk-text-verweise-zuordnen) (if (= (length (sd-inq-obj-basename OBJECT)) 12) (setf hh_aktive_tabelle "Material_Werkstueck") ;;else (setf hh_aktive_tabelle "Material_Artikel")) );;progn :show-input-tool (sd-show-display-table hh_aktive_tabelle :position '("OSD_Menu_Zusatz_WZ_Bau-BOM-HK_STUECKLISTE-TB" leftttop 450 100)) :hide-input-tool (sd-hide-display-table "Material-Dichte-Liste" :ignorePin t) :prompt-text "Material auswählen" );Material (Dichte :value-type :positive-number :title "Mat-Dichte" :prompt-text "Materialdichte angeben" :after-input (progn (sd-call-cmds (set_part_inst_density :parts OBJECT :dens Dichte)) (sd-call-cmds (set_part_inst_density :parts OBJECT :dens Dichte)) );;progn );;Dichte (Farbe2 :value-type :string :toggle-type :invisible :after-input (progn (sd-set-variable-status "FARBE" :value (sd-rgb-to-color (read-from-string Farbe2))) (setf FARBE (sd-rgb-to-color (read-from-string Farbe2))) );progn );;Farbe2 (Farbe :value-type :rgb-color :title "Farbe" :after-input (sd-call-cmds (set_part_inst_color :parts OBJECT :color Farbe)) );Farbe (Revision :value-type :display-only :title "Revision" :prompt-text "Revisionnsnummer" );Revision (Pos :value-type :display-only :title "Pos. Nr." :prompt-text "Positionsnummer eingeben." :dialog-type :terminate );Pos (Waermebehandlung :range ("keine" "duchgehaertet (D)" "einsatzgehaertet (E)" "plasmanitriert (P)" "tenifer (T)");;:value-type :string :proposals ("T" "P" "E" "D" "keine") :title "Waermebeh." :initial-value "keine" :prompt-text "Waermebehandlungsart eingeben" );;Waermebehandlung (Benennung :value-type :string :before-input (if (= (length (sd-inq-obj-basename OBJECT)) 12) (setf hh_aktive_tabelle "Benenn_Werkst") ;;else (setf hh_aktive_tabelle "Benenn_Artikel") );;if :show-input-tool (sd-show-display-table hh_aktive_tabelle :position '("OSD_Menu_Zusatz_WZ_Bau-BOM-HK_STUECKLISTE-TB" :lefttop 450 280)) :hide-input-tool (sd-hide-display-table "Benennung" :ignorePin t) :title "Benennung" :prompt-text " Teilebenennung eingeben max. 20" );Bennenung (Benennung2 :minimal-ui T :minimal-ui-title "Benennung2" :minimal-ui-width 2 ;; the width in GRID unit :value-type :display-only :title "Benennung2" :dialog-type :terminate );Benennung2 (Menge :value-type :string :proposals ("1" "2" "3" "4" "3/1" "6") :title "Menge" :prompt-text "Menge eingeben" );Menge (Fertigmasse_Bestellnummer :before-input (hk-teilemasse) :minimal-ui T :minimal-ui-title "Fertigmasse_Bestellnr." :minimal-ui-width 14 ;; the width in GRID unit ;;:proposals () ;;:auto-add-proposal T :before-input (if (= (length (sd-inq-obj-basename OBJECT)) 11) (setf Fertigmasse_Bestellnummer Schwund) );; :value-type :string :title "Teilem./Schw." :prompt-text "Fertigmasse oder Bestellnummer eingeben. max. 20 Zeichen" );Fertigmasse (hk_more :external-expand-shrink (hk_teile_legende ):initial-visible NIL :title "Legende" ;;:toggle-type (hk_zeige_buttom) :external-dialog-title "Teile Legende" );;hk_more (hk_teile_legende :value-type :string :before-input (sd-show-general-text-editor :initialText hk_teile_legende :resizable t );;sd-show-general-text-editor :title "Legende" :prompt-text "Legende fuer das Bauteil angeben" );;hk_teile_legende );;Variable :local-functions'( (hk-pos-nummer-filtern ();; fuer Artikelzeichnungen und nicht richtig benannte Bauteile wird "000" gesetzt ;;(setf pos hk_teile_schluessel) ;;(display hk_teile_schluessel) );hk-pos-nummer-filtern (l-dichte-action () (progn (sd-call-cmds (set_part_inst_density :parts OBJECT :dens Dichte)) (when AKTION_2 (sd-call-cmds (set_part_inst_color :parts OBJECT :color Farbe)) );when );progn );;l-dichte-action (hk-teilemasse () (if (string= Abmasse "T") (let (the-box z-dir x-dir ausgangs-punkt end-punkt fertig-masse Laenge Breite Hoehe) (setf z-dir 0,0,1) (setf x-dir 1,0,0) (setf the-box (sd-inq-exact-box OBJECT z-dir x-dir :source-space :local :dest-space :local)) (setf ausgangs-punkt (nth 0 the-box)) (setf end-punkt (nth 1 the-box)) (setf fertig-masse (sd-vec-subtract end-punkt ausgangs-punkt)) (setf Laenge (gpnt3d_x fertig-masse)) (setf Breite (gpnt3d_y fertig-masse)) (setf Hoehe (gpnt3d_z fertig-masse)) ;;(display :clear) ;;(display (format nil "Info zu Teil:~A" (sd-inq-obj-basename OBJECT))) ;;(display " " ) (setf Fertigmasse_Bestellnummer (format nil "~,2Fx~,2Fx~,2F" Laenge Breite Hoehe)) (if (string= T hk_dm_zeichen) (setf Fertigmasse_Bestellnummer (format nil "Dm ~,2Fx~,2Fx~,2F" Laenge Breite Hoehe)) ;;else (setf Fertigmasse_Bestellnummer (format nil "~,2Fx~,2Fx~,2F" Laenge Breite Hoehe)) );;if );let );if );hk-teilemasse (hk-ausfuehren () (progn (display :clear-hide); Teileinfo (sd-attach-item-attribute object "MY_SPECIAL_BOM_ATTR" :attachment :contents :on-copy :copy :on-merge :maintain :on-split :copy :on-xform :maintain :filing '(:sd-file) :values`(:Material ,Material :part-number ,Pos :Benennung ,Benennung :Benennung2 ,Benennung2 :Revision ,Revision :Menge ,Menge :Fertigmasse_Bestellnummer ,Fertigmasse_Bestellnummer :hk_teile_legende ,hk_teile_legende :Waermebehandlung ,Waermebehandlung :Projekt :Projekt);values );;sd-attach-item-attribute (display :clear-hide); Teileinfo );progn );;hk-ausfuehren (hk-posnr-revision () (setf hk_bt_name (oli::sd-inq-obj-basename OBJECT)) ;;kompl. Bauteilname (setf hk_bt_name_laenge (length (oli::sd-inq-obj-basename OBJECT)));;Stringlaenge (if (= hk_bt_name_laenge 12) (progn (setf hk_teile_schluessel (subseq hk_bt_name 6 9)) (setf hk_teile_revision (subseq hk_bt_name 10 12)) );;progn );;if (if (= hk_bt_name_laenge 11) (progn (setf hk_teile_schluessel (subseq hk_bt_name 6 8)) (setf hk_teile_revision (subseq hk_bt_name 9 11)) );;progn );;if (setf Revision hk_teile_revision) (setf pos hk_teile_schluessel) (cond ((string= pos "01") (setf Benennung2 "Spritzteilzeichnung")) ((string= pos "02") (setf Benennung2 "Spritzteilzeichnung mit Korrekturmassen")) ((string= pos "03") (setf Benennung2 "Spritzteilzeichnung mit Werkzeugmassen")) ((setf Benennung2 " ")) );;cond );;hk-posnr-revision );;local-functions :ok-action '(progn (hk-ausfuehren) (hk-ausfuehren) );; );;sd-defdialog ;;----------------------------------------------------------------------------- ;; functions to inquire attached BOM information of an SD part or assembly ;;----------------------------------------------------------------------------- (defun bomattr-get-Material (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Material) nil) );let ) (defun bomattr-get-Pos (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :part-number) nil) );let ) (defun bomattr-get-Revision (object) (let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :object) nil) );let ) ;;----------------------------------------------------------------------------- ;; convenience functions to inquire attached BOM information ;;----------------------------------------------------------------------------- (defun bomattr-get-Material (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Material) nil) );let );;defun (defun bomattr-get-Waermebehandlung (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Waermebehandlung) nil) ) ) (defun bomattr-get-Benennung (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Benennung) nil) ) ) (defun bomattr-get-Benennung2 (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Benennung2) nil) ) ) (defun bomattr-get-Pos (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :part-number) nil) ) ) (defun bomattr-get-Menge (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Menge) nil) ) ) (defun bomattr-get-Fertigmasse_Bestellnummer (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :Fertigmasse_Bestellnummer) nil) ) ) (defun bomattr-get-hk_teile_legende(selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :hk_teile_legende) nil) ) ) ;;----------------------------------------------------------------------------- ;; examples of how to customize some simple BOM attributes ;;----------------------------------------------------------------------------- (defun my-bom-attr-part-name (selitem) (let ((contents-name (oli::sd-inq-obj-contents-name selitem))) (if contents-name contents-name (oli::sd-inq-obj-basename selitem)) ) ) (defun my-bom-attr-part-no (selitem) (let ((part-no (bomattr-get-Pos selitem))) (if part-no part-no "") ) ) (defun my-bom-attr-Revision (selitem) (let ((Revision (bomattr-get-Revision selitem))) (if Revision Revision "") ) ) (defun my-bom-attr-Benennung (selitem) (let ((Benennung (bomattr-get-Benennung selitem))) (if Benennung Benennung "") ) ) (defun my-bom-attr-Benennung2 (selitem) (let ((Benennung2 (bomattr-get-Benennung2 selitem))) (if Benennung2 Benennung2 "") ) ) (defun my-bom-attr-Material (selitem) (let ((Material (bomattr-get-Material selitem))) (if Material Material "") ) ) (defun my-bom-attr-Menge (selitem) (let ((Menge (bomattr-get-Menge selitem))) (if Menge Menge "") ) ) (defun my-bom-attr-Fertigmasse_Bestellnummer (selitem) (let ((Fertigmasse_Bestellnummer (bomattr-get-Fertigmasse_Bestellnummer selitem))) (if Fertigmasse_Bestellnummer Fertigmasse_Bestellnummer "") ) ) (defun my-bom-attr-hk_teile_legende (selitem) (let ((hk_teile_legende (bomattr-get-hk_teile_legende selitem))) (if hk_teile_legende hk_teile_legende "") ) ) (defun my-bom-attr-Waermebehandlung (selitem) (let ((Waermebehandlung (bomattr-get-Waermebehandlung selitem))) (if Waermebehandlung Waermebehandlung "") ) ) (defun my-bom-attr-drehen (selitem) (let ((drehen "")) (if drehen drehen"") ) ) (defun my-bom-attr-fraesen (selitem) (let ((fraesen "")) (if fraesen fraesen"") ) ) (defun my-bom-attr-erodieren (selitem) (let ((erodieren "")) (if erodieren erodieren"") ) ) (defun my-bom-attr-schleifen (selitem) (let ((schleifen "")) (if schleifen schleifen"") ) ) (defun my-bom-attr-bohren (selitem) (let ((bohren "")) (if bohren bohren"") ) ) (defun my-bom-attr-haerten (selitem) (let ((haerten "")) (if haerten haerten"") ) ) (docu::docu-unregister-bom-attr-all) (docu::docu-register-bom-attr :attr-type "Pos" :attr-title "Pos No" :attr-display t :attr-value-fnc #'my-bom-attr-part-no) (docu::docu-register-bom-attr :attr-type "Teilenummer" :attr-title "Teile Name" :attr-display t :attr-value-fnc #'my-bom-attr-part-name) (docu::docu-register-bom-attr :attr-type "Benennung" :attr-title "Benennung" :attr-display t :attr-value-fnc #'my-bom-attr-Benennung) (docu::docu-register-bom-attr :attr-type "Benennung2" :attr-title "Benennung2" :attr-display t :attr-value-fnc #'my-bom-attr-Benennung2) (docu::docu-register-bom-attr :attr-type "Fertigmasse_Bestellnummer" :attr-title "Fertigmass / Bestellnummer" :attr-display t :attr-value-fnc #'my-bom-attr-Fertigmasse_Bestellnummer) (docu::docu-register-bom-attr :attr-type "hk_teile_legende" :attr-title "hk_teile_legende" :attr-display t :attr-value-fnc #'my-bom-attr-hk_teile_legende) (docu::docu-register-bom-attr :attr-type "Material" :attr-title "Material" :attr-display t :attr-value-fnc #'my-bom-attr-Material) (docu::docu-register-bom-attr :attr-type "Menge" :attr-title "Menge" :attr-display t :attr-value-fnc #'my-bom-attr-Menge) (docu::docu-register-bom-attr :attr-type "Waermebehandlung" :attr-title "Waermebehandlung" :attr-display t :attr-value-fnc #'my-bom-attr-Waermebehandlung) (docu::docu-register-bom-attr :attr-type "Revision" :attr-title "Revision" :attr-display t :attr-value-fnc #'my-bom-attr-Revision) (docu::docu-register-bom-attr :attr-type "drehen" :attr-title "drehen" :attr-display t :attr-value-fnc #'my-bom-attr-drehen) (docu::docu-register-bom-attr :attr-type "fraesen" :attr-title "fraesen" :attr-display t :attr-value-fnc #'my-bom-attr-fraesen) (docu::docu-register-bom-attr :attr-type "erodieren" :attr-title "erodieren" :attr-display t :attr-value-fnc #'my-bom-attr-erodieren) (docu::docu-register-bom-attr :attr-type "schleifen" :attr-title "schleifen" :attr-display t :attr-value-fnc #'my-bom-attr-schleifen) (docu::docu-register-bom-attr :attr-type "bohren" :attr-title "bohren" :attr-display t :attr-value-fnc #'my-bom-attr-bohren) (docu::docu-register-bom-attr :attr-type "haerten" :attr-title "haerten" :attr-display t :attr-value-fnc #'my-bom-attr-haerten) ;;----------------------------------------------------------------------------- ;; Textverweise zuordnen ;;----------------------------------------------------------------------------- (defun hk-text-verweise-zuordnen () (DOCU::DOCU-UNREGISTER-TR-GROUP "H&K") (DOCU::DOCU-REGISTER-TR-GROUP "H&K" "GLOBAL") (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Zeichnungsname" "???" 'DOCU::DOCU_INQ_DRAWING_NUMBER_TEXT) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Masstab" "???" 'DOCU::DOCU_INQ_CURR_SHEET_SCALE_TEXT) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Blatt_Name" "???" 'DOCU::DOCU-GET-CURRENT-SHEET-NAME) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Name" "???" 'my-special-username) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Datum" "???" 'my-special-bom-attr::my-tr-get-date) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Material" "???" 'my-tr-get-Material) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Revision" "???" 'my-tr-get-Revision) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Benennung" "???" 'my-tr-get-Benennung) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Benennung2" "???" 'my-tr-get-Benennung2) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Pos" "???" 'my-tr-get-Pos) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Menge" "???" 'my-tr-get-Menge) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Fertigmasse" "???" 'my-tr-get-Fertigmasse_Bestellnummer) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Teilelegende" "???" 'my-tr-get-hk_teile_legende) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Teilenummer" "???" 'my-tr-get-Teilenummer) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Projekt" "???" 'my-tr-get-Projekt) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Waermebehandlung" "???" 'my-tr-get-Waermebehandlung) (DOCU::DOCU-REGISTER-TR-TYPE "H&K" "Entw_Nummer" "???" 'my-tr-get-entw-nummer) );;defun hk-text-verweise-zuordnen ;;----------------------------------------------------------------------------- ;; Datum zuordnen ;;----------------------------------------------------------------------------- (defun my-tr-get-date () (multiple-value-bind (sec min hour day month year) (decode-universal-time (get-universal-time)) (declare (ignore sec) (ignore min) (ignore hour)) (format nil "~2,'Od.~2,'Od.~A" day month year)) );;defun ;;----------------------------------------------------------------------------- ;; Benutzername abfragen ;;----------------------------------------------------------------------------- (defun my-special-username() (setf benutzername (oli::sd-sys-getenv "USERNAME")) (cond ((string= benutzername "CAD01") (setf SHEET_TEXT1 "Meier")) ((string= benutzername "CAD02") (setf SHEET_TEXT1 "Mueller")) ((string= benutzername "CAD03") (setf SHEET_TEXT1 "Menke")) );cond );;defun my-special-username ;;----------------------------------------------------------------------------- ;; Teileinfo zuordnen ;;----------------------------------------------------------------------------- (defun my-tr-get-Material() (setf SHEET_TEXT1 (format nil"~A"(bomattr-get-Material (OLI::SD-INQ-CURR-PART)))) );;defun (defun my-tr-get-Revision() (setf hk_bt_name (oli::sd-inq-obj-basename (OLI::SD-INQ-CURR-PART))) ;;kBauteilname (setf hk_bt_name_laenge (length (oli::sd-inq-obj-basename (OLI::SD-INQ-CURR-PART))));;Stringlaenge (setf SHEET_TEXT1 (subseq hk_bt_name (- hk_bt_name_laenge 2)hk_bt_name_laenge)) );;defun (defun my-tr-get-Waermebehandlung() (setf SHEET_TEXT1 (bomattr-get-Waermebehandlung (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Benennung() (setf SHEET_TEXT1 (bomattr-get-Benennung (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Benennung2() (setf SHEET_TEXT1 (bomattr-get-Benennung2 (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Pos() (setf SHEET_TEXT1 (bomattr-get-Pos (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Menge() (setf SHEET_TEXT1 (bomattr-get-Menge (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Fertigmasse_Bestellnummer() (setf SHEET_TEXT1 (bomattr-get-Fertigmasse_Bestellnummer (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-hk_teile_legende() (setf SHEET_TEXT1 (bomattr-get-hk_teile_legende (OLI::SD-INQ-CURR-PART))) );;defun (defun my-tr-get-Projekt() (setf SHEET_TEXT1 (oli::sd-inq-obj-pathname (first (oli::sd-inq-obj-children (oli::sd-pathname-to-obj "/"))))) (setf lang (length SHEET_TEXT1)) (setf lang (- lang 8)) (setf SHEET_TEXT1 (subseq SHEET_TEXT1 7 lang)) );;defun (defun my-tr-get-entw-nummer() (setf SHEET_TEXT1 (oli::sd-inq-obj-pathname (first (oli::sd-inq-obj-children (oli::sd-pathname-to-obj "/"))))) (setf lang (length SHEET_TEXT1)) (setf SHEET_TEXT1 (subseq SHEET_TEXT1 (- lang 7) lang)) );;defun (defun my-tr-get-Teilenummer() (setf SHEET_TEXT1 (OLI::sd-inq-obj-basename (OLI::SD-INQ-CURR-PART))) (setf SHEET_TEXT1 (format nil "~A" (subseq SHEET_TEXT1 0 5))) (setf SHEET_TEXT1 (format nil "~A-~A" SHEET_TEXT1 (my-tr-get-pos))) (setf SHEET_TEXT7 (format nil "~A" SHEET_TEXT1)) );;defun (AM_TEXT_REFERENCE :tr_update)