明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1047|回复: 4

[源码] 合并3D多段线

[复制链接]
发表于 2015-11-24 10:03 | 显示全部楼层 |阅读模式
本帖最后由 sz721 于 2015-11-24 13:58 编辑

合并三维多段线。

点评

转载他人作品,请保留作者版权信息 ! Join3dPoly (gile)  发表于 2015-11-24 11:32

评分

参与人数 1明经币 -2 收起 理由
Gu_xl -2 欢迎转载源码,但请保留完整信息!请尊重原.

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-11-24 10:07 | 显示全部楼层
牛..先马,用上的时候好找,谢谢
发表于 2015-11-24 11:30 | 显示全部楼层
本帖最后由 jltx123456 于 2015-11-24 11:33 编辑

原作者gile的程序, 请转载时保留作者版权信息!
  1. ;; Join3dPoly (gile)

  2. ;; Joint les objets sélectionnés en une polyligne 3d s'ils sont jointifs

  3. ;; La polyligne est créée avec les propriétés courantes (calque, couleur, ...)
复制代码
http://gilecad.azurewebsites.net/LISP/Join3dPoly.lsp
http://cadxp.com/topic/21189-joindre-3d-polylignes-selon-calques/
发表于 2015-11-25 09:24 | 显示全部楼层
  1. (vl-load-com)
  2. ;;46.2 [功能] pline,lwpline点坐标表  By 无痕
  3. ;;示例(vxs (car (entsel))),返回三维点坐标
  4. (defun vxs (e / i v lst)
  5.   (setq i -1)
  6.   (while
  7.     (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
  8.      (setq lst (cons v lst))
  9.   )
  10.   (reverse lst)
  11. )
  12. ;三维点表绘制3D多段线
  13. (defun mk3DPOLYLINE(ptlst)
  14.    (entmake (list '(0 . "POLYLINE") '(100 . "AcDbEntity") '(100 . "AcDb3dPolyline") '(66 . 1) '(70 . 8)))
  15.    (foreach pt ptlst (entmake (list '(0 . "vertex") (cons 10 pt) '(70 . 32))))
  16.    (entmake '((0 . "seqend")))
  17. )
  18. ;==========================
  19. ;连接两条三维多段线 by 77077
  20. (defun c:XX(/ ent1 ent2 list1 list2 lst)
  21.         (princ "\n 连接两条3D多段线")
  22. (if (and (setq ent1(CAR(entsel "\n 选择第一条3D多段线")))
  23.                 (setq ent2(CAR(entsel "\n 选择第二条3D多段线")))
  24.                 (setq list1 (vxs ent1))
  25.                 (setq list2 (vxs ent2))
  26.               )
  27.          (progn
  28.            (cond
  29.              ((equal  (car list1) (car list2));起点 起点
  30.                (setq lst (append (reverse list1) (cdr list2)))
  31.              )
  32.              ((equal  (car list1) (car(reverse list2))) ;起点 终点
  33.                 (setq lst (append list2 (cdr list1)))
  34.              )
  35.              ((equal  (car (reverse list1)) (car list2)) ;终点 起点
  36.                 (setq lst (append list1 (cdr list1)))
  37.              )
  38.              ((equal  (car (reverse list1)) (car (reverse list2)));终点 终点
  39.                 (setq lst (append list2 (cdr(reverse list1))))
  40.                    )
  41.              (t (alert"两条3D多段线没有交点"))
  42.            )
  43.            (if lst
  44.                    (progn
  45.                            (mk3DPOLYLINE LST)
  46.                            (entdel ent1)
  47.                            (entdel ent2)
  48.                            (princ "\n 连接成功")
  49.                           )
  50.                         )
  51.    )
  52.    (princ "\n 坑爹嘞!")
  53.   )
  54.         (PRINC)
  55. )

点评

框选嘛  发表于 2015-11-25 15:01
发表于 2015-11-25 09:43 | 显示全部楼层
77077 发表于 2015-11-25 09:24

大神好久不见啊, 最近闭关修练?  有什么大作? 分享下啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 12:14 , Processed in 0.292253 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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