非常奇怪的问题
(defun GetMyDocumentsDir()(vlax-invoke-method
(vlax-get-property
(vlax-create-object "wscript.shell")
'SpecialFolders) 'Item"MyDocuments")
)
;;Call:(GetMyDocumentsDir)
;;(BF:mkslid sldname 400 300)
;;; (SetScreenSize 400 300)
(defun SetScreenSize (Width height / doc oldsize doc w1 h1 dw dh)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq oldsize (getvar "SCREENSIZE"))
(setq W1 (vla-get-width doc))
(setq H1 (vla-get-Height doc))
(setq dw (- w1 (car oldsize)))
(setq dh (- h1 (cadr oldsize)))
(vla-put-width doc (+ dw width))
(vla-put-height doc (+ dh height))
)
(defun c:test()
(SetScreenSize400 300)
(command "zoom" "e")
(princ)
)
我的想法是
1、将屏幕大小设置为400*300
2.“缩放”“e”
正常应该是这样
但是,当我使用命令“test”时,
哦,为什么?需要运行“测试”两次
测验图纸 将以下代码行添加到函数“SetScreenSize”中,并从主例程中删除命令调用“zoom”。
(vla-zoomextents doc)
谢谢Tharwat,很高兴见到你!
更具体?我不明白。
删除以下内容。。。
(command "zoom" "e")
然后从例程中向函数添加与函数vla zoomextents相关的代码行,如下所示。
(vla-put-height doc (+ dh height))
(vla-zoomextents doc)
这
(defun GetMyDocumentsDir()
(vlax-invoke-method
(vlax-get-property
(vlax-create-object "wscript.shell")
'SpecialFolders) 'Item"MyDocuments")
)
;;Call:(GetMyDocumentsDir)
;;(BF:mkslid sldname 400 300)
;;; (SetScreenSize 400 300)
(defun SetScreenSize (Width height / doc oldsize doc w1 h1 dw dh)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq oldsize (getvar "SCREENSIZE"))
(setq W1 (vla-get-width doc))
(setq H1 (vla-get-Height doc))
(setq dw (- w1 (car oldsize)))
(setq dh (- h1 (cadr oldsize)))
(vla-put-width doc (+ dw width))
(vla-put-height doc (+ dh height))
(vla-zoomextents doc)
)
(defun c:test()
(SetScreenSize400 300)
(princ)
)
; 错误:ActiveX服务器返回错误:未知名称:ZoomExtents 奇怪的是,请将load library函数添加到例程中,然后重试。
(vl-load-com)
我加上它,同样!
我将“(vla zoomextents doc)”更改为(vla zoomextents*acad*),没有错误
我将“(vla zoomextents doc)”更改为(vla zoomextents(vlax get acad object)),没有错误,
但问题并没有解决。 它在这里工作正常,您使用的是哪个版本的Autocad?2010年,如您的个人资料所示?
ACAD 2010 这是一个演示(GIF),请看。
55.zip
页:
[1]
2