明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1971|回复: 3

怎样用lisp获得多义线的各顶点以及各段是直线还是圆弧

[复制链接]
发表于 2003-12-12 19:29:00 | 显示全部楼层 |阅读模式
大侠们,怎样用lisp获得多义线的各顶点以及各段是直线还是圆弧?!!
发表于 2003-12-12 20:07:00 | 显示全部楼层
顶点是组码10
组码43,0就是直线,不是0就是圆弧
发表于 2003-12-13 17:41:00 | 显示全部楼层
还是基础知识呀
发表于 2003-12-17 15:45:00 | 显示全部楼层
列出顶点:
(defun c:test ()
  (setq obj (car (entsel "\nSelect a Polyline: ")))
  (foreach x (entget obj)
    (if (eq 10 (car x))(setq nlist (cons (cdr x) nlist)))
  )
  (reverse nlist)
)
列出所点击子段序号, 坐标及凸度:
(defun c:test ( / en j oldos ss)
  (cond ((setq ent (entsel "ick a polyline: "))
         (getSegment (vlax-ename->vla-object (car ent))
                     (cadr ent)
         )
        )
  )
)
(defun getSegment (obj pt / cpt eParam stParam)
  (cond ((setq cpt (vlax-curve-getClosestPointTo obj pt T))
         (setq eParam (fix (vlax-curve-getEndParam obj)))
         (setq bul (vla-getBulge obj (fix (vlax-curve-getParamAtPoint obj cpt))))
         (if (= eParam (setq stParam (fix (vlax-curve-getParamAtPoint obj cpt))))
           (setq stParam (1- stParam))
           (setq eParam (1+ stParam))
         )
         (list eParam (vlax-curve-getPointAtParam obj stParam)
               (vlax-curve-getPointAtParam obj eParam) bul)
        )
  )
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 08:29 , Processed in 0.161469 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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