如何自动加载持久R
如何自动加载持久性反应堆及其callbak功能?谢谢 持久性反应堆仍处于牵引状态,无需重复加载。然而,回调函数应该从文件中加载,因此在其他计算机上进行时存在不便。不幸的是,回调函数不能与а*一起传输。dwg文件。当然,回调函数可以在用户定义的字典中作为文本传输,但在其他计算机上应该是一个读取和加载此代码的函数。 反应器只是事件和回调函数之间的链接。虽然此链接仍然存在,但回调函数本身不是reactor的一部分,通常也不是绘图的一部分。只有在AutoCAD中加载了其关联的回调函数时,图形中保存的反应器才可用。如果在单独的命名空间VLX中定义reactor和回调函数,则可以在打开图形时自动发生这种情况。(摘自《AutoLISP开发人员指南》)
如何让它们工作?!如果在单独的命名空间VLX中定义reactor和回调函数。
我可以搞错,但可以肯定的是,这里有什么错。您当然可以将reactor和回调函数编译成*。vlx具有单独的命名空间并进行检查。 (setq myCircle)
(程序
(setq ctrPt(getpoint“\n指定圆的中心点:”)
半径(距离ctrPt(getpoint ctrPt“\n指定圆的半径:”))
)
(vla addCircle)
(vla获取模型空间
(vla get ActiveDocument(vlax get acad object)))
(vlax-3d-point ctrPt)
半径
)
)
)
;;持久性反应堆
(setq circleReactor(vlr pers(vlr object reactor(list myCircle)“Circle reactor”'(:vlr-modified.print radius)))))
;;回调函数
(defun打印半径(通知对象反应堆对象参数列表)
(vl load com)
(条件
((vlax-property-available-p通知程序对象“Radius”)
(princ“圆的半径为:”)
(princ(vla get radius notifier对象))
)
)
)
;-------------------
当打开加载上述lisp代码的dwg文件时,如何自动加载持久反应器“circleReactor”及其callbak函数“print radius”?
页:
[1]