找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1462|回复: 9

[求助] [求助]:lisp中,同一命令下怎么获取交互绘制直线的图元名

[复制链接]
发表于 2008-2-27 16:24:42 | 显示全部楼层 |阅读模式

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

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

×
lisp中,同一命令下怎么获取交互绘制直线的图元名!
就是我现在绘制了一条pl线,当绘制完毕的同时我能够得到该线的图元名,通过图元名得到图元表,提取坐标等。
我用了(setq e (entlast)).不要用的,它总是先执行entlast,然后才执行交互绘制直线,我肯苦恼啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7229个

财富等级: 富甲天下

发表于 2008-2-27 16:44:49 | 显示全部楼层
不是那么明白,可提供原程序码吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-2-27 22:30:57 | 显示全部楼层

Re: [求助]:lisp中,同一命令下怎么获取交互绘制直线的图元名

最初由 下里巴云 发布
[B]lisp中,同一命令下怎么获取交互绘制直线的图元名!
就是我现在绘制了一条pl线,当绘制完毕的同时我能够得到该线的图元名,通过图元名得到图元表,提取坐标等。
我用了(setq e (entlast)).不要用的,它总是先执行e... [/B]


试试先执行PLINE命令,再求最后的图元:

  1.   [FONT=courier new]
  2. (defun c:nn()
  3.   (command "pline" pause)
  4.   (setq e (entlast))
  5.   (print)
  6. )   
  7.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 09:12:19 | 显示全部楼层
我就是这么弄的啊,不好用,他总是先执行(setq e (entlast)),然后才执行(command "pline" ),尽管我把(setq e (entlast))放在pline的后面。我要求的pline是交互画入的,绘制命令启动前是不确定绘制位置的。诶,恼火啊,怎么实现呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7229个

财富等级: 富甲天下

发表于 2008-2-28 10:29:40 | 显示全部楼层
且说说您的代码是如何安排底
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-2-28 12:21:36 | 显示全部楼层
最初由 下里巴云 发布
[B]我就是这么弄的啊,不好用,他总是先执行(setq e (entlast)),然后才执行(command "pline" ),尽管我把(setq e (entlast))放在pline的后面。... [/B]

不对。代码(defun c:nn()
  (command "pline" pause)
  (setq e (entlast))
  (print)
)获得的就是刚绘制好的PLINE线。你检查一下"pline"命令后面有没有加pause。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 16:11:51 | 显示全部楼层
(defun c :nn(/)
  (command "pline" pause)
  (setq XL (entlast))
  (setq XLlist (entget XL));得实体图元表
  ;;(setq entline (ssadd));;创建一个空的选择集st))
  ;;(ssadd XL entline)

  ;;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
  (setq m 0  ;;递增变量
        lst '() ;;初始化一个表
  )
  (while (/= (setq ei (nth m XLlist)) nil);;逐一循环图元表内的元素,寻找点表
    (progn
         (if(= (car ei) 10)                ;;坐标点存储在索引为10的表中
          (progn
            (setq p(cdr ei))
            (setq lst (cons p lst));;在已知表的头部插入元素的函数
          )
         );end if
         (setq m (1+ m))
      )
  );;end while
  (princ "\n")
  (princ lst)  
  (print)
  (princ)
)
我这样完成的程序,好像得到了本直线的图元名,但是和我的目标还远,怎么只能获得pl线的首坐标呢,我想获得全部坐标,没有成功
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7229个

财富等级: 富甲天下

发表于 2008-2-28 17:09:13 | 显示全部楼层
(defun c:nn (/)
  (command "pline")
  (while (= (logand (getvar "CmdActice") 1) 1)
    (command pause)
  )
  
  (setq XL (entlast))
  
  ...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-2-28 18:24:21 | 显示全部楼层
楼上的是正解。

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

使用道具 举报

 楼主| 发表于 2008-2-29 10:16:37 | 显示全部楼层
谢谢各位了,嘿嘿,我明白了,弄出来了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 21:41 , Processed in 0.309590 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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