乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 100|回复: 18

[编程交流] 多段线曲线设置为零ra

[复制链接]

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:26:25 | 显示全部楼层 |阅读模式
大家好。
 
是否有任何lisp可以将多段线的半径更改为零。
 
232629i17czsc7ocxrwhrx.png
 
232630v300o4pwlmfuk7yz.png
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 22:32:31 | 显示全部楼层
这是一项无需自定义工具即可解决的任务;请检查内置命令PEDIT及其Decurve选项。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:34:38 | 显示全部楼层
 
 
你好
 
decurve选项仅展平曲线。
如果可能,当我选择多段线时,它应该要求用户指定多段线中所有曲线的半径。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:37:49 | 显示全部楼层
 
下面是我使用带decurve选项的pedit得到的。
 
在pedit命令之前(decurve选项)
232632ka4xzfys1as62fzj.png
 
在pedit命令之后(decurve选项)
232637kc99m39lefw3qccw.png
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 22:42:15 | 显示全部楼层
或者,尝试使用“带多段线的圆角”选项,并将“半径”设置为0。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:43:37 | 显示全部楼层
 
这就是我现在正在做的,但如果我处理具有数百条曲线的很长的多段线,这需要时间。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 22:47:46 | 显示全部楼层
也许是这个。
 
  1. (defun c:Test (/ ss )
  2. (if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
  3. ((lambda (i / sn)
  4.     (while (setq sn (ssname ss (setq i (1+ i))))
  5.       (entmod (mapcar '(lambda (x) (if (eq (car x) 42) '(42 . 0.) x)) (entget sn)))
  6.       (entupd sn)))
  7.    -1)
  8. )
  9. (princ)
  10. )
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:52:24 | 显示全部楼层
 
嗨tharwat。。
 
结果与Mircea使用带decurve选项的pedit的建议相同。它只是将曲线展平在一条多段线中。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:53:40 | 显示全部楼层
 
嗨tharwat
 
你可能会对我想要实现的目标感到困惑。
 
lisp应该在下图中这样做。
 
232639ai6cdtdeenmr558r.jpg
回复

使用道具 举报

8

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 22:57:45 | 显示全部楼层
http://www.cadtutor.net/forum/archive/index.php/t-49834.html
  1. (defun c:FP (/ ss)
  2. ;; Alan J. Thompson, 08.31.10
  3. (initget 4)
  4. (setvar 'filletrad
  5. (cond
  6. ((getdist (strcat "\nSpecify fillet radius <" (rtos (getvar 'filletrad)) ">: ")))
  7. ((getvar 'filletrad))
  8. )
  9. )
  10. (if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
  11. ((lambda (i / e)
  12. (while (setq e (ssname ss (setq i (1+ i))))
  13. (command "_.fillet" "_polyline" e)
  14. )
  15. )
  16. -1
  17. )
  18. )
  19. (princ)
  20. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:13 , Processed in 1.053671 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表