大神您好,我想安装一下您这个插件,把代码复制进去后输入@@弹不出面板,是怎么回事呀
对于有弧线的处理还不完善。
CAD什么版本?需要关闭360安全卫士之类的。
加签名处QQ群详聊
vitalgg 发表于 2022-11-15 11:27
对于有弧线的处理还不完善。
CAD什么版本?需要关闭360安全卫士之类的。
好的呢,刚刚加群了 楼主找到了没有呢? (defun c:FR (/ss pts i ee :ST:SS-Boundingbox :ST:SS->List :ST:SS->ListVla LM:ssget os ov)
(setq
os '(PeditAccept cmdecho)
ov (mapcar 'getvar os)
)
(mapcar 'setvar os '(1 0))
(defun LM:ssget ( msg arg / sel )
(princ msg)
(setvar 'nomutt 1)
(setq sel (vl-catch-all-apply 'ssget arg))
(setvar 'nomutt 0)
(if (not (vl-catch-all-error-p sel)) sel)
)
;Return list ename from ssget
(defun :ST:SS->List(ss / n e l)
(setq n (sslength ss))
(while (setq e (ssname ss (setq n (1- n))))
(setq l (cons e l))
)
)
;Return list vla Object from s
(defun :ST:SS->ListVla(s)(mapcar 'vlax-ename->vla-object (:ST:SS->List s)))
(defun :ST:SS-Boundingbox ( lst / llp ls1 ls2 urp )
(foreach obj lst
(vla-getboundingbox obj 'llp 'urp)
(setq ls1 (cons (vlax-safearray->list llp) ls1)
ls2 (cons (vlax-safearray->list urp) ls2)
)
)
(mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list ls1 ls2))
)
(or*newrad* (setq *newrad* 1))
(setq *newrad* (getdist (strcat "\nB\U+00E1n k\U+00EDnh fillet <" (rtos *newrad*) "> :")))
(setvar "FilletRad" *newrad*)
;(setq ss (ssget '(( 0 . "LINE,ARC,LWPOLYLINE"))))
(setq ss (LM:ssget "Select Line, Arc, Pline to fillet :" (list '(( 0 . "LINE,ARC,LWPOLYLINE")))))
(setq pts (:ST:SS-Boundingbox (:ST:SS->ListVla ss ))) ; ET func
(command "Pedit" "M" ss "" "J" "" "")
(setq ss (ssget "C" (car pts) (cadr pts) '(( 0 . "LWPOLYLINE")))
i0
)
(while (setq ee (ssname ss i))
(command "Fillet" "P" ee)
(setq i (1+ i))
)
(mapcar 'setvar os ov)
(princ)
) kwok 发表于 2022-11-14 13:54
FILLET 空格 p 空格。基本是这样,加个ssget和循环处理就行了。
大佬,多线段,选择圆弧,框选批量修改相同圆弧,如何改? 月下闲人 发表于 2022-11-24 12:25
(defun c:FR (/ss pts i ee :ST:SS-Boundingbox :ST:SS->List :ST:SS->ListVla LM:ssget os ov)
(setq
...
不要生成封闭的多段线,怎么处理?谢谢 (while (setq ee (ssname ss i))
(command "Fillet" "P" ee)
(command "explode" ee)
(setq i (1+ i))
)
加了一行 (command "explode" ee)把封闭的多段线给分解了 hnzkhyyl 发表于 2023-12-26 15:39
(while (setq ee (ssname ss i))
(command "Fillet" "P" ee)
(command "explode" ee)
能不能用记住上次输入的R值,直接回车再次重复执行,输入则是新值
页:
1
[2]