明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 826|回复: 16

[提问] 圆角倒直角

[复制链接]
发表于 2024-9-23 10:40:28 | 显示全部楼层 |阅读模式
求大神帮忙写一下这个功能的代码,画圆角延伸线,圆角保留不变,最好是多段线的情况也可以用

本帖子中包含更多资源

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

x
发表于 2024-9-24 16:46:59 | 显示全部楼层
moranyuyan 发表于 2024-9-24 07:02
经测试,不起作用。

  • (defun c:tt6 (/ a b dx ename jd n pt ss ss1 zx1 zx2)
  •   (vl-load-com)
  •   (setq dx (entsel "\n请选择圆角:")
  •     pt (cadr dx)
  •     ename (car dx)
  •   )
  •   (setq n (fix (vlax-curve-getparamatpoint ename(vlax-curve-getclosestpointto ename pt))))
  •   (setq a (vlax-curve-getpointatparam  ename n))
  •   (setq b (vlax-curve-getpointatparam  ename (1+ n)))
  •   (command "_.copy" ename "" "0,0" "@")
  •   (command "explode" (entlast))
  •   (setq ss1 (ssget "p"))
  •   (setq ss (ssget "c" a b '((0 . "LINe"))))
  •   (setq zx1 (ssname ss 0))
  •   (setq zx2 (ssname ss 1))
  •   (setq jd  (vlax-invoke (vlax-ename->vla-object zx2) 'IntersectWith (vlax-ename->vla-object zx1) acExtendBoth))
  •   (command "line" a jd b "")
  •   (command "ERASE" ss1 "")
  •   (princ)
  • )

发表于 2024-9-23 14:58:28 | 显示全部楼层
本帖最后由 统一网名 于 2024-9-23 15:05 编辑

  • (defun c:tt6 (/ a b ename jd ss zx1 zx2)
  •   (vl-load-com)
  •   (setq ename (car (entsel "\n选择对象:")))
  •   (setq a (vlax-curve-getstartpoint ename))
  •   (setq  b (vlax-curve-getendpoint ename))
  •   (setq ss (ssget "c" a b '((0 . "LINe"))))
  •   (setq zx1 (ssname ss 0))
  •   (setq zx2 (ssname ss 1))
  •   (setq jd  (vlax-invoke (vlax-ename->vla-object zx2) 'IntersectWith (vlax-ename->vla-object zx1) acExtendBoth))
  •   ;(command "_extend" "" (list zx1 jd) "");延长原来直线到交点
  •   ;(command "_extend" "" (list zx2 jd) "");延长原来直线到交点
  • (command "line" a jd "")  
  • (command "line" b jd "")
  •   (princ)
  • )




本帖子中包含更多资源

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

x
发表于 2024-9-25 16:02:44 | 显示全部楼层
xzd716 发表于 2024-9-24 21:19
在Autocad2021版上试用,12#程序对多段线有效,对普通线无效;最前面程序对对普通线有效,对多段线无效。能 ...

加一个对象类型判断,类型是 "ARC"就用第一个,类型是 "LWPOLYLINE" 就用后一个
发表于 2024-9-23 10:56:29 | 显示全部楼层
全选所有外侧圆弧
或点选个别圆弧
比选线不是更省事?
发表于 2024-9-23 11:18:10 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2024-9-23 13:18 编辑

我也偶尔这样画,都是手工完成,觉得没必要用程序。如果经常这样干,有程序倒是比较方便

本帖子中包含更多资源

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

x
 楼主| 发表于 2024-9-23 16:46:46 | 显示全部楼层
自贡黄明儒 发表于 2024-9-23 11:18
我也偶尔这样画,都是手工完成,觉得没必要用程序。如果经常这样干,有程序倒是比较方便

大佬,这个怎么实现的?
 楼主| 发表于 2024-9-23 16:48:44 | 显示全部楼层
本帖最后由 624777395 于 2024-9-23 17:09 编辑
统一网名 发表于 2024-9-23 14:58(defun c:tt6 (/ a b ename jd ss zx1 zx2)  (vl-load-com)  (setq ename (car (entsel "\n ...

大佬,这个只对普通线有用,如果圆弧和相邻的线是连接在一起的多段线就识别不了
发表于 2024-9-23 19:21:53 | 显示全部楼层
624777395 发表于 2024-9-23 16:48
大佬,这个只对普通线有用,如果圆弧和相邻的线是连接在一起的多段线就识别不了

(setq ss (ssget "c" a b '((0 . "LINe,LWPOLYLINE")))) 改一行代码
发表于 2024-9-24 07:02:41 | 显示全部楼层
统一网名 发表于 2024-9-23 19:21
(setq ss (ssget "c" a b '((0 . "LINe,LWPOLYLINE")))) 改一行代码

经测试,不起作用。
发表于 2024-9-24 07:42:33 | 显示全部楼层
本帖最后由 统一网名 于 2024-9-24 07:43 编辑
moranyuyan 发表于 2024-9-24 07:02
经测试,不起作用。

有没有啥提示?我测试是没问题的,我的是cad 2020.

本帖子中包含更多资源

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

x
发表于 2024-9-24 09:23:03 | 显示全部楼层
统一网名 发表于 2024-9-24 07:42
有没有啥提示?我测试是没问题的,我的是cad 2020.

他的意思是圆弧和两边的线是一条完整的多段线,你理解的是三条线是断开的,直线段是直线或多段线,所以修改的那一行代码不起作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 20:45 , Processed in 0.207501 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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