作用是边长自动注记(defunmkptlst(pen1/bhbjptlstpenpelptipt1pt2);;取出"polyline"或lwpolyline的点位,以表的结构返回(if(=(cdr(assoc0(entgetpen1)))"POLYLINE")(progn(setqptlst'...
作用是边长自动注记
(defun mkptlst (pen1 / bhbj ptlst pen pel pt i pt1 pt2)
;;取出"polyline" 或 lwpolyline的点位,以表的结构返回
(if( = ( cdr (assoc 0 (entget pen1))) "POLYLINE")
(progn (setq ptlst '())
(setq pen (entnext pen1))
(while (/ = "SEQEND" (cdr(assoc 0 (entget pen))))
(setq pel (entget pen))
(setq pt ( cdr (assoc 10 pel)))
(setq ptlst (append ptlst (list pt)))
(setq pen (entnext pen))
)
(setq bhbj ( cdr (assoc 70 (entget pen1))))
(if( = (logand bhbj 1) 1)
(setq ptlst (mkptlst stm))
(setq n (length ptlst))
(setq j 0)
(while ( < j ( - n 1))
(setq pt1 (nth j ptlst))