找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 887|回复: 8

[求助] [求助]:怎么通过点选取对象

[复制链接]
发表于 2007-5-30 17:18:45 | 显示全部楼层 |阅读模式

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

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

×
(defun C:vv()
(vl-load-com)
(load"xyp_lib.vlx")
(setq ffn (getfiled "选取档案" "" "txt" 1))
(setq ff (open ffn "w"))
(setq        dd   (ssget '((0 . "*TEXT")))
        i    -1
  )
(repeat (sslength dd)
(setq s1 (ssname dd (setq i (1+ i))))
(setq s2 (entget S1)
      s3 (cdr (assoc 11 s2))
      x (car s3)
      y (cdr s3)
      y (car y)
)
(setq x (+ x 13.5));;;;;;;;;;;;;;;;X坐标加13.5
(setq y (+ y 3));;;;;;;;;;;;;;;;Y坐标加3
(setq ss (ssget '(x y))) ;;;;;;;;;;;;;;;;;;;;;就是这里不懂!!!老提示“错误的点参数”
(setq s4 (entget ss)
      s5 (cdr (assoc 1 s4))
)
(princ s5 ff)
(princ "\n" ff)
)
(close ff)
)



请高手帮帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-5-30 19:19:20 | 显示全部楼层
  1. [FONT=courier new](defun C:test ()
  2.   (load "xyplib")
  3.   (setq        ff (open (getfiled "选取档案" "" "txt" 1) "w")
  4.         dd (ssget '((0 . "*TEXT")))
  5.         i  -1
  6.   )
  7.   (repeat (sslength dd)
  8.     (setq s3 (xyp-get-dxf 11 (ssname dd (setq i (1+ i))))
  9.           x  (+ (car s3) 13.5)
  10.           y  (+ (cadr s3) 3)
  11.           s5 (xyp-get-dxf 1 (ssname (ssget (list x y)) 0))
  12.     )
  13.     (princ s5 ff)
  14.     (princ "\n" ff)
  15.   )
  16.   (close ff)
  17. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-5-30 19:53:39 | 显示全部楼层
将那一句换成:

  1. (setq SS (ssget (list X Y)))


另:我不明白你这个程序的功能是什么,但感觉在代码结构上有待改进。
斗胆改动如下:
  1. <PRE><FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;;;(vl-load-com)</SPAN></FONT>
  2. <FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;;;(load "xyp_lib.vlx")</SPAN></FONT>
  3. <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">defun</FONT> <FONT face="Fixedsys">C:VV</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">/</FONT> <FONT face="Fixedsys">FFN</FONT> <FONT face="Fixedsys">FF</FONT> <FONT face="Fixedsys">DD</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys">S</FONT> <FONT face="Fixedsys">ENT</FONT> <FONT face="Fixedsys">PT</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  4.     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">if</FONT>        <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">FFN</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">getfiled</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"选取档案"</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">""</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"txt"</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  5.         <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">progn</FONT>
  6.             <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">FF</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">open</FONT> <FONT face="Fixedsys">FFN</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"w"</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  7.             <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">DD</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">ssget</FONT> <FONT face="Fixedsys" COLOR="#990000">'</FONT><FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#009900">0</FONT> <FONT face="Fixedsys" COLOR="#990000">.</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"*TEXT"</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  8.                   <FONT face="Fixedsys">I</FONT>  <FONT face="Fixedsys" COLOR="#009900">-1</FONT>
  9.             <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  10.             <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">repeat</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">sslength</FONT> <FONT face="Fixedsys">DD</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  11.                 <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">S</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">ssname</FONT> <FONT face="Fixedsys">DD</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">1+</FONT> <FONT face="Fixedsys">I</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  12.                 <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">ENT</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">entget</FONT> <FONT face="Fixedsys">S</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  13.                       <FONT face="Fixedsys">PT</FONT>  <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">cdr</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">assoc</FONT> <FONT face="Fixedsys" COLOR="#009900">11</FONT> <FONT face="Fixedsys">ENT</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  14.                       <FONT face="Fixedsys">PT</FONT>  <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">mapcar</FONT> <FONT face="Fixedsys" COLOR="#990000">'</FONT><FONT face="Fixedsys" COLOR="#0000FF">+</FONT> <FONT face="Fixedsys">PT</FONT> <FONT face="Fixedsys" COLOR="#990000">'</FONT><FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#009999">13.5</FONT> <FONT face="Fixedsys" COLOR="#009900">3</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  15.                 <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  16.                 <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">if</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">and</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">S</FONT>   <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">ssget</FONT> <FONT face="Fixedsys">PT</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  17.                                <FONT face="Fixedsys">ENT</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">entget</FONT> <FONT face="Fixedsys">S</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  18.                          <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  19.                          <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">S5</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">cdr</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">assoc</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT> <FONT face="Fixedsys">ENT</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  20.                     <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  21.                     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">princ</FONT> <FONT face="Fixedsys">S5</FONT> <FONT face="Fixedsys">FF</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  22.                 <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  23.                 <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">princ</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"\n"</FONT> <FONT face="Fixedsys">FF</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  24.             <FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;_结束 repeat</SPAN></FONT>
  25.         <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  26.     <FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;_结束 if</SPAN></FONT>
  27.     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">close</FONT> <FONT face="Fixedsys">FF</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  28. <FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;_结束 defun</SPAN></FONT>
  29. </PRE>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-30 20:16:39 | 显示全部楼层
谢谢斑竹和zml84,
呵呵,我要实现的功能是对号入座啊。
因为我的图中有两种数据,一种是编号,另一种是高程,而且编号和高程的相对位置是一定的,也就是说一个编号对应一个高程。如果这个功能可以实现,那现在只要选择编号就能自动选择对应的高程了。再将编号和高程同时打印出来,这样就实现对号入座了不是吗,呵呵。我相信这对你们应该是小菜一蝶了。可我试了一个下午都找不出原因来。只好来求你们了。呵呵,谢谢你们无私的帮助。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-5-30 20:29:17 | 显示全部楼层
我觉得,这种依靠相对位置的检索条件是不牢靠的。
最好将高程信息以扩展数据的方式写入编号图元中去,或者将高程图元的句柄写入编号的扩展数据中。这样能够更好的检索和提取高程,过程更为可靠。
此外,若相对位置被改动后,可以写一段代码,将位置按照新的要求复位。
你可以考虑一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-31 08:23:01 | 显示全部楼层
对不起,我lisp境界没达到那么高啊
如何将高程信息以扩展数据的方式写入编号图元中去呢?
写进去了又如何提取出来呢?
这似乎不是一般人所能理解的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-5-31 11:07:26 | 显示全部楼层
虽然不嫩一口吃成胖子,但也不必妄自菲薄。在应用中学习,在学习中提高。
有专业需求是好事,要是能以更好方法解决,则更是快事一件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-31 20:02:46 | 显示全部楼层
呵呵,今天发现你已经成为版主了,真为你高兴啊。
    我学lisp纯粹是业余兴趣,以及工作方便,一般都是改改别人的程序,很少自己写啊,叫我写也写不来,所以没有系统地学,不知道lisp有什么好的书籍可以参考吗?最好是可以达到你所说的第三层境界以上的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-5-31 21:23:02 | 显示全部楼层
就像学习使用计算机不必从二进制开始一样,lisp也不用去系统地去学。
最好的环境就是,首先是能敏锐的观察的工作中有待改进的地方,有种用LISP可以解决问题的直觉;
然后能够拥有一本参考资料,在问题闪现之后能过以最快的速度查找到自己所需要的函数或思想;
进而向问题开刀,解决它。在解决过程多做注释,过一段时间再去读它,你也许会有更好的解决方法,这就是循序渐进的提高。
如果能做到学以致用,现学现卖,那就离小成不远了。
<br>
至于参考书籍,我始终珍惜有一本纸质的大书拿在手里的感觉,作为初学者,最需要的是有函数详解内容的资料,虽然它多是help文件的翻译,但拥有一本也是非常适用的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 10:40 , Processed in 0.197851 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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