明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1741|回复: 7

请看看此程序有什么毛病

[复制链接]
发表于 2004-12-29 22:16:00 | 显示全部楼层 |阅读模式
以下程序实现功能很简单"换层",大侠们看看他有什么毛病,为什么当AutoCAD打开或者新建另一个文件后此程序便失效并出现"; 错误: Automation 错误。"的字样,有什么方法让他在原来的文件里依旧能用,谢谢了!
对了我用的是AutoCAD2002,XP (DEFUN CAC (/ ss si id curlay laid lays)
(SETQ ss (vl-ssget))
(SETQ id 0)
(SETQ laid (GETSTRING "\n请输入层名::" ))
(SETQ lays (VLA-GET-LAYERS (active-document)))
(VLA-ADD lays laid)
(REPEAT (VLA-GET-COUNT ss)
(SETQ si (VLA-ITEM ss id))
(SETQ id (+ 1 id))
(VLA-PUT-LAYER si laid)
)
(PRINC)
) (DEFUN vl-ssget (/ *vl-ssget* flag)
(SETQ flag T)
(WHILE flag
(IF (SSGET)
(SETQ flag nil)
(PRINC "未选中请重新")
)
)
(SETQ *vl-ssget* (VLA-GET-ACTIVESELECTIONSET (active-document)))
) (VL-LOAD-COM)
(SETQ *acad-object* nil) ; Initialize global variable
(DEFUN acad-object ()
(COND (*acad-object*) ; Return the cached object
(T
(SETQ *acad-object* (VLAX-GET-ACAD-OBJECT))
)
) ) (SETQ *active-document* nil) ; Initialize global variable
(DEFUN active-document ()
(COND (*active-document*) ; Return the cached object
(T
(SETQ *active-document* (VLA-GET-ACTIVEDOCUMENT (acad-object)))
)
) )
发表于 2004-12-30 00:57:00 | 显示全部楼层
VLA-GET-ACTIVESELECTIONSET         


是有bug的,cad自己的问题。用别的方法替代吧


编译的时候用独立空间名试试?我没试过,有结果告诉一下:)
发表于 2004-12-30 07:39:00 | 显示全部楼层
有 Bug 可以先处理下吗
发表于 2004-12-30 09:18:00 | 显示全部楼层
VBA的办法: sName = "CURRENT"
ThisDrawing.SelectionSets(sName).Delete
Set oSel = ThisDrawing.ActiveSelectionSet
 楼主| 发表于 2004-12-30 13:51:00 | 显示全部楼层
lzh741206大侠的意思是把SelectionSets中名为"CURRENT"的SelectionSet删除 然后在求ActiveSelectionSet是吗? 对了无痕大虾,编译的时候用独立空间名也不行哦!!!!!!! 你通常用什么方式获得选择集呢(要用VLISP编,用ActiveX方法时) 我还是去试试楼上的方法!@_@ 谢谢大家!
发表于 2004-12-30 14:11:00 | 显示全部楼层
为什么要死认定使用ActiveX方法呢? autolisp轻松搞定 (defun cAC( / ss layname)
(setvar "cmdecho" 0)
(if (setq ss (ssget))
(progn
(setq layname (getstring "\n请输入层名:" ))
(command "_.layer" "n" layname "")
(command "_.change" ss "" "p" "la" layname "")
)
)
(princ)
)
 楼主| 发表于 2004-12-30 20:14:00 | 显示全部楼层
好玩嘛!
 楼主| 发表于 2005-1-2 13:46:00 | 显示全部楼层
无痕发表于2004-12-30 0:57:00VLA-GET-ACTIVESELECTIONSET 是有bug的,cad自己的问题。用别的方法替代吧
什么方法撒,让我学学,我急用 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 22:22 , Processed in 0.174858 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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