明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5725|回复: 37

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

[复制链接]
发表于 2020-8-1 17:59 | 显示全部楼层 |阅读模式
就是多段线,圆弧,偏移某个方向,然后偏移的两头为闭合线,闭合后自动连接

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2020-11-7 15:46 | 显示全部楼层
(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#的吧
回复 支持 4 反对 0

使用道具 举报

发表于 2020-8-1 20:01 | 显示全部楼层
来个简单的偏移的两头为闭合线,自动闭合连接自己加上.
(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 ""))
)
回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-11 10:19 | 显示全部楼层
xmq1103 发表于 2020-8-10 19:12
这个应该可以满足吧

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

使用道具 举报

发表于 2020-8-11 14:27 | 显示全部楼层
依然小小鸟 发表于 2020-8-11 08:33
有没有双向偏移后 封口的程序呢

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

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

这个行不行呀

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-8-3 11:57 | 显示全部楼层
本帖最后由 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 11:59 | 显示全部楼层
这个是批量偏移的源代码,求大神加帮忙加一些两端偏移后两端可以自动封口的代码,,
(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))
  )
)
发表于 2020-8-3 12:11 | 显示全部楼层
我的帖子里面有
 楼主| 发表于 2020-8-3 12:48 | 显示全部楼层

刚刚逛了大神的空间,不知道是哪一下,小弟愚笨
发表于 2020-8-10 19:12 | 显示全部楼层
999999 发表于 2020-8-3 12:48
刚刚逛了大神的空间,不知道是哪一下,小弟愚笨

这个应该可以满足吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2020-8-10 19:57 | 显示全部楼层
xmq1103 发表于 2020-8-10 19:12
这个应该可以满足吧

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

评分

参与人数 1明经币 +1 收起 理由
xmq1103 + 1 淡定

查看全部评分

 楼主| 发表于 2020-8-10 23:27 | 显示全部楼层

可以了呢,谢谢大神的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 03:43 , Processed in 0.360636 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表