乐筑天下

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

[编程交流] 将点逐个添加到直线

[复制链接]

4

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:31:15 | 显示全部楼层 |阅读模式
在我的规划项目中,lee mac lisp areatable帮了我很多忙。你能通过lisp帮我吗(通过多选向直线的每个端点和两条直线的每个交点添加点,如果有两条或三条直线从一个点开始,lisp只创建一个点。如果你为我这样做,我将非常感激。
Emad公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:23:38 | 显示全部楼层
*耸耸肩*编码很有趣
 
  1. (defun c:LinePoints ( / i j ss e1 e2 p1 p2 p3 points )
  2. (if (setq i -1 ss (ssget '((0 . "LINE"))))
  3.    (progn
  4.      (while (setq e1 (ssname ss (setq i (1+ i) j i)))
  5.        (setq points
  6.          (cons (setq p1 (cdr (assoc 10 (entget e1))))
  7.            (cons (setq p2 (cdr (assoc 11 (entget e1)))) points)
  8.          )
  9.        )
  10.        (while (setq e2 (ssname ss (setq j (1+ j))))
  11.          (if (setq p3 (inters p1 p2 (cdr (assoc 10 (entget e2))) (cdr (assoc 11 (entget e2)))))
  12.            (setq points (cons p3 points))
  13.          )
  14.        )
  15.      )
  16.      (while points (entmakex (list (cons 0 "POINT") (cons 10 (car points))))
  17.        (setq points
  18.          (vl-remove-if '(lambda ( x ) (equal (car points) x 1e-) (cdr points))
  19.        )
  20.      )
  21.    )
  22. )
  23. (princ)
  24. )
回复

使用道具 举报

4

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 10:49:17 | 显示全部楼层
李,我很高兴你的帮助,它与我一起工作!!
谢谢,非常感谢
emad公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 01:56 , Processed in 0.357244 second(s), 58 queries .

© 2020-2025 乐筑天下

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