shape

shape

Anonymous
Not applicable
219 Views
3 Replies
Message 1 of 4

shape

Anonymous
Not applicable
hi
I' have a Paleo-problem
if I have complex lines with shapes and I want to read propertiesI do so:
(setq de (entget entity-name)
ly (cdr (assoc 8 de))
s1 (cdr (assoc 48 de))
dy (tblsearch "LAYER" ly)
st (cdr (assoc 6 dy))
dt (entget (tblobjname "LTYPE" st)) ;linetype properties
ne (cdr (assoc 73 dt)) ;Numbers of elemets
le (cdr (assoc 40 dt)) ;length
dt (member (assoc 49 dt) dt) ; part of the list
)
foreach element I read
(setq shape (cdr (assoc 75 dt)))
shape is a number!
Where can I find in autocad the corresponding name of shape?

thank you
0 Likes
220 Views
3 Replies
Replies (3)
Message 2 of 4

Anonymous
Not applicable
If can help you!

(defun c:model_typline ( /
ent ent_dxf nam_tl def_tl prec m_adir m_abas nam_lin def_lin nbr_lin w_line lg_tiret tp_cpx cod_shx
ss_ent styl_tl file_shx scal_motif rot_motif x_motif y_motif str_motif)
(setvar "cmdecho" 0)
(while (not (setq ent (entsel "\nChoose an object with model of TypLine: "))))
(setq ent_dxf (entget (car ent)) nam_tl (assoc 6 ent_dxf))
(cond
((and (cdr nam_tl) (/= (cdr nam_tl) "ByLayer") (/= (cdr nam_tl) "ByBlock"))
(initget 4)
(setq
def_tl (entget (tblobjname "Ltype" (cdr nam_tl)))
prec (getint (strcat "\nDecimal precision <" (itoa (getvar "LUPREC")) ">: "))
)
(if (not prec) (setq prec (getvar "LUPREC")))
(setq
m_adir (getvar "angdir")
m_abas (getvar "angbase")
nam_lin (strcat "*" (cdr (assoc 2 def_tl)))
def_lin (strcat "," (cdr (assoc 3 def_tl)))
lg_lin (cdr (assoc 40 def_tl))
nbr_line (cdr (assoc 73 def_tl))
w_line "\nA"
)
(setvar "angdir" 0)
(setvar "angbase" 0)
(textscr)
(princ (strcat "\n" nam_lin def_lin))
(princ w_line)
(while (/= (caar def_tl) 49)
(setq def_tl (cdr def_tl))
)
(while def_tl
(cond
((eq 49 (caar def_tl))
(setq lg_tiret (cdar def_tl))
(princ (strcat "," (rtos lg_tiret 2 prec)))
)
((eq 74 (caar def_tl))
(setq tp_cpx (cdar def_tl))
)
((eq 75 (caar def_tl))
(setq cod_shx (cdar def_tl))
(cond
((zerop cod_shx)
(princ (strcat ",[\"" (cdr (assoc 9 def_tl)) "\""))
)
((eq tp_cpx 4)
(princ ",[*")
)
)
)
((eq 340 (caar def_tl))
(setq
ss_ent (entget (cdr (assoc 340 def_tl)))
styl_tl (cdr (assoc 2 ss_ent))
file_shx (cdr (assoc 3 ss_ent))
)
(if (eq styl_tl "")
(princ (strcat (itoa cod_shx) "," file_shx))
(princ (strcat "," styl_tl))
)
)
((eq 46 (caar def_tl))
(setq scal_motif (cdr (assoc 46 def_tl)))
(princ (strcat ",S=" (rtos scal_motif 2 prec)))
)
((eq 50 (caar def_tl))
(setq rot_motif (cdr (assoc 50 def_tl)))
(princ (strcat ",R=" (angtos rot_motif 0 prec)))
)
((eq 44 (caar def_tl))
(setq x_motif (cdr (assoc 44 def_tl)))
(princ (strcat ",x=" (rtos x_motif 2 prec)))
)
((eq 45 (caar def_tl))
(setq y_motif (cdr (assoc 45 def_tl)))
(princ (strcat ",y=" (rtos y_motif 2 prec) "]"))
)
((eq 9 (caar def_tl))
(setq str_motif (cdr (assoc 9 def_tl)))
)
)
(setq def_tl (cdr def_tl))
)
(setvar "angdir" m_adir)
(setvar "angbase" m_abas)
)
(T (princ "\nObject haven't a typline.Is ByLayer or ByBlock!"))
)
(setvar "cmdecho" 1)
(prin1)
)
0 Likes
Message 3 of 4

Anonymous
Not applicable
thank you but this is the same I've already done.
I don't understand how to take properties of shape using (assoc 75) in table
style otherwise (cdar def_tl) in your file, because this code is a number
and I don't find the corresponding name of the shape.


ha scritto nel messaggio
news:5148780@discussion.autodesk.com...
If can help you!

(defun c:model_typline ( /
ent ent_dxf nam_tl def_tl prec m_adir m_abas nam_lin def_lin nbr_lin w_line
lg_tiret tp_cpx cod_shx
ss_ent styl_tl file_shx scal_motif rot_motif x_motif y_motif str_motif)
(setvar "cmdecho" 0)
(while (not (setq ent (entsel "\nChoose an object with model of TypLine:
"))))
(setq ent_dxf (entget (car ent)) nam_tl (assoc 6 ent_dxf))
(cond
((and (cdr nam_tl) (/= (cdr nam_tl) "ByLayer") (/= (cdr nam_tl) "ByBlock"))
(initget 4)
(setq
def_tl (entget (tblobjname "Ltype" (cdr nam_tl)))
prec (getint (strcat "\nDecimal precision <" (itoa (getvar "LUPREC")) ">:
"))
)
(if (not prec) (setq prec (getvar "LUPREC")))
(setq
m_adir (getvar "angdir")
m_abas (getvar "angbase")
nam_lin (strcat "*" (cdr (assoc 2 def_tl)))
def_lin (strcat "," (cdr (assoc 3 def_tl)))
lg_lin (cdr (assoc 40 def_tl))
nbr_line (cdr (assoc 73 def_tl))
w_line "\nA"
)
(setvar "angdir" 0)
(setvar "angbase" 0)
(textscr)
(princ (strcat "\n" nam_lin def_lin))
(princ w_line)
(while (/= (caar def_tl) 49)
(setq def_tl (cdr def_tl))
)
(while def_tl
(cond
((eq 49 (caar def_tl))
(setq lg_tiret (cdar def_tl))
(princ (strcat "," (rtos lg_tiret 2 prec)))
)
((eq 74 (caar def_tl))
(setq tp_cpx (cdar def_tl))
)
((eq 75 (caar def_tl))
(setq cod_shx (cdar def_tl))
(cond
((zerop cod_shx)
(princ (strcat ",[\"" (cdr (assoc 9 def_tl)) "\""))
)
((eq tp_cpx 4)
(princ ",[*")
)
)
)
((eq 340 (caar def_tl))
(setq
ss_ent (entget (cdr (assoc 340 def_tl)))
styl_tl (cdr (assoc 2 ss_ent))
file_shx (cdr (assoc 3 ss_ent))
)
(if (eq styl_tl "")
(princ (strcat (itoa cod_shx) "," file_shx))
(princ (strcat "," styl_tl))
)
)
((eq 46 (caar def_tl))
(setq scal_motif (cdr (assoc 46 def_tl)))
(princ (strcat ",S=" (rtos scal_motif 2 prec)))
)
((eq 50 (caar def_tl))
(setq rot_motif (cdr (assoc 50 def_tl)))
(princ (strcat ",R=" (angtos rot_motif 0 prec)))
)
((eq 44 (caar def_tl))
(setq x_motif (cdr (assoc 44 def_tl)))
(princ (strcat ",x=" (rtos x_motif 2 prec)))
)
((eq 45 (caar def_tl))
(setq y_motif (cdr (assoc 45 def_tl)))
(princ (strcat ",y=" (rtos y_motif 2 prec) "]"))
)
((eq 9 (caar def_tl))
(setq str_motif (cdr (assoc 9 def_tl)))
)
)
(setq def_tl (cdr def_tl))
)
(setvar "angdir" m_adir)
(setvar "angbase" m_abas)
)
(T (princ "\nObject haven't a typline.Is ByLayer or ByBlock!"))
)
(setvar "cmdecho" 1)
(prin1)
)
0 Likes
Message 4 of 4

Anonymous
Not applicable
In your code try this, if code 75 isn't (zerop) AND code 74 > 0:

(entget (cdr (assoc 340 (entget (entget (tblobjname "LTYPE" st)))))

You find info here
0 Likes