找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1977|回复: 17

[求助] [求助]:请教一个问题(图块插入问题 急急急!)

[复制链接]
发表于 2007-7-12 14:35:04 | 显示全部楼层 |阅读模式

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

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

×
我编写了一个程序,要在画图区点取一点,作为我自定义的一个图块的插入点,问题在插入之前怎样让图块以虚线状态跟随鼠标移动,而且光标具有捕捉功能,就像在AutoCAD中直接用命令插入时最后一步选择插入点时一样效果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-7-12 18:17:32 | 显示全部楼层
在程序中欲插入图块的地方写入代码:
[PHP]
(command "_.insert"  块名  PAUSE  PAUSE  PAUSE  PAUSE)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-18 12:33:40 | 显示全部楼层
你给我的代码我用了,有部分问题解决了,但有时我用到了循环,按<enter>键或右键不能直接跳出程序,不知是否能有办法解决,敬候佳音!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-18 13:18:49 | 显示全部楼层
你的command里好像全是pause就不会循环
直接跳过Y的比例
[php]
(defun c:tt (/ blockname)
  (while (/= (setq blockname (getstring "\n输入块名:")) "")
    (command "_.insert" blockname pause pause "" pause)
  )
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-7-18 14:19:29 | 显示全部楼层
下面这个应该可以满足楼主关于右键后退出的要求。

  1. (defun C:TT (/ BLOCKNAME PT)
  2.     (if        (/= (setq BLOCKNAME (getstring "\n输入块名:")) "")
  3.         (while (setq PT (getpoint "\n点取插入点:"))
  4.             (command "_.insert" BLOCKNAME PT "" "" "")
  5.         )
  6.     )
  7.     (princ)
  8. )

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

使用道具 举报

发表于 2007-7-18 19:06:56 | 显示全部楼层
命令名为i,缩放比例为1。若搜索不到块,则提示你重新输入块名。

  1.   [FONT=courier new]
  2. (defun ins0(/ x lp)
  3.   (setvar "cmdecho" 0)(graphscr)(setq lp t)
  4.   (while lp (if (null block0)(setq block0 "bg"))
  5.   (princ "\n块名:<") (princ block0)
  6.   (setq x (getstring ">") nam (if (eq x "") block0 x))
  7.   (if (or (findfile (strcat nam ".dwg"))(tblsearch "BLOCK" nam))(setq lp nil)
  8.   (princ (strcat "---未找到名为" NAM "的块,请重新输入块名."))  ))
  9.   (setq block0 nam))
  10. (defun c:i(/ nam)(ins0)(command "insert" nam "x" "1" "y" "1")
  11.   (princ "\n插入点:")(command pause "0")(princ))12
  12.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 11:40:00 | 显示全部楼层
感谢各位的帮助,我看了一下,你们提供的代码不能满足我的要求,我的程序是在存在图块和已知所有缩放比例的基础上,在一点上插入此块,光标背后显示此图块要插入的形状,最后我只要点取一点就可以把图块插入到指定位置,然后提示我重新点取位置插入一样的图块,当我按回车键或者右键时还能退出程序,希望各位高手给与指导。谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 16:07:26 | 显示全部楼层
我的程序基本如下的,需要怎样才能实现我要得效果?
  (while (exp)
    (princ "\n请输入插入点")
    (command "_.insert" blockname sx sy ang “最后是插入点”) 如果我不按回车键,就会继续插入,否则结束,只是要得到效果,大家给点意见,不知大家能否明白我要得到的效果???
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-19 17:32:33 | 显示全部楼层
你要的效果应该是很容易得到的。。。
如果上面的程序都没有办法解决你的问题。
那我想你要检讨自己。。
你肯定自己能写得出来。。。为什么要折磨大家。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-19 20:13:27 | 显示全部楼层
很累?

  1. ;; 判断块存不存在,自己搞定
  2. (defun c:x1 (/ date loop mod obj vp)
  3.   (vl-cmdf "insert" "2007071920082795" '(0 0 0) 1 1 1)
  4.   (setq loop t)
  5.   (while loop
  6.     (setq obj (vlax-ename->vla-object (entlast)))
  7.     (setq date (grread t 4 0)
  8.           mod  (car date)
  9.           vp   (cadr date)
  10.     )
  11.     (cond ((= mod 5)
  12.            (vlax-put obj "insertionpoint" vp)
  13.           )
  14.           ((= mod 3)
  15.            (vl-cmdf "insert" "2007071920082795" '(0 0 0) 1 1 1)
  16.           )
  17.           (t (setq loop nil))
  18.     )
  19.   )
  20.   (vla-delete obj)
  21. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-19 20:39:14 | 显示全部楼层
用grread肯定可以.其它的.如果用命令,没想过
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-20 10:06:00 | 显示全部楼层
对不起各位高手,我也许没有说清楚,让大家误会了,我已经用过grread了,但是我需要图块插入时具有捕捉功能,grread就不能实现,而且图块还闪的要命,所以我想请教一下有没有别的办法可以解决我的问题。在进入循环之后我只有一个输入“请选择插入点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2007-7-20 19:34:58 | 显示全部楼层
也发一个在这里。虽然过程中需要多点一次,但捕捉、循环、虚线跟随等都能满足楼主的要求:

  1.   [FONT=courier new]
  2. (defun c:ibg (/ p)
  3.   (setq p t os (getvar "osmode"))
  4.   (setvar "osmode" 1)
  5.   (while p
  6.     (command "insert" "bg" "x" "1" "y" "1" "r" "0" pause)
  7.     (setq p (getpoint"\n插入点:"))
  8.   )
  9.   (setvar "osmode" os)
  10.   (princ)
  11. )
  12.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 07:47 , Processed in 0.596864 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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