只需一步,快速开始
下面的程序会在屏幕上出现一个会移动的小方框。
可是,不是每一台电脑都可以,请高手帮我测试一下,为什么会同样的程序有不同的结果。
(defun DrawBox( p0 c1 c2 / pp p1 p2 p3 p4 p11 p22 p33 p44) (setq pp (polar p0 0 5)) (setq p1 (polar p0 (/ pi 2) 2.5)) (setq p2 (polar p1 pi 5)) (setq p3 (polar p2 (/ (* pi 3) 2) 5)) (setq p4 (polar p3 0 5)) ; (setq p11 (polar p1 0 1)) (setq p22 (polar p2 0 1)) (setq p33 (polar p3 0 1)) (setq p44 (polar p4 0 1)) ; (grvecs (list c1 p1 p2 p2 p3 p3 p4 p4 p1 )) (grvecs (list c2 p11 p22 p22 p33 p33 p44 p44 p11)))(defun MYDelay( n / time) (setq Curtime (+ (getvar "cdate") (* 0.0000001 n))) (while (< (getvar "cdate") Curtime)))(defun c:q11( / xmove q1) (setq xmove 0) (while (< (setq xmove (1+ xmove)) 20) (setq q1 (list xmove 0 0)) (MYDelay 1) (drawbox q1 256 256) ) )
使用道具 举报
这个延迟的函数好。
(defun MYDelay (n / time) (setq Curtime (+ (getvar "cdate") (* 0.0000001 n))) (while (< (getvar "cdate") Curtime)))
每台电脑显示的不一样,应该是因为你开始设置的坐标导致的。你都设置成(0 0 0)开始了,有些电脑进行后,可能此坐标不在当前视口范围内。
试着使用(getvar "viewctr")来看一看。
你说的情况我已经看过了,问题是每一次在我自己的电脑上运行,仅可以看到开始和末尾的两个方框。能感受到延时环节,而且单步调试时可以看到中间过程时的方框。
"问题是每一次在我自己的电脑上运行,仅可以看到开始和末尾的两个方框。"那是因为开始和结束的方框坐标,都只grvecs一次。AutoCAD 颜色代码的取值范围是 0 到 255,如果颜色代码值大于 255,则后续矢量会以 XOR(异或)方式显示,也就是以取补颜色生成被该矢量覆盖的对象,而且当矢量被覆盖时,它自身也会消失。
kankan
道理我明白,但是加入了延时环节后的效果应该是可以看到方框的移动。
因为第3N次的移动生成的是第N次的方框同时覆盖第N-1次的方框,然后程序延时,然后运行第N+1次,生成第N+1次的方框,覆盖第n次的方框,然后延时......
由于延时环节的存在,总是可以看到一个方框(非头尾的)。
在此,我不明白的是:我可以感受到程序运行的过程(因为输入回车后要等一段时间才回到命令行),但是看不到中间的运行过程。
在不同的电脑上运行后,发现有些电脑是可以看到中间过程的。
grvecs是底层函数,跟硬件有很大的关系。
会不会是这个原因?
同意。
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-5-5 12:23 , Processed in 0.147738 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.