找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2147|回复: 3

[LISP函数]:多段线数据提取的问题!

[复制链接]
发表于 2003-8-30 17:11:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
怎样提取一多段线中每个实体段的数据?主要是多段线组码中相同关键字中数据的提取!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-8-30 17:40:10 | 显示全部楼层

Re: [LISP函数]:多段线数据提取的问题!

最初由 redapple 发布
[B]怎样提取一多段线中每个实体段的数据?主要是多段线组码中相同关键字中数据的提取! [/B]


返回包含每一出现在列表中的指定键的cdr(点对的后部分)的列表

  1. (defun massoc (key alist / x nlist)
  2.   (foreach x alist
  3.     (if (eq key (car x))
  4.       (setq nlist (cons (cdr x) nlist))
  5.     )
  6.   )
  7.   (reverse nlist)
  8. )


功能

返回包含每一出现在列表中的指定键的cdr(点对的后部分)的列表。

参数

一个整数和一个图元定义列表

示例

(massoc 10 (entget (car (entsel))))

注意

该函数特别适合用于找到细多义线上的所有顶点。

作者

Jaysen Long
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-30 20:00:44 | 显示全部楼层
如果多段线的法线不是W坐标的Z向,那是不是计算其顶点坐标呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-4 09:04:25 | 显示全部楼层

Re: [LISP函数]:多段线数据提取的问题!

最初由 redapple 发布
[B]怎样提取一多段线中每个实体段的数据?主要是多段线组码中相同关键字中数据的提取! [/B]


下面程序返回点击处多段线子段的序号,两端点坐标和凸度:
(defun c:test ()
  (cond ((setq ent (entsel "Pick 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)
        )
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 23:50 , Processed in 0.187804 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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