Gut zu Wissen: Strukturliste mit Modellname als CSV ausgeben – Creo Elements/Direct #29Problem
Beim Standardbefehl „Baum schreiben“ werden im Strukturbrowser nicht automatisch zusätzliche Informationen wie Modellname, Material, PartNo oder BOM_ATTR ausgegeben.
Lösung
Die Ausgabe lässt sich über einen eigenen Browser-Interrogator anpassen. Entscheidend ist:
Code:
sd-browser-add-interrogator
:interrogator-type :tree-print-name
Ein einfaches Beispiel für Teilename plus Modellname:
Code:
(defun my-print-tree (node name)
(declare (ignore name))
(format nil "~A -- ~A"
(BrowserNode-objPname node)
(or
(sd-inq-obj-contents-name
(sd-pathname-to-obj
(BrowserNode-objPath node)))
"(model name missing)")
)
)(sd-browser-add-interrogator "parcel-gbrowser"
:interrogator-type :tree-print-name
:interrogator-func 'my-print-tree)
Kompletten Baum expandieren
Code:
(oli:sd-browser-exec-cmd "parcel-gbrowser" :EXPAND-TREE)
Strukturbaum direkt in CSV schreiben
Code:
(oli:sd-browser-print-tree
"parcel-gbrowser"
:file "c:/temp/name-der-baugruppe.csv"
:mode :Overwrite)
Hinweise
- Die Datei am besten direkt mit der Endung .csv speichern.
- Excel kann Dezimalpunkte je nach Ländereinstellung falsch interpretieren.
- Was im Browser angezeigt wird, ist nicht automatisch identisch mit dem, was über my-print-tree ausgegeben wird.
- BOM_ATTR-Werte wie Material oder PartNo müssen explizit im LISP-Code abgefragt und in die Ausgabe eingebaut werden.
- Bei Konfigurationen kann es je nach LISP-Version zu Fehlern kommen; hier sollte eine aktuelle bzw. angepasste Version verwendet werden.
Kurzfassung
Mit sd-browser-add-interrogator wird definiert, welche Werte beim „Baum schreiben“ ausgegeben werden. Mit sd-browser-exec-cmd kann der Baum expandiert und mit sd-browser-print-tree automatisiert als CSV gespeichert werden.