找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 677|回复: 7

[求助] [求助]:求AutoCAD 2002版中直线经pedit命令生成"POLYLINE"后原直线的两端

[复制链接]
发表于 2005-5-22 22:20:18 | 显示全部楼层 |阅读模式

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

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

×
AutoCAD 2002中由"LINE"命令生成的直线,经pedit命令编辑后会生成"POLYLINE"实体,使用pline命令所绘直线段也是"POLYLINE"实体;而在除AutoCAD 2002版以外的版本中生成的实体为"LWPOLYLINE"实体。
  在"LWPOLYLINE"实体中,求原"LINE"命令生成的直线的两端点可取"LWPOLYLINE"实体的dxf码中的“10"来生成;而在"POLYLINE"实体中,"POLYLINE"实体的dxf码中没有“10"这一项,我经过调试,发现使用:(entget (car (nentselp)))取出的组码可求出一端点,但另一端点就不知怎么求了!希望对"POLYLINE"实体有研究的各位发表高见,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3个

财富等级: 恭喜发财

发表于 2005-5-22 23:28:53 | 显示全部楼层
(DEFUN C:XX (/ E1 DXF XY )
  (SETQ E1 (CAR (ENTSEL)))
  (SETQ E1 (ENTNEXT E1))
  (SETQ DXF (ENTGET E1))

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

使用道具 举报

发表于 2005-5-23 00:03:31 | 显示全部楼层
[php]
两个vl函数:
vlax-curve-getstartPoint
vlax-curve-getEndPoint
[/php]
可参照“★线转多段线”程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 00:10:35 | 显示全部楼层
谢谢3、4楼,我按两位意见再试试看!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-23 02:17:52 | 显示全部楼层
最初由 xyp1964 发布
[B][php]
两个vl函数:
vlax-curve-getstartPoint
vlax-curve-getEndPoint
[/php]
可参照“★线转多段线”程序。 [/B]


这个是求全段的起点终点,人家是要局部端点

应该用 [php]
(if (and (setq el (entsel))
         (setq e  (car el)
               pt (cadr el)))
  (list
    (vlax-curve-getpointatparam
      e
      (setq p (fix (vlax-curve-getparamatpoint
                     e
                     (vlax-curve-getclosestpointto e pt)))))
    (vlax-curve-getpointatparam e (1+ p))
  )
)
[/php]
这段代码对pl和lwpl均适用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 06:56:33 | 显示全部楼层
谢谢狂刀,再问一下,上述代码不使用vl类函数又怎样写?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-23 07:29:14 | 显示全部楼层
最初由 狂刀 发布
[B]

这个是求全段的起点终点,人家是要局部端... [/B]


按主题“原直线的两端点坐标”,应该是全段的起点和终点。
对于局部端点问题,在偶的“实用程序汇总”中有不少,如顶点坐标标注、顶点坐标输出到文件、顶点编号标注、局部线长标注……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 12:53:56 | 显示全部楼层
1.按xyp1964提供的方法,我已能找出一段直线转化为lp实体后的原直线的两端点坐标。
2.狂刀程序片段对于多段连续直线转化为lp实体后求某一子段的局部端点很有效,极大拓宽了本人思路!
再次对xyp1964及狂刀两位楼主表示感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 06:48 , Processed in 0.198353 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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