本帖最后由 作者 于 2009-1-4 20:58:52 编辑
我的程序是对一个属性块上添加反应器,如果该属性块的值更改,另一个属性块对应属性也更改相同的值。看视简单,但还是无法实现,关键在回调函数上: 假如添加反应器的属性块为 obj1,用下面语句添加反应器: (setq btlreactor (vlr-object-reactor (list obj1) "btl reactor" '((:vlr-subobjmodified . changeth)))) 尝试用几种方法写回调函数,总是不成功,“错误:Automation 错误,未提供说明” 或者AutoCAD突然退出,请各位大侠帮忙! 问题已解决!在回调函数中,不能使用vla函数,否则,出错!改用lisp的函数改写,成功! 但是,AutoCAD的帮助文件中说明“回调函数只能用 ActiveX 方法修改 AutoCAD 对象,而 ActiveX 方法要求使用 VLA 对象。”,用VLA函数却不成功,用entget在回调函数中可以获得实体,真不明白!!! |