明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 422|回复: 4

[提问] 把每个矩形离指定点最近的端点与指定点连线

[复制链接]
发表于 2024-12-6 14:20:47 | 显示全部楼层 |阅读模式
本帖最后由 开心无惧 于 2024-12-6 14:22 编辑

请教大家 可以帮忙修改这段代码吗
功能:把每个矩形离指定点最近的端点与指定点连线;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-12-6 15:03:19 | 显示全部楼层
本帖最后由 llsheng_73 于 2024-12-7 13:38 编辑

  1. (defun c:tt(/ p p0 s e a)
  2.   (vl-load-com)
  3.   (and(setq s(ssget'((0 . "*polyline"))))
  4.       (setq p0(mapcar'+'(0 0)(getpoint"指定点")))
  5.       (while(setq e(ssname s 0))
  6.         (setq a(vlax-curve-getParamAtPoint e(vlax-curve-getclosestpointto e p0))
  7.               p(vlax-curve-getpointatparam e(+(if(>(- a(fix a))0.5)1 0)(fix a))))
  8.         (ssdel e s)
  9.         (entmakex(mapcar'cons'(0 100 100 8 62 90 70 10 10)(list"LWPOLYLINE""AcDbEntity""AcDbPolyline""连线"4 2 0 p p0))))))

带动态效果稍微麻烦些
  1. (defun c:tt(/ p0 s lst pts)
  2.   (vl-load-com)
  3.   (and(setq s(ssget'((0 . "*polyline"))))
  4.       (while(setq e(ssname s 0))(ssdel e s)
  5.   (setq lst(cons e lst)))
  6.       (or(while(/=(car(setq p0(grread 5)))3)(redraw)
  7.      (setq p0(List(caadr p0)(cadadr p0))pts nil)
  8.      (vl-some(function(lambda(e / a p)
  9.           (setq a(vlax-curve-getParamAtPoint e(vlax-curve-getclosestpointto e p0))
  10.           p(vlax-curve-getpointatparam e(+(if(equal(fix a)a 0.5)0 1)(fix a)))
  11.           pts(cons(list p p0)pts))
  12.           (grdraw p p0 1)))lst))
  13.    (redraw)
  14.    (vl-every(function(lambda(x)(entmakex(mapcar'cons'(0 100 100 8 62 90 70 10 10)(list"LWPOLYLINE""AcDbEntity""AcDbPolyline""连线" 3 2 0(car x)(cadr x))))))pts))))


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-12-6 15:36:39 | 显示全部楼层

这也太棒了,非常感谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-7 15:21:18 | 显示全部楼层
llsheng_73 发表于 2024-12-6 15:03
带动态效果稍微麻烦些

已经很好了,感谢!
回复 支持 反对

使用道具 举报

发表于 2024-12-7 15:28:46 | 显示全部楼层
llsheng_73 发表于 2024-12-6 15:03
带动态效果稍微麻烦些

利害,学习了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-1-23 01:02 , Processed in 0.183959 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表