@arpansark0544TCX
Modified from solution to your previous request. Don't have time to modify code to work with lines and polylines so only use lines. You didn't have to open new post.
(defun c:add_C_lines ( / *error* duplicates ss e ent i ptlist p ovl old_expert dup)
(defun *error* ( msg )
(if (not (member msg '("Function cancelled" "quit / exit abort")))
(princ)
)
(setvar 'cmdecho 1)
(setvar 'expert old_expert)
(vla-endundomark adoc)
(princ)
)
(defun duplicates ( lst )
(if lst
(if (member (car lst) (cdr lst))
(cons (car lst) (duplicates (vl-remove (car lst) (cdr lst))))
(duplicates (vl-remove (car lst) (cdr lst)))
)
)
)
(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-endundomark adoc)
(vla-startundomark adoc)
(setq old_expert (getvar 'expert))
(setq ss (ssget "X" '((0 . "LINE")(8 . "EE-POWER CIRCUIT"))) i -1)
(setvar 'cmdecho 0)
(while (< (setq i (1+ i)) (sslength ss))
(setq
ent (entget (ssname ss i))
a (cdr (assoc 10 ent))
b (cdr (assoc 11 ent))
ptlist (cons (mapcar 'fix (mapcar '* '(0.5 0.5)(mapcar '+ a b))) ptlist)
)
)
(foreach pt (duplicates ptlist)
(setq ss (ssget "_C" (mapcar '+ '(15 15) pt) (mapcar '+ '(-15 -15) pt) '((0 . "LINE"))))
(setq i -1 cnt 0)
(while (< (setq i (1+ i)) (sslength ss))
(setq cnt (+ cnt (atoi(substr (cdr (assoc 6 (entget(ssname ss i))))2))))
(if (>= i 1)(entdel (ssname ss i)))
)
(setq e (ssname ss 0))
(command "_.linetype" "load" (strcat "C" (itoa cnt)) "acad.lin" "")
(command "_.chprop" e "" "LTYPE" (strcat "C" (itoa cnt)) "")
)
(setvar 'expert old_expert)
(setvar 'cmdecho 0)
(vla-endundomark adoc)
(princ "\nDone!")
(princ)
)
Miljenko Hatlak

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.