明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1337|回复: 10

[提问] 自动向外偏移一定距离的代码怎么写

[复制链接]
发表于 2023-12-30 10:42:29 | 显示全部楼层 |阅读模式
图形由L和SPL命令产生的,想达到向外偏移一定距离,不删除原来的图形,自动连成封闭图形,新产生的图形在现在的层。

如下图所示:

本帖子中包含更多资源

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

x
发表于 2023-12-30 11:11:27 | 显示全部楼层
原来的是不是封闭图形?
 楼主| 发表于 2023-12-30 11:12:19 | 显示全部楼层
liuhe 发表于 2023-12-30 11:11
原来的是不是封闭图形?

不是封闭图形,一根一根画的
发表于 2023-12-30 11:27:50 | 显示全部楼层
述学 发表于 2023-12-30 11:12
不是封闭图形,一根一根画的

那有点麻烦了,建议你先把图形封闭,再用vla- offsent      偏移
发表于 2023-12-31 19:48:31 | 显示全部楼层
我的办法,先把spl转为pl,pe命令实现,然后把原始图形闭合,用offset命令偏移图形,offset里面有个选项,可以改变偏移后的图层为当前层,


命令: o OFFSET
当前设置: 删除源=否  图层=源  OFFSETGAPTYPE=0
指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>: l
输入偏移对象的图层选项 [当前(C)/源(S)] <源>: c

 楼主| 发表于 2023-12-31 21:45:13 | 显示全部楼层
hhh454 发表于 2023-12-31 19:48
我的办法,先把spl转为pl,pe命令实现,然后把原始图形闭合,用offset命令偏移图形,offset里面有个选项, ...

主要是offset命令后向外偏移的图形角度是圆角,不是像向内偏移的角。加一步先闭合也是可以的呢。我手动操作的是用offset每条线偏移出去,再用F命令两两闭合,就是有点繁琐。

发表于 2024-1-9 15:20:33 | 显示全部楼层
不难画出来,pe合并成多段线,然后偏移一下你指定得距离,
ex分解一下就好了,想用代码实现的话,还得看你是往哪个方向偏移
发表于 2024-1-9 17:40:46 | 显示全部楼层
(defun c:11(/ ss)
(if (not dist0) (setq dist0 30))
(setq dist (getreal (strcat "\n请输入偏移距离<初始值:"(rtos dist0)">")))
(if (null dist)(setq dist dist0)(setq dist0 dist))
(setq ss (ssget ":s" '((0 . "CIRCLE,ARC,*LINE"))))
(vl-cmdf "peditaccept" 1 "pedit" "m" ss "" "j" "" "" "peditaccept" 0)
(vla-offset (vlax-ename->vla-object (entlast)) dist)
(princ))
 楼主| 发表于 2024-1-10 20:53:38 | 显示全部楼层
qazxswk 发表于 2024-1-9 17:40
(defun c:11(/ ss)
(if (not dist0) (setq dist0 30))
(setq dist (getreal (strcat "\n请输入偏移距离") ...

向外偏移是圆角,这个问题可以解决不?需要像向内的直角那样的角。
发表于 2024-1-10 21:12:10 | 显示全部楼层
(defun c:11(/ ss)
(if (not dist0) (setq dist0 30))
(setq dist (getreal (strcat "\n请输入偏移距离<初始值:"(rtos dist0)">")))
(setvar "filletrad" (getreal(strcat "\n指定圆角半径:")))
(if (null dist)(setq dist dist0)(setq dist0 dist))
(if(setq ss (ssget ":s" '((0 . "CIRCLE,ARC,*LINE"))))
(progn
(vl-cmdf "peditaccept" 1 "pedit" "m" ss "" "j" "" "" "peditaccept" 0)
(vla-offset (vlax-ename->vla-object (entlast)) dist)
(vl-cmdf "fillet" "p" (entlast))
))
(princ))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 23:15 , Processed in 0.224604 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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