thanhdattdk 发表于 2022-7-5 16:29:38

**错误:错误的参数类型: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]
查看完整版本: **错误:错误的参数类型:l