明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1739|回复: 6

平行多段线的顶点连线

[复制链接]
发表于 2013-10-31 08:02 | 显示全部楼层 |阅读模式
1明经币
这个个lisp程序只能单选,希望老大们能帮我改成框选,先谢了。
程序如下:
  1. defun c:pxlj(/ e1 e2 vla_e1 vla_e2 pts1 pts2 fglst lst_dist&p)
  2.   (setq e1(car(entsel"\n 选择第一条曲线:"))
  3.   e2(car(entsel"\n 选择第二条曲线:"))
  4.   vla_e1(vlax-ename->vla-object e1)
  5.   vla_e2(vlax-ename->vla-object e2)
  6.   pts1(vlax-safearray->list(vlax-variant-value(vla-get-coordinates vla_e1)))
  7.   pts2(vlax-safearray->list(vlax-variant-value(vla-get-coordinates vla_e2)))
  8.   )
  9.   (fgb pts1)
  10.   (setq pts1 fglst fglst nil)
  11.   (fgb pts2)
  12.   (setq pts2 fglst fglst nil)
  13.   (setq i 0 m 0)
  14.   (while(< i(length  pts1))
  15.      (setq x (nth i pts1))
  16.      (while (< m(length  pts2))
  17.        (setq y (nth m pts2))

  18.        (setq lst_dist&p (append lst_dist&p (list(list x y (distance x y)))))
  19.        (setq m(1+ m))
  20.         )
  21.     (setq lst_dist&p(vl-sort lst_dist&p(function(lambda(x1 x2)(< (caddr x1)(caddr x2))))))
  22.     (command "line" (caar lst_dist&p)(cadar lst_dist&p) "")
  23.     (setq pts1(vl-remove (caar lst_dist&p) pts1)
  24.     pts2(vl-remove (cadar lst_dist&p) pts2)
  25.     )
  26.     (setq lst_dist&p nil)
  27.     (if(not  pts1)(setq i (1+ i)))
  28.     (if(not  pts2)(setq m (1+ m))(setq m 0))
  29.      )
  30.   )
  31.    
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;将表内元素每2个进行分割重新组表;;;;;;;;;;;;;;;;;;;;;;;;;
  33. (defun fgb(lst1 / fglst1 dxf10 n)
  34. (setq n 0 i 0)
  35. (repeat (/(length lst1)2)
  36.    (repeat 2
  37.     (setq  dxf10 (nth n lst1))
  38.     (setq fglst1 (append fglst1 (list dxf10 )))
  39.     (setq n (1+ n))
  40.     )
  41.   (setq fglst (append  fglst (list fglst1 )))
  42.   (setq fglst1 nil)
  43.   (setq i(1+ i))
  44.   )
  45.   )

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2013-11-24 11:00 | 显示全部楼层
  1. ;; 云共享 [url]http://yunpan.cn/QXQKsW9gAPmpF[/url](defun c:tt (/ ss s1 s2)
  2.   (if (setq ss (ssget '((0 . "*polyline"))))
  3.     (progn
  4.       (setq i -1)
  5.       (while (and (setq s1 (ssname ss (setq i (1+ i))))
  6.                   (setq s2 (ssname ss (1+ i)))
  7.              )
  8.         (xyp-line (xyp-get-Vertexs s1 0) (xyp-get-Vertexs s2 0))
  9.       )
  10.     )
  11.   )
  12.   (princ)
  13. )

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2013-11-24 11:29 | 显示全部楼层
谢谢 xyp1964
加载运行后显示“no function definition: XYP-GET-VERTEXS”,怎么解决?

点评

需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF  发表于 2013-11-24 11:43
回复

使用道具 举报

发表于 2019-9-6 18:39 | 显示全部楼层
e派工具箱最新哪里有下载?
回复

使用道具 举报

发表于 2019-9-13 23:53 | 显示全部楼层
问题还是没有解决啊
回复

使用道具 举报

发表于 2019-9-14 11:51 | 显示全部楼层
期待哪个高手能做框选链接
回复

使用道具 举报

发表于 2019-9-17 17:03 | 显示全部楼层
期待哪个高手能做框选链接
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:56 , Processed in 0.899238 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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