批量栏选倒角
http://bbs.mjtd.com/thread-108247-1-1.html这是荒野孤行老师的贴子,批量栏选倒角的,但是不是支持PLINE线型,只支持Line线型,有没有老师帮改下支持PLING和LINE线型。还有10个明经币了,全付了。谢谢。本帖最后由 mahuan1279 于 2020-11-9 14:35 编辑
糖莲子 发表于 2020-9-15 17:12
我也想要这种效果,请问你找到了吗
(defun c:tt()(setvar "osmode" 0)
(defun gx(p1 p2 p3)
(if (equal (* (- (cadr p2)(cadr p1)) (- (car p3)(car p1))) (* (- (cadr p3)(cadr p1)) (- (car p2)(car p1))) 0.0001)
t
nil
)
)
(setq linelst (ssget '((0 . "LINE,LWPOLYLINE"))))
(setq n (sslength linelst) pts nil i 0)
(setq pt (getpoint "请输入辅助点"))
(while (< i n)
(setq pts (cons (vlax-curve-getClosestPointTo (vlax-ename->vla-object (ssname linelst i)) pt t) pts))
(setq i (+ i 1))
)
(setq pe (car pts) lst1 nil lst2 nil)
(foreach ez pts
(if (gx pt pe ez)
(setq lst1 (cons ez lst1))
(setq lst2 (cons ez lst2))
)
)
(setq lst1 (vl-sort lst1 '(lambda (pa pb) (< (distance pt pa) (distance pt pb)))))
(setq lst2 (vl-sort lst2 '(lambda (px py) (< (distance pt px) (distance pt py)))))
(setq nmin (min (length lst1) (length lst2)) j 0)
(while (< j nmin)
(command "FILLET" (nth j lst1)(nth j lst2))
(setq j (+ j 1))
)
)
;;;;;;;;;;;;;;;批量倒R角
(defun sk_ffr(en sk_radius)
(setvar "FILLETRAD" sk_radius)
(command "_.FILLET" "P" en)
)
(defun c:ffr(/ sk_radius1 ss en)
(setq sk_radius (getvar "FILLETRAD"))
(if (setq sk_radius1
(getdist (strcat "\n请指定圆角半径<" (rtos sk_radius) ">:"))
)
(setq sk_radius sk_radius1)
)
(if (setq ss(ssget '((0 . "*polyline"))))
(progn
(setq sk_echo1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(while (setq en(ssname ss 0))
(sk_ffr en sk_radius)
(setq ss (ssdel en ss))
)
(if sk_echo1 (setvar "cmdecho" sk_echo1))
)
)
(princ)
)
kcm163 发表于 2020-5-28 07:56
;;;;;;;;;;;;;;;批量倒R角
(defun sk_ffr(en sk_radius)
(setvar "FILLETRAD" sk_radius)
要求是达到这种效果。
自己去研究吧,只能帮你到这里了。 2楼程序怎么执行完,没反应呢
路过顶一下,,,, mahuan1279 发表于 2020-5-28 10:40
要求是达到这种效果。
我也想要这种效果,请问你找到了吗:lol 非常不错的代码,谢谢楼主分享锕 mahuan1279 发表于 2020-9-15 17:31
(defun c:tt()(setvar "osmode" 0)
(defun gx(p1 p2 p3)
(if (equal (* (- (cadr p2)(cadr p1)) (- ...
此代码在图形屏幕缩小时,容易出问题。
页:
[1]