rocking2008 发表于 2020-5-27 10:18:29

批量栏选倒角

http://bbs.mjtd.com/thread-108247-1-1.html这是荒野孤行老师的贴子,批量栏选倒角的,但是不是支持PLINE线型,只支持Line线型,有没有老师帮改下支持PLING和LINE线型。还有10个明经币了,全付了。谢谢。

mahuan1279 发表于 2020-9-15 17:31:14

本帖最后由 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))   
)
)

kcm163 发表于 2020-5-28 07:56:48

;;;;;;;;;;;;;;;批量倒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)
)

mahuan1279 发表于 2020-5-28 10:40:45

kcm163 发表于 2020-5-28 07:56
;;;;;;;;;;;;;;;批量倒R角
(defun sk_ffr(en sk_radius)
(setvar "FILLETRAD" sk_radius)


要求是达到这种效果。

oistre 发表于 2020-6-11 16:54:51


自己去研究吧,只能帮你到这里了。

edsion24 发表于 2020-6-13 00:15:13

2楼程序怎么执行完,没反应呢

999999 发表于 2020-9-7 23:55:32

路过顶一下,,,,

糖莲子 发表于 2020-9-15 17:12:22

mahuan1279 发表于 2020-5-28 10:40
要求是达到这种效果。

我也想要这种效果,请问你找到了吗:lol

vladimir 发表于 2023-2-7 09:18:06

非常不错的代码,谢谢楼主分享锕

qazxswk 发表于 2023-2-20 09:05:17

mahuan1279 发表于 2020-9-15 17:31
(defun c:tt()(setvar "osmode" 0)
(defun gx(p1 p2 p3)
(if (equal (* (- (cadr p2)(cadr p1)) (- ...

此代码在图形屏幕缩小时,容易出问题。
页: [1]
查看完整版本: 批量栏选倒角