乐筑天下

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

[编程交流] 两行之间的外向

[复制链接]

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:08:16 | 显示全部楼层
与我提出的多边形略有不同-现在直接从2个半径的中间距离获取点。。。
 
  1. (defun c:trim_between_2_concentic_circles ( / inner_circle outer_circle c1 c2 c r1 r2 r k p pl )
  2. (setq inner_circle (car (entsel "\nPick inner circle")))
  3. (setq outer_circle (car (entsel "\nPick outer circle")))
  4. (setq c1 (cdr (assoc 10 (entget inner_circle))))
  5. (setq c2 (cdr (assoc 10 (entget outer_circle))))
  6. (setq c (mapcar '* (mapcar '+ c1 c2) '(0.5 0.5 0.5)))
  7. (setq r1 (cdr (assoc 40 (entget inner_circle))))
  8. (setq r2 (cdr (assoc 40 (entget outer_circle))))
  9. (setq r (/ (+ r1 r2) 2.0))
  10. (setq k -1.0)
  11. (repeat 360
  12.    (setq p (polar c (cvunit (setq k (1+ k)) "degrees" "radians") r))
  13.    (setq pl (cons p pl))
  14. )
  15. (setq pl (cons (polar c 0.0 r) pl))
  16. (command "_.trim" inner_circle outer_circle "" "_F")
  17. (foreach p pl
  18.    (command p)
  19. )
  20. (while (> (getvar 'cmdactive) 0) (command ""))
  21. (princ)
  22. )
  23. (defun c:tb2cc nil (c:trim_between_2_concentic_circles))
HTH,M.R。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 23:10:50 | 显示全部楼层
谢谢你,马尔科。工作起来很有魅力。
回复

使用道具 举报

2

主题

15

帖子

13

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:15:14 | 显示全部楼层
 
没关系,没问题。
 
我在OMEGA ThundeR提供的链接上找到了LISP代码,并进行了尝试。但它只能修剪与闭合对象相交的线。仅供参考,我画这个圆只是为了让人们理解我的查询,否则我有一组开放的多段线,包括圆弧和直线(不规则),因此MEXTRIM或多边形方法(由Marko Ribar先生描述)将不起作用。
如果你们还有什么可以做的,我将不胜感激。
 
非常感谢。
 
当做
 
 
Sidhu公司
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 23:15:43 | 显示全部楼层
sidhu:你没有看到marko上一篇文章中包含的新lisp程序吗?它满足了你的要求。过来看。
回复

使用道具 举报

2

主题

15

帖子

13

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:18:53 | 显示全部楼层
 
先生
 
它工作正常,但仍然需要指定围栏路径。这是我需要的90%。如果您只能稍微编辑它并删除围栏功能,那么它将修剪圆圈/多段线1和圆圈/多段线2之间的每条线。
 
 
当做
 
 
Sidhu公司
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:23:08 | 显示全部楼层
sidhu412,如果您的同心圆位于与WCS不同的某些UCS中,我建议您使用此修订版(还添加了OSMODE检查-您可以在前面的代码中添加这两行,在前面的代码中添加最后一行(princ))
 
顺便说一句,OMEGA ThundeR的这段代码更通用,我强烈建议您在许多不同的情况下使用它,因为EXTRIM无法提供所需的结果。。。
 
尊敬的M.R。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:27:33 | 显示全部楼层
这是另一种方法。。。试试看,看看你是否得到了想要的结果。。。
 
装载过帐代码:
 
  1. (defun colect_entdata ( / ss i ent entdata )
  2. (setq ss (ssget "_X"))
  3. (setq i -1)
  4. (while (setq ent (ssname ss (setq i (1+ i))))
  5.    (setq entdata (cons (entget ent) entdata))
  6. )
  7. entdata
  8. )
  9. (defun c:store_entdata nil
  10. (setq entdata (colect_entdata))
  11. (princ)
  12. )
  13. ;;; Modify entities ;;;
  14. (defun colect_modified_entdata ( / ss i ent entdatachk entdatamod )
  15. (setq ss (ssget "_X"))
  16. (setq i -1)
  17. (while (setq ent (ssname ss (setq i (1+ i))))
  18.    (setq entdatachk (cons (entget ent) entdatachk))
  19. )
  20. (foreach data entdatachk
  21.    (if (not (vl-some '(lambda ( x ) (equal x data 1e-6)) entdata))
  22.      (setq entdatamod (cons data entdatamod))
  23.    )
  24. )
  25. entdatamod
  26. )
  27. (defun c:sel_mod_ents ( / ss )
  28. (setq ss (ssadd))
  29. (foreach data (colect_modified_entdata)
  30.    (ssadd (cdr (assoc -1 data)) ss)
  31. )
  32. (sssetfirst nil ss)
  33. (princ)
  34. )
  35. (alert "\nFirstly type : store_entdata \nThen modify entities \nFinally type : sel_mod_ents \nAt the end type : (setq entdata nil)")
  36. (princ)
1。第一种类型:store_entdata
2.使用“EXTRIM”命令-拾取第一条曲线并拾取要拉伸的区域内的点。。。
3.类型:sel\u mod\u ents
4.按ctrl+shift+c(copybase)并输入点:0,0,0
5.类型:(setq entdata nil)
6.类型:U(撤消)-绘图应与启动完全相同-在2之前。过程
7.使用“EXTRIM”命令-拾取第二条曲线并拾取要拉伸的区域内的点。。。
8.按ctrl+v(粘贴)并输入点:0,0,0
 
就是这样。。。试试看,告诉我它是怎么工作的。。。
HTH,M.R。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:30:54 | 显示全部楼层
我想,为什么我不把这些步骤自动化到一个lisp中,我做到了。。。所以试试这个版本。。。
 
  1. 5
HTH,M.R。
当做
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:31:30 | 显示全部楼层
哎呀,忘记读第二页了
 
一个方面。lsp无论如何,对于这个问题,在两个圆之间做一些额外的线和修剪。如上所述,新rad只是(rad1+rad2)/2,选择两个圆,然后使用Fence进行修剪,避免使用vlax曲线老式lisp。
 
  1. 6
回复

使用道具 举报

2

主题

15

帖子

13

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:35:46 | 显示全部楼层
 
宾果,宾果
 
太棒了
这就是我所需要的你是天才Marko_Ribar先生。
 
超过XXXXXX很多
 
当做
 
 
Sidhu公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:04 , Processed in 0.362158 second(s), 71 queries .

© 2020-2025 乐筑天下

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