**错误:错误的参数类型:l
大家好,我有一个问题,希望大家帮我,我想画一个土工布贴在单位。例:图片有误。希望大家帮助我。这是我的密码
;lisp trai vai dia
;=================================
(defun MakeLWPolyline (listpoint closed Linetype LTScale Layer Color xdata / Lst)
(setq Lst (list '(0 . "LWPOLYLINE")'(100 . "AcDbEntity")
(cons 8 (if Layer Layer (getvar "Clayer")))
(cons 6 (if Linetype Linetype "bylayer"))
(cons 48 (if LTScale LTScale 1))
(cons 62 (if Color Color 256))
'(100 . "AcDbPolyline")
(cons 90 (length listpoint))
(cons 70 (if closed 1 0))))
(foreach PP listpoint
(setq Lst (append Lst (list (cons 10 PP))))
)
(if xdata (setq Lst (append lst (list (cons -3 (list xdata))))))
(entmakex Lst)
);end
;===================================
(defun get_lst_vertex (PL / lst)
(setq lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 10 (car x))) (entget PL))))
(if (< (car (car lst)) (car (last lst))) lst (reverse lst))
)
;=============================================================================================
(defun c:T1 ( / cmd ss_coc ins_point ss lst_ver len i)
(setvar "CMDECHO" 0)
(prompt "\nQuet chon trac ngang: ")
(setq ss_coc (ssget '((0 . "TEXT") (8 . "entdauco") (1 . "C**:*"))))
(if ss_coc
(progn
(setq ss_coc (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss_coc))))
(foreach coc ss_coc
(setq ins_point (cdr (assoc 11 (entget coc)))
ss (ssget "_W" (list (- (car ins_point) 17) (- (cadr ins_point) 15)) (list (+ (car ins_point) 17) (cadr ins_point))
(list (cons 8 "DuongTaoPhang")))
;tap layer Duong tao phang
ss1 (ssget "_W" (list (- (car ins_point) 17) (- (cadr ins_point) 15)) (list (+ (car ins_point) 17) (cadr ins_point))
(list (cons 8 "Tuyen_KhuonTaluy"))))
;tim so giao diem cua a2 tap hop tren;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq k 0)
(while (setq e (ssname ss k))
(setq ss1 (ssadd e ss1))
(setq k (1+ k))
)
(setq ma (LM:IntersectionsinSet ss1))
(setq len1 (length ma))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if ss
(progn
(setq ss (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
ss (vl-sort ss '(lambda (x y)(< (car (car (get_lst_vertex x))) (car (car (get_lst_vertex y))))))
)
(setq lst_ver (get_lst_vertex (car ss)))
(cond
((> (setq len (length ss)) 1)
(setq i 0)
(repeat (- len 1)
(setq lst_ver (reverse (cdr (reverse lst_ver)))
lst_ver (append lst_ver (cdr (get_lst_vertex (nth (setq i (1+ i)) ss))))
)
)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;so sanh dieu kien so giao diem va khoang cach;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (= len1 2) ;ham if1
(progn
(setq lst_ver
(append
(list (list (1+ (car (car lst_ver))) (cadr (car lst_ver))))
lst_ver
(list (list (1- (car (last lst_ver))) (cadr (last lst_ver))))
))
);end progn
(progn
(while (setq a1 (car ma))
(setq a2 (entnext a1))
(setq KC (distance a1 a2))
(if (> KC 10) (command ".PLINE" a1 a2))
);end while
);end progn
);end if1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(MakeLWPolyline lst_ver nil nil nil "Vai_dia_KT" 4 nil)
)
)
)
)
)
(princ)
)
;=============================================================================================
(defun LM:IntersectionsinSet ( ss / a b i j l )
(setq i (sslength ss))
(while (not (minusp (setq j (1- i) i (1- i))))
(setq a (vlax-ename->vla-object (ssname ss i)))
(while (not (minusp (setq j (1- j))))
(setq b (vlax-ename->vla-object (ssname ss j))
l (cons (LM:GroupByNum (vlax-invoke a 'IntersectWith b acExtendNone) 3) l)
)
)
)
(apply 'append l)
)
(defun LM:GroupByNum ( l n / r)
(if l
(cons
(reverse (repeat n (setq r (cons (car l) r) l (cdr l)) r))
(LM:GroupByNum l n)
)
)
)
页:
[1]