本帖最后由 jacenhe 于 2022-2-13 16:55 编辑
自动提示的代码里有些语法错误,例如 -> 只是用来转义 . 不能写到代码里。
另外智能提示变量是全局有效的,最好加上前缀避免冲突干扰,例 !Documents. 可能带来问题。
如果基于 com.cad 扩展,也可以这样写:import com.cad;
class com.cad2{
ctor(...){
this = ..com.cad(...)
};
}
这样可以继承标准库所有的功能、同步更新,也可以任意修改扩展。
看了一下你代码里 GetAcCmColor 这几个函数是用不了的,
代码里不能用 -> 代替点,直接写 "AutoCAD.AcCmColor" 就可以。
而且他这个比较特别,必须加上版本号,com.cad 最新版本添加了一个 GetCadInterfaceObject 函数用于做这事。
然后 com.cad 添加了这几个函数: namespace com;
class cad{
//.....其他代码省略
GetLayerStateManager = lambda() this.GetCadInterfaceObject("AutoCAD.AcadLayerStateManager");
GetAcCmColor = lambda( ) this.GetCadInterfaceObject("AutoCAD.AcCmColor");
GetSecurityParams = lambda() this.GetCadInterfaceObject("AutoCAD.SecurityParams");
}
测试了一下这样写就可以用了。
像 AutoCAD 这样复杂的接口,智能提示不能完全替代文档,如果把所有智能提示做起来工作量太大,建议加一些常用的就可以了。
|