Hi!
Ich bin gerade etwas unschlüssig, wie ich die Sache angehe.
Das Programm soll aus einer CSV-datei Layername,Farbe,Linientyp einlesen
Klar könnte man das einfach mit einem dwt-template berwerkstelligen. Es gibt aber in der Firma ein wenig Chaos, was das betrifft. Daher mein Vorhaben mit CSV-tabelle entsprechend Standards einzulesen
Probleme bereiten mir die Linientypen.
Ein Beispiel eines Linientypes, der folgendermassen definiert ist
Code:
*DRAN11,Draneringslinje ___\ ___\ ___\
A,1,["|",txt,s=0.5,r=60,x=0,y=0],-0.4,1
Hier wird ein vordefinierter textstyle, nämlich "txt" verwendet. Exisitiert der aber nicht in der Zeichnung wird bei folgender Funktion
für die eingelesene Lniendefinition DRAN11 nil zurückgegeben
Code:
;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com;;; (loadLinetype (vla-get-activedocument (vlax-get-acad-object)) "Divide" "acadiso.lin")
;;; returns: T if loaded else nil
(defun loadLinetype (doc LineTypeName FileName)
(if (and
(not (existLinetype doc LineTypeName))
(vl-catch-all-error-p
(vl-catch-all-apply
'vla-load
(list
(vla-get-Linetypes doc)
LineTypeName
FileName
)
)
)
)
nil
T
)
)
;;; (existLinetype (vla-get-activedocument (vlax-get-acad-object)) "Divide")
(defun existLinetype (doc LineTypeName / item loaded)
(vlax-for item (vla-get-linetypes doc)
(if (= (strcase (vla-get-name item)) (strcase LineTypeName))
(setq loaded T)
)
)
)
;;; (purgeAllLinetypes (vla-get-activedocument (vlax-get-acad-object)))
(defun purgeAllLinetypes (doc / item)
(vlax-for item (vla-get-linetypes doc)
(vl-catch-all-apply 'vla-delete (list item))
)
)
(loadLinetype (vla-get-activedocument (vlax-get-acad-object)) "DRAN11" (findfile "DRAN11.lin"))
Legt man manuell einen textstyle mit einem Namen "txt" an, dann funktioniert es auch mit dem einlesen des Linientypes.
Hatte jemand von Euch auch dass Problem und wie kann es behoben werden
------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP