找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 750|回复: 13

[求助] [求助]:如何编写一个提取当前图中所有直线对象端点的程序??

[复制链接]
发表于 2005-9-30 13:57:58 | 显示全部楼层 |阅读模式

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

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

×
如何编写一个提取当前图中所有直线对象端点的程序??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-30 14:14:52 | 显示全部楼层
使用ssget构造选集,之后取子实体dxf码中的10和11子类。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-30 14:35:04 | 显示全部楼层
最初由 qjcpj 发布
[B]使用ssget构造选集,之后取子实体dxf码中的10和11子类。 [/B]


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

使用道具 举报

发表于 2005-9-30 18:05:16 | 显示全部楼层
  1. [FONT=courier new](defun c:test ()
  2.   (setq        ss    (ssget '((0 . "LINE")))
  3.         i     -1
  4.         ptlst '()
  5.   )
  6.   (repeat (sslength ss)
  7.     (setq s1        (ssname ss (setq i (1+ i)))
  8.           pt        (cdr (assoc 10 (entget s1)))
  9.           ptlst        (cons pt ptlst)
  10.     )
  11.   )
  12.   ptlst
  13. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-30 22:46:18 | 显示全部楼层
谢谢xyp1964,
我用上述程序在一个测试中获得以下返回值:

((591.691 689.934 0.0) (839.718 899.96 0.0) (850.227 274.083 0.0) (991.056 876.857 0.0) (1251.69 456.806 0.0))


但随后对其赋值却出错,大家帮我看看哪里错了,
表达式如下:
(setq ptn ((591.691 689.934 0.0) (839.718 [/COLOR] 899.96 0.0) (850.227 274.083 0.0) (991.056 876.857 0.0) (1251.69 456.806 0.0)))

出错提示是这样的:
; 错误: 函数错误: 839.718 [/COLOR]

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

使用道具 举报

发表于 2005-10-1 00:03:12 | 显示全部楼层
[php](setq ptn '((591.691 689.934 0.0) (839.718 899.96 0.0) (850.227 274.083 0.0) (991.056 876.857 0.0) (1251.69 456.806 0.0)))[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-1 00:22:04 | 显示全部楼层
老大,再帮我解决这个:

执行
(setq da ((-1 . <图元名: 7ef50ee8>) (0 . "CIRCLE") (330 . <图元名: 7ef50cf8>) (5 . "95") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbCircle") (10 1501.15 408.371 0.0) (40 . 96.2923) (210 0.0 0.0 1.0)))


出现这样的提示:

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

使用道具 举报

发表于 2005-10-1 00:30:21 | 显示全部楼层
最初由 xdto 发布
[B]老大,再帮我解决这个:
... [/B]

自己多试一下嘛,不要一有点问题就...
这样对编程水平的提高非常不利,人家给你解答,有点小问题也很正常。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-10-1 15:42:00 | 显示全部楼层
(setq da ' (0 . "CIRCLE") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbCircle") (10 1501.15 408.371 0.0) (40 . 96.2923) (210 0.0 0.0 1.0)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-17 21:16:45 | 显示全部楼层
六楼xyp1964 斑竹你漏了直线dxf 11代码修改如下:

(defun c:test()
  (setq ss (ssget '((0 . "LINE")))
        i -1
        ptlist '()
  )
  (repeat (sslength ss)
     (setq s1 (ssname ss (setq i (1+ i)))
           sslist (entget s1)
           pt1 (cdr(assoc 10 sslist))
           pt2 (cdr(assoc 11 sslist))
           pt (list pt1 pt2)
           ptlist (cons pt ptlist )
      )
   )
  ptlist
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-10-17 22:05:32 | 显示全部楼层
这样效率更高

  1. (defun c:test (/ ss ssl i pl e)
  2.   (if (setq ss (ssget "x" '((0 . "line"))))
  3.     (progn
  4.       (setq ssl        (sslength ss)
  5.             i        0
  6.       )
  7.       (repeat ssl
  8.         (setq e        (ssname ss i)
  9.               i        (1+ i)
  10.         )
  11.         (setq pl (cons (vlax-curve-getstartpoint e) pl)
  12.               pl (cons (vlax-curve-getendpoint e) pl)
  13.         )
  14.       )
  15.     )
  16.   )
  17.   (princ)
  18. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-17 22:35:06 | 显示全部楼层
再简化点:
  1. [FONT=courier new](defun c:test (/ ss i e pl)
  2.   (if (setq ss (ssget "x" '((0 . "LINE"))))
  3.     (progn
  4.       (setq i -1)
  5.       (repeat (sslength ss)
  6.         (setq e         (ssname ss (setq i (1+ i)))
  7.               pl (cons (vlax-curve-getstartpoint e) pl)
  8.               pl (cons (vlax-curve-getendpoint e) pl)
  9.         ))
  10.       pl
  11.     )))[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-17 22:53:54 | 显示全部楼层

  1. (defun c:tt ()
  2.   (ssget  '((0 . "LINE")))
  3.   (vlax-map-collection (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
  4.     '(lambda(x)(setq lst(cons(list (vlax-curve-getstartpoint x)(vlax-curve-getstartpoint x))lst)))
  5.   )lst
  6. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-10-17 22:59:30 | 显示全部楼层
这里 vlax-map-collection 绝对没有 ssname 效率高
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 00:42 , Processed in 0.400355 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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