999999 发表于 2020-8-1 17:59:51

有没有大神有多段线偏移然后两端闭合的插件

就是多段线,圆弧,偏移某个方向,然后偏移的两头为闭合线,闭合后自动连接

流动的清泉 发表于 2020-11-7 15:46:25

(defun c:gg5 ( /ss i e pts ob width pac y x sss)
      (SETQ OS (GETVAR "OSMODE"))
      (setvar "cmdecho" 0)
      (setq pac (getvar 'peditaccept))
      (setvar 'peditaccept 1)
      (if (not width) (setq width 1.00))
      (setq width (cond ((getdist (strcat "\n 输入偏移宽度 <" (rtos width 2 2) ">: "))) (width)))
(if (setq ss (ssget '((0 . "LWPOLYLINE,LINE"))))
          (repeat (setq i (sslength ss))
                  (setq e (ssname ss (Setq i (1- i))) sss (ssadd))
                  (setq pts (mapcar '(lambda (y) (list (vlax-curve-getStartPoint y) (vlax-curve-getEndPoint y)))
                            (mapcar 'car (mapcar '(lambda (x)
                                                                   (setq ob (vlax-invoke (vlax-ename->vla-object e) 'Offset x))
                                                                               (ssadd (entlast) sss) ob ) (list (setq h (* 0.5 width)) (- h))))))

                  (mapcar '(lambda (k l) (entmakex (list (cons 0 "LINE") (cons 10 k) (cons 11 l)))
                                       (ssadd (entlast) sss))
                  (car pts)(cadr pts))
                  (command "_.pedit" "m" sss """j" 0.0 "")
                  (entdel e)))
(setvar 'peditaccept pac)
      (SETVAR "OSMODE" OS )
(princ)
) 没币的帮你们坐下好事,你们要感谢就感谢14#的吧

999999 发表于 2020-8-3 11:59:27

这个是批量偏移的源代码,求大神加帮忙加一些两端偏移后两端可以自动封口的代码,,:handshake
(defun c:ooo( / en m n pon ename et ppp ouse )
(setvar "cmdecho" 1)
(COMMAND "OFFSET" PAUSE "")
(prompt "\n Select Objects to Offset: ")
(setq en (ssget))
(setq m (sslength en ))
(setq n 0)
(setq pon (getpoint "\n Please Select a Point:"))
(repeat m
    (setq ename (ssname en n))
    (setq et(entget ename))
    (setq ppp (cdr (assoc 10 et)))
    (setq ouse (list ename ppp))
    (command "offset" "" ouse pon "")
    (setq n (+ n 1))
)
)

kwok 发表于 2020-8-1 20:01:06

来个简单的偏移的两头为闭合线,自动闭合连接自己加上.
(defun c:tt (/ofd en pt1 p1 p2 p3 p4 )
(setq ofd (getdist "\n偏移距离:"))
(while
(setq EN(car(entsel"\n请选开口多段线对象:")))
(setq pt1 (getpoint "\n指定偏移方向 :"))
(command "offset" ofd en "non" pt1 "")
(setq en1 (entlast))
(setq p1(vlax-curve-getstartpoint en)
      p2(vlax-curve-getendpoint en)
      p3(vlax-curve-getstartpoint en1)
      p4(vlax-curve-getendpoint en1))
(command ".pline" "non"p1 "non"p3 "")
(command ".pline" "non"p2 "non"p4 ""))
)

swb4420 发表于 2020-9-11 10:19:06

xmq1103 发表于 2020-8-10 19:12
这个应该可以满足吧

偏移,封口 非常完美了。
如果在增加一项,选择结束操作,或转换成PL线,并合并成闭合的空间,就更完美了,一般来说偏移后也是为了填充方便。(CAD填充选择边线,会比点选更安全。)

xmq1103 发表于 2020-8-11 14:27:53

依然小小鸟 发表于 2020-8-11 08:33
有没有双向偏移后 封口的程序呢

双向偏移并封口类似于单线变双线

xmq1103 发表于 2020-8-10 22:41:04

999999 发表于 2020-8-10 19:57
大神,我用了一下您的插件,和上面的大神的效果一样,能不能帮忙增加一个偏移后,自动连接的代码呢,谢谢

这个行不行呀

999999 发表于 2020-8-3 11:57:13

本帖最后由 999999 于 2020-8-4 08:28 编辑

kwok 发表于 2020-8-1 20:01
来个简单的偏移的两头为闭合线,自动闭合连接自己加上.
(defun c:tt (/ofd en pt1 p1 p2 p3 p4 )
(setq ...
谢谢大神,试了一下,然后我的CAD文字显示都是乱码

依然小小鸟 发表于 2020-8-3 12:11:39

我的帖子里面有

999999 发表于 2020-8-3 12:48:46

依然小小鸟 发表于 2020-8-3 12:11
我的帖子里面有

刚刚逛了大神的空间,不知道是哪一下,小弟愚笨:$

xmq1103 发表于 2020-8-10 19:12:18

999999 发表于 2020-8-3 12:48
刚刚逛了大神的空间,不知道是哪一下,小弟愚笨

这个应该可以满足吧

999999 发表于 2020-8-10 19:57:40

xmq1103 发表于 2020-8-10 19:12
这个应该可以满足吧

大神,我用了一下您的插件,和上面的大神的效果一样,能不能帮忙增加一个偏移后,自动连接的代码呢,谢谢

999999 发表于 2020-8-10 23:27:07

xmq1103 发表于 2020-8-10 22:41
这个行不行呀

可以了呢,谢谢大神的帮助
页: [1] 2 3 4
查看完整版本: 有没有大神有多段线偏移然后两端闭合的插件