乐筑天下

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

[编程交流] 断开命令列表创建

[复制链接]

22

主题

55

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
110
发表于 2022-7-6 06:36:18 | 显示全部楼层 |阅读模式
我想在某个点打断一条线-一条线变成两条线。然后用文本标记(2)两条新行的长度。我有一个在行列表(ssget)上运行良好的标记例程。我如何创建一个列表来重新处理其中的两个新行?
 
谢谢你的帮助。
迈克在达拉斯
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 06:40:36 | 显示全部楼层
如果使用break命令,您将已经存储了两个ename中的一个,另一个可以使用(entlast)获取。
 
我在你的另一个请求中问了同样的问题,断点将如何定义?如果用户必须选择它,那么您不能将多重选择与SSGET一起使用,而是单独评估每一行。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 06:44:53 | 显示全部楼层
我还没有看到OP的另一条线索(公平地说,我也没有看过),但自从我现在偶然发现它之后。。。也许一种允许在标记后使用中断命令的替代方法(显然)涉及曲线实体的选择和中断点规范。
 
并不是说不能在Break命令之后获得结果,额外的实体名称,然后标记,当然,我只是想我会把这个想法抛到一边。
 
干杯
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 06:48:04 | 显示全部楼层
 
这是一个可行的选择,可以省去很多麻烦。从那里,您可以使用vlax curve getDistAtPoint,然后就可以设置了。好主意。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:51:59 | 显示全部楼层
这可能会起作用,这将在例程结束时向变量sad添加虚线
 
  1. (vl-load-com)
  2. (setq sad (ssadd))
  3. (while (and
  4.         (setq ss (entsel "\n Select line :"))
  5.         (eq (cdr (assoc 0 (entget (car ss)))) "LINE")
  6.       )
  7. (progn
  8.    (command "_.break"
  9.             (car ss)
  10.             "_none"
  11.             (setq p (vlax-curve-getclosestpointto (car ss) (cadr ss)))
  12.             "_none"
  13.             p
  14.    )
  15.    (ssadd (car ss) sad)
  16.    (ssadd (entlast) sad)
  17. )
  18. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 06:53:15 | 显示全部楼层
您只需拾取距离选择线最近的点。没有精确性。
尝试使用getpoint并将点馈送到ssget或nentselp。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:58:01 | 显示全部楼层
它的工作原理与我之前的简单代码相同,这里仅用于检查代码。
 
  1. (setq os (getvar 'osmode))
  2. (setvar 'osmode 512)
  3. (setq sad (ssadd))
  4. (while (setq s (getpoint "\n Select line :"))
  5. (progn
  6.    (setq ss (ssget s))
  7.    (command "_.break" (ssname ss 0) "_none" (setq p (vlax-curve-getclosestpointto (ssname ss 0) s)) "_none" p)
  8.    (ssadd (ssname ss 0) sad)
  9.    (ssadd (entlast) sad)
  10. )
  11. )
  12. (setvar 'osmode os)
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 07:01:53 | 显示全部楼层
  1. (if (and (setq pt (getpoint "\nSpecify point on line: "))
  2.         (setq ss (ssget pt '((0 . "LINE"))))
  3.    )
  4.    ;; BLAH BLAH
  5. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:05:41 | 显示全部楼层
 
不会,因为entsel返回的点只是选择时的十字线位置,而实体可以使用拾取框孔径的任何部分进行选择-如文档中所述:
 
 
因此,正如Alan所说,拾取点没有精确性,这是在选择时光标位于何处的彩票。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:08:04 | 显示全部楼层
我现在明白了阿兰指的是什么,现在清楚了。
 
谢谢大家
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:56 , Processed in 0.420138 second(s), 72 queries .

© 2020-2025 乐筑天下

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