明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3208|回复: 7

lisp中通过getpoint定义两点来移动时想看到选中对象动态预览如何实现

  [复制链接]
发表于 2009-8-13 00:06 | 显示全部楼层 |阅读模式
求解lisp问题:
百度求助无果,希望高手指点,范例无实质意义,就是想知道其中门道,在此先行谢过!!
1:待解决
lisp问题:移动时想看到选中对象动态预览如何实现,TKS!!
图片点击可在新窗口打开查看 悬赏分:15 - 离问题结束还有 12 天 22 小时
     
(defun c:mm(/ p1)
(command "move" (ssget) "" (setq p1 (getpoint "\n指定位移基点: ")) (setq p2 (getpoint "\n指定位移第二点: ")))
(princ)
)
就是想让选择的对象在基点确定后在第二点未给定之前一直有动态预览,就跟直接使用MOVE移动是效果一样,谢谢指点!如能说明原理,不胜感激!!!TKS!
2:待解决
合并图层lisp,遇到麻烦高手请指教
图片点击可在新窗口打开查看 悬赏分:10 - 离问题结束还有 12 天 22 小时
  
(defun c:lm ()
(command "_laymrg")
)
执行的时候老是会蹦出一个确认对话框或命令行出现确认提示,很讨厌,请高手指点!!!我只想选择两个图层就可以把前面选的并到后面选的图层上,原图层自动删除!不用输入“Y”!!TKS!!
3:
待解决
lisp高手请进,帮忙看下,TKS!
图片点击可在新窗口打开查看 悬赏分:10 - 离问题结束还有 12 天 22 小时
      
(defun c:spl () 
(setq cl (getvar 'clayer)) ;我在这加一段获取当前图层状态代码
(command "_spline")
(setvar 'clayer cl) ;想在这把图层状态还原,可是command执行完成后命令就结束了,这段代代码未运行
(princ)
)
请高手指点,在不改变(command "_spline")这段代码的前提下继续执行下段代码!!!不胜感激!!!!
发表于 2009-8-13 08:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-8-14 01:55 | 显示全部楼层

第一个问题

(defun c:T6(/ p1)(command "move" (ssget) ""  "non" (setq p1 (getpoint "\n指定位移基点: ")) pause)(princ))

 楼主| 发表于 2009-8-14 23:20 | 显示全部楼层

回复:(hnfsf)第一个问题(defun c:T6(/ p1)(command...

其实我想写的程序完整的如下:

(defun c:m(/ ss pt pp px)
(princ "***MOVE加强***")
(setvar 'cmdecho 0)
(setq ss (ssget))
(setq pt (getpoint "\n选择基点:"))
(command "move" ss "" pt pause)
(setq pp (getvar 'lastpoint))
(command "dist" pt pp)
(setq px (getvar 'distance))
(princ "\n你要移动的距离是") (princ px)(princ "吗?")
(princ)
)

其实就是想找记录选择交互输入有的基点和第二点,得到距离,每次画图移动对象总是想知道移动了多少,给后面绘图作个参考,直接输值也可做个确认,防止输错!

这段程序关键就是(getvar 'lastpoint))得到PAUSE给出的最后一点!!轻松实现我想要的结果!!谢谢热心回复的朋友!!

***L.CAD***Lib Smart Mold Design***

发表于 2009-8-15 07:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-8-15 10:33 | 显示全部楼层
问题3:
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2009-8-15 22:32 | 显示全部楼层

感谢ZZXXQQ的正确且及时的回复,此问题在你的帮助下已得到解决谢谢!

(defun c:spl ()
  (princ "***SPLINE加强***")
  (setq cl (getvar 'clayer))
  (COMMAND "LAYER" "M" "PHA" "C" "5" "" "lw" "0.13" "" "l" "PHANTOM" "PHA" "" "")
  (command "-spline")
  (while (not (zerop (getvar "CMDACTIVE"))) (command pause))
  (setvar 'clayer cl)
  (princ)
)

***L.CAD***Lib Smart Mold Design***

 楼主| 发表于 2009-8-15 23:01 | 显示全部楼层

同意liminnet的说法,更多的问题是出现在基点是用对象补捉得到的,会出现距离为0的结果,

实际已移动,不知是什么原因,克服的办法就是不补捉,随便选一点,不知有没有更好办法解决!

也就是作个参考而已,更多用在我输入的小数比较多的情况下,作个确认动作!!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-9 02:55 , Processed in 0.208726 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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