马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 newer 于 2017-5-18 10:17 编辑
win10 64位系统cad2012版本下这个程序运行时总提示: ; 错误: 参数类型错误: VLA-OBJECT nil, 请教问题出在哪里?谢谢!
 - ;;需要先下载安装dynwrapx.dll,然后才能正常使用
- ;;可以重新下载一个dynwrapx.dll文件,复制到c:\windows\system32文件夹【64位系统在C:\Windows\SysWOW64目录】,然后【开始-运行-输入C:\Windows\SysWOW64\regsvr32 dynwrapx.dll】即可。
- ;;自带命令syswindows也可很方便的实现,不过窗口还有标题栏
- ;;将两个打开的dwg窗口左右均布
- (vl-load-com)
- (defun c:docwinleft (/ app doc wrap hwnd w1 h1)
- (setq app (vlax-get-acad-object)) ;CAD程序对象
- (setq doc (vla-get-ActiveDocument app)) ;当前文档对象
- (setq wrap (vlax-create-object "DynamicWrapperX")) ;创建DynamicWrapperX对象
- (setq hwnd (vla-get-hwnd doc)) ;当前文档句柄
- (vla-put-windowState doc 3) ;当前文档窗口最大化
- (setq w1 (fix (* (vla-get-width doc) 0.5))) ;设w1为当前文档窗口宽度的一半
- (setq h1 (fix (vla-get-Height doc))) ;设h1为当前文档窗口高度
- (vla-put-windowState doc 1) ;当前文档窗口正常
- (vlax-invoke wrap 'Register "USER32" "MoveWindow" "i=llllll" "r=l");注册MoveWindow函数
- (vlax-invoke wrap 'MoveWindow hwnd -4 -25 (+ w1 7) h1 1) ;移动当前文档窗口至左侧,并改窗口宽度为最大化时的一半
- (vlax-release-object wrap)
- (princ)
- )
- (defun c:docwinright (/ app doc wrap hwnd w1 h1)
- (setq app (vlax-get-acad-object)) ;CAD程序对象
- (setq doc (vla-get-ActiveDocument app)) ;当前文档对象
- (setq wrap (vlax-create-object "DynamicWrapperX")) ;创建DynamicWrapperX对象
- (setq hwnd (vla-get-hwnd doc)) ;当前文档句柄
- (vla-put-windowState doc 3) ;当前文档窗口最大化
- (setq w1 (fix (* (vla-get-width doc) 0.5))) ;设w1为当前文档窗口宽度的一半
- (setq h1 (fix (vla-get-Height doc))) ;设h1为当前文档窗口高度
- (vla-put-windowState doc 1) ;当前文档窗口正常
- (vlax-invoke wrap 'Register "USER32" "MoveWindow" "i=llllll" "r=l");注册MoveWindow函数
- (vlax-invoke wrap 'MoveWindow hwnd (- w1 3) -25 (+ w1 3) h1 1) ;移动当前文档窗口至右侧,并改窗口宽度为最大化时的一半
- (vlax-release-object wrap)
- (princ)
- )
|