panliang9
发表于 2021-1-28 08:59:25
谢谢楼主分享!
sn2200
发表于 2021-1-28 13:46:49
本帖最后由 sn2200 于 2021-1-28 13:50 编辑
命令可用,但命令行文字提示为乱码“妗嗛妗嗛
999999
发表于 2021-1-28 17:55:05
顶起来,,好贴
edsion24
发表于 2021-1-29 08:46:28
能否给上个动图 不太会用这个命令呢
xj6019
发表于 2021-1-29 09:42:54
edsion24 发表于 2021-1-29 08:46
能否给上个动图 不太会用这个命令呢
论坛还没修复图片和文件都传不了啦
magicheno
发表于 2021-1-30 18:45:42
http://www.tietuku.com/
可以在这个网站上上传图片,然后外链图片
liweitung
发表于 2021-1-31 12:43:00
很实用,谢谢大侠了!
magicheno
发表于 2021-2-1 15:09:47
magicheno 发表于 2021-1-26 18:29
大侠如果想把这个多段线功能打断的单独列出来要怎么操作呢,我乱整了下好像不大行,还有就是如果我想直接空 ...
大侠有空帮我看看这个问题呢
start4444
发表于 2021-2-1 18:52:10
magicheno 发表于 2021-2-1 15:09
大侠有空帮我看看这个问题呢
(defun c:tt5 (/ entname1 entname2 fi1 fi2 i key key2 loop lst1 lst2 p1 p1a p2 p3 p4 pa1 pa2 pb1 pb2 ptx ptx1 ptx2 r ss1 ss2);;批量倒角-多段线有效
(vl-load-com)
(setvar "cmdecho" 0)
(command "undo" "be")
(initget "F")
(setq p1 (getpoint"\n框选起点[线选(F)]:"))
(if (= p1 "F") (setq p3 (getpoint"\n线选起点1:") p1 (getpoint p3 "\n线选终点1:") p1a (getpoint"\n线选起点2:") p4 (getpoint p1a "\n线选终点2:") ss1 (ssget "f" (list p1 p3) '((0 . "*line"))) ss2 (ssget "f" (list p4 p1a) '((0 . "*line"))) key2 1)
(setq p2 (getcorner p1"\n终点:") p3 (list (car p1) (cadr p2)) p4 (list (car p2) (cadr p1)) ss1 (ssget "f" (list p1 p3) '((0 . "*line"))) ss2 (ssget "f" (list p1 p4) '((0 . "*line"))) key2 2)
);if
(setq loop T r 0)
(while loop
(setq i 0)
(repeat (sslength ss1)
(setq entname1 (ssname ss1 i) entname2 (ssname ss2 i))
(setq ptx1 (cadar (cdddr (car (ssnamex ss1 i)))))
(setq ptx2 (cadar (cdddr (car (ssnamex ss2 i)))))
(if (and (equal (cdr (assoc 0 (entget entname1))) "LWPOLYLINE") (equal (cdr (assoc 0 (entget entname2))) "LWPOLYLINE"))
(setq fi1 ptx1 fi2 ptx2)
(setq fi1 (list entname1 ptx1) fi2 (list entname2 ptx2))
);if
(command "FILLET" "r" r)
(command "FILLET" "non"fi1 "non"fi2)
(setq i (1+ i))
);re
(setq key (getstring "\n连接(K)/默认断开(空格)]:"))
(cond
((= key "k") (setq loop nil))
(T (if (= key2 1) (setq ss1 (ssget "f" (list p1 p3) '((0 . "LWPOLYLINE"))) ss2 (ssget "f" (list p4 p1a) '((0 . "LWPOLYLINE")))) (setq ss1 (ssget "f" (list p1 p3) '((0 . "LWPOLYLINE"))) ss2 (ssget "f" (list p1 p4) '((0 . "LWPOLYLINE")))))
(if ss1
(progn
(setq i 0)
(repeat (sslength ss1)
(setq entname1 (ssname ss1 i) entname2 (ssname ss2 i))
(setq ptx1 (cadar (cdddr (car (ssnamex ss1 i)))) lst1 (HH:pickSegEndPt entname1 ptx1) pa1 (car lst1) pb1 (cadr lst1))
(setq ptx2 (cadar (cdddr (car (ssnamex ss2 i)))) lst2 (HH:pickSegEndPt entname2 ptx2) pa2 (car lst2) pb2 (cadr lst2))
(setq ptx (inters pa1 pb1 pa2 pb2 nil))
(if (= r 0) (command "BREAK" entname1 "non" ptx "non" ptx)
(command "BREAK" entname1 "non" (vlax-curve-getclosestpointto entname1 (trans ptx 1 0)) "non" (vlax-curve-getclosestpointto entname1 (trans ptx 1 0)))
);if
(setq i (1+ i))
);re
);pr
);if
(setq loop nil)
)
);cond
);while
(command "undo" "e")
(setvar "cmdecho" 1)
(princ)
)
;;[功能] 多段线所点击子段的两端点列表By 自贡黄明儒
;;示例(HH:pickSegEndPt (car(setq en(entsel))) (cadr en))
(defun HH:pickSegEndPt (obj p / pp n)
(setq pp (vlax-curve-getclosestpointto obj (trans p 1 0))
n(fix (vlax-curve-getparamatpoint obj pp))
)
(list (vlax-curve-getPointAtParam obj n)
(vlax-curve-getPointAtParam obj (1+ n))
)
)
magicheno
发表于 2021-2-1 23:22:45
start4444 发表于 2021-2-1 18:52
(defun c:tt5 (/ entname1 entname2 fi1 fi2 i key key2 loop lst1 lst2 p1 p1a p2 p3 p4 pa1 pa2 pb1 pb ...
感谢大侠,