10
18
8
初露锋芒
;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)) ))
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
微信公众平台
扫描访问手机版
点击图片下载手机App
|关于我们|小黑屋|乐筑天下 繁体中文
GMT+8, 2025-3-14 13:10 , Processed in 0.436791 second(s), 59 queries .
© 2020-2025 乐筑天下
在线时间:10:00-17:00
暂无
扫一扫,关注我们
帮助中心
关于我们
下载APP客户端