打开cad如何自动加载ribbon菜单
写了一个自定义ribbon菜单和一个自定义工具栏,我想在打开cad的时候就可以自动加载工具栏和ribbon菜单。
我将自定义工具栏和自定义ribbon菜单的方法写在继承自
Autodesk.AutoCAD.Runtime.IExtensionApplication类的Initialize()方法中。
写了一个lisp文件放在cad启动目录中,让他启动时自动加载这个dll。
但是只能加载工具栏,ribbon菜单却无法加载。
看了一下cad的命令,是在启动cad时加载_ribbon命令的。
所以猜想是因为cad本身的ribbon命令还没执行完毕,
RibbonControl对象还为空,所以没办法加载自定义的ribbon菜单。
我想如果我知道cad命令已经加载完了,再控制我的dll自动加载是否就可以了呢?
如果可以,我该如何获得cad启动后自身命令的加载状态?
还望大家指点。
谢谢!
可否挂个命令事件 commandend 之后再加载你的 chmenf087 发表于 2013-8-7 20:29 static/image/common/back.gif
可否挂个命令事件 commandend 之后再加载你的
有道理!但是Commanded之后的接口是哪个呢? document.CommandEnded在这个事件之后行不? 多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着创建Ribbon
感谢晓东的回答。
public void Initialize()
{
Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler(ComponentManager_ItemInitialized);
}
void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
{
if (Autodesk.Windows.ComponentManager.Ribbon != null)
{
createRibbon();
Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler(ComponentManager_ItemInitialized);
}
}
public static void createRibbon()
{
//add ribbon here..
}
public void Terminate()
{
} epwt 发表于 2013-8-9 22:21 static/image/common/back.gif
多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着 ...
请教下,在CAD2007环境已实现注册表自动加载,如何实现自动启动命令? 白糖 发表于 2013-10-14 01:44 static/image/common/back.gif
请教下,在CAD2007环境已实现注册表自动加载,如何实现自动启动命令?
直接在注册的时候把命令添加添加进注册表。 epwt 发表于 2013-10-15 14:58 static/image/common/back.gif
直接在注册的时候把命令添加添加进注册表。
请问具体怎么添加命令注册信息? epwt 发表于 2013-10-15 14:58 static/image/common/back.gif
直接在注册的时候把命令添加添加进注册表。
代码差不多 ,就是不知道怎么在注册的时候把命令添加进注册表,看到了能否回复下呀 epwt 发表于 2013-8-9 22:21 static/image/common/back.gif
多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着 ...
大神,能否把这段代码共享出来,我是新手,很需要。
自己试了很久都不能正常加载工具条。
页:
[1]
2