乐筑天下

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

[编程交流] 将线的端点存储到

[复制链接]

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-5 20:00:15 | 显示全部楼层 |阅读模式
请帮个小忙
有什么想法吗
我想选择一条特定的线,然后将这些线的端点存储在一个列表中
塔克斯
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:16:46 | 显示全部楼层
基本引擎可能如下所示:
 
  1. [b][color=BLACK]([/color][/b]defun c:linepl [b][color=FUCHSIA]([/color][/b]/ pl ss i en ed[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  3.       [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b]
  4.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  5.              [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  6.              [b][color=MAROON]([/color][/b]foreach g '[b][color=GREEN]([/color][/b]10 11[b][color=GREEN])[/color][/b]
  7.                [b][color=GREEN]([/color][/b]setq pl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc g ed[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] pl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  8.              [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1+ i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  9.       [b][color=NAVY]([/color][/b]and pl [b][color=MAROON]([/color][/b]alert [b][color=GREEN]([/color][/b]rtos [b][color=BLUE]([/color][/b]length pl[b][color=BLUE])[/color][/b] 2 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:24:21 | 显示全部楼层
变量“lst”保存选定线的端点坐标列表。
 
  1. (defun c:Ends (/ ss lst)
  2. (if (setq ss (ssget '((0 . "LINE"))))
  3.    ((lambda (i / sn)
  4.       (while (setq sn (ssname ss (setq i (1+ i))))
  5.         (setq lst (cons (cdr (assoc 11 (entget sn))) lst))
  6.       )
  7.     )
  8.      -1
  9.    )
  10. )
  11. (if lst lst (princ))
  12. )
回复

使用道具 举报

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-5 20:27:22 | 显示全部楼层
谢谢david谢谢tharwat
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:35:01 | 显示全部楼层
当你用另一种方式画一条线时,会发生什么?你可能需要额外的一点,就像我在检查你选择哪一端时使用的那样,因此交换10和11个答案,以获得我想要的开始-结束。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:44:02 | 显示全部楼层
虽然我经常使用sp(start\u pt)和ep(end\u point)作为线的点值,但AutoCAD实际上使用了From和To提示,从不真正指定起点和终点。
 
OP从未真正说明需要哪些分数。(所有直线点)(所有直线点的对)(所有直线点的对及其反向)
 
我经常使用这些对和它们的反面(对于过度杀戮类型的函数)
 
  1. (defun vld_deldup (/ ss i ll en ed p10 p11 mln)
  2. (setq mln 0.003)
  3. (princ (strcat "\nSearching " (getvar "CLAYER") "...  "))
  4. (and (setq ss (ssget "X" (list (cons 0 "LINE")(cons 8 (getvar "CLAYER")))))
  5.       (setq i 0)
  6.       (while (setq en (ssname ss i))
  7.              (setq ed (entget en)
  8.                   p10 (cdr (assoc 10 ed))
  9.                   p11 (cdr (assoc 11 ed)))
  10.              (if (or (< (distance p10 p11) mln)
  11.                      (member (list p10 p11) ll)
  12.                      (member (list p11 p10) ll))
  13.                   (entdel en)
  14.                   (setq ll (cons (list p10 p11) ll)))
  15.              (setq i (1+ i)))
  16.        (if ll (princ (strcat (rtos (length ll) 2 0) " Of " (rtos i 2 0) " LINEs Remain"))
  17.               (princ "- No Duplicates Found")))
  18. (prin1))

 
大多数情况下,我会将点值四舍五入到mln
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:56:46 | 显示全部楼层
 
欢迎随时光临。
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 21:03:35 | 显示全部楼层
 
示例:如果OP希望收集垂直线在横截面中相交的点?,如果第一条直线端点朝下,则其余偏移间隔和修剪的直线将继承相同的图案。
虽然OP的示例dwg没有问题,但我确实同意应考虑BIGAL对方向的考虑。注意
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 00:40 , Processed in 0.483950 second(s), 68 queries .

© 2020-2025 乐筑天下

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