vla-ZoomWindow窗口显示不居中的问题
(defun c:tt();;关闭特性窗口,并绘制一个矩形
(command "_propertiesclose")
(command "rectang" "non" '(0 0) "non" '(500 200))
;;调整CAD窗口尺寸
(setq *acad* (vlax-get-acad-object))
(vla-put-WindowState *acad* 3)
(setq acadWidth (vla-get-Width *acad*))
(setq acadHeight (vla-get-Height *acad*))
(vla-put-WindowState *acad* 1)
(vla-put-WindowLeft *acad* 800)
(vla-put-WindowTop *acad* 0)
(vla-put-Width *acad* (- acadWidth 800 4))
(vla-put-Height *acad* (- acadHeight 4))
;;以上代码没有问题
;;下面改变视窗以居中显示矩形————但没有达到预期的效果
;;矩形的实际位置是按最大化窗口居中的
;;而不是按当前窗口居中的
;;;;;;;;;;;;;;;;;;;;貌似这里应该还需要加一段代码来“刷新窗口数据”
(vla-ZoomWindow *acad* (vlax-3d-point '(-5 -5)) (vlax-3d-point '(505 205)))
(princ)
)
CAD最大化时加载这段代码运行TT
本意是希望调整窗口尺寸后
绘制的矩形居中窗口
但实际运行的效果
矩形是按最大化的窗口来居中的
而不是按调整后窗口来居中的
这段代码哪里有问题
或者需要增加什么代码?
顶一下
因为是在对话框中zoom
没法command 终于找到解决办法了
把最后一句zoomwindows定义为一个子程序
然后用vla-sendcommand发送执行
这样就可以居中了
手机上就不发完整代码了 masterlong 发表于 2014-12-30 10:00 static/image/common/back.gif
终于找到解决办法了
把最后一句zoomwindows定义为一个子程序
然后用vla-sendcommand发送执行
为什么我试了半天还是不行啊
求指导 masterlong 发表于 2014-12-30 10:00 static/image/common/back.gif
终于找到解决办法了
把最后一句zoomwindows定义为一个子程序
然后用vla-sendcommand发送执行
求完整代码 (defun c:tt()
;;关闭特性窗口,并绘制一个矩形
(command "_propertiesclose")
(command "rectang" "non" '(0 0) "non" '(500 200))
;;调整CAD窗口尺寸
(setq *acad* (vlax-get-acad-object))
(vla-put-WindowState *acad* 3)
(setq acadWidth (vla-get-Width *acad*))
(setq acadHeight (vla-get-Height *acad*))
(vla-put-WindowState *acad* 1)
(vla-put-WindowLeft *acad* 800)
(vla-put-WindowTop *acad* 0)
(vla-put-Width *acad* (- acadWidth 800 4))
(vla-put-Height *acad* (- acadHeight 4))
;;以上代码没有问题
;;不能直接执行以下代码
;;(vla-ZoomWindow *acad* (vlax-3d-point '(-5 -5)) (vlax-3d-point '(505 205)))
;;要在改变了CAD窗口以后视口居中,只能采用vla-sendcommand方式
(setq *doc* (vla-get-ActiveDocument *acad*))
(vla-sendcommand *doc* "(do_zoomWindow) ")
(princ)
)
(defun do_zoomWindow()
(vla-ZoomWindow *acad* (vlax-3d-point '(-5 -5)) (vlax-3d-point '(505 205)))
(princ)
) masterlong 发表于 2015-5-4 19:04 static/image/common/back.gif
(defun c:tt()
;;关闭特性窗口,并绘制一个矩形
(command "_propertiesclose")
(defun c:tt ()
(setq DWGNAME "C:\\Users\\123\\Desktop\\CADTEST\\Drawing1.dwg")
(setq APP (vlax-get-acad-object))
(setq acdo (vla-get-activedocument app))
(setq WW (vla-open (vla-get-documents APP) DWGNAME))
(vla-activate ww)
(setq APP (vlax-get-acad-object))
(setq *doc* (vla-get-ActiveDocument APP))
(vla-sendcommand *doc* "(do_zoomWindow)")
)
(defun do_zoomWindow()
(vla-ZoomWindow *acad* (vlax-3d-point '(-5 -5)) (vlax-3d-point '(505 205)))
(princ)
)
是我的想法太天真了吗?我打算打开一个已有的图形来实现zoom,可是似乎是不行.
页:
[1]