您好,欢迎光临本网站![请登录][注册会员]  
文件名称: C#二次开发AutoCAD动态加载自定义菜单和命令 .pdf
  所属分类: C#
  开发工具:
  文件大小: 635kb
  下载次数: 0
  上传时间: 2019-09-04
  提 供 者: zhang******
 详细说明:在AutoCAD二次开发过程中,一般都是开发自定义的命令,然后在菜单栏/工具栏/菜单面板中添加对应的菜单,通过点击菜单调用开发的命令。 对于实现以上问题,传统的做法就是在二次开发类库中开发一个命令方法,并且方法被标注为:[CommandMethod("XXX")],然后制作CUIX文件,在AutoCAD中加载命令所在的类库(dll)和CUIX文件,通过点击菜单调用命令。 当我们开发的命令较多,且需要根据场景显示不同的菜单的时候,传统的做法就非常麻烦了。且每次修改都要改代码,灵活性不高。所以我们就想通过动态配置,CAD每次启动时能动态的加载我们配置好的命令和菜单。 具体实现方法如附件内容所示!C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 return d //自定义的命令对象类 public class ConmmandModel pub_ic string Namei get: set pubiic string DisplayName get; set;) pub- ic string Description: get; set pubic string Assemb-yName( get: set: j pub ic string ClassName get; set;)= pub_ic string Me thodName get: set //图标名称 /// ibic string ImageName i get; set; /// /命令的显示方式 // pub_ic Command) isplayStyle displayStylei get;set;}= ComrandDisplaySty le.图标文本; //summary> //指示是否显示为大图标 7i pubiic bool ShowLarge Image( set; set;)= false; // /指示在当前命令之后是否显示分隔符 C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 pub_ic bool Show Separator. get: set:= false mallary/ //指示当前命令是否可用 ///(/summary) pub ic bool Enabled( get: set:)=t pub ic enum CommandD: splayStyle 仅文本=0 仅图标=1 图标文本=2 3,实现加载界面中菜单的方法 额外需要引用的d1 Ac Windows.dl1(在 AutocaD安装目录下可找到) Windows.dl(在 AutoCaD安装目录下可找到) Presentation framework.d11(系统dll,可自动引用过来) 额外需要引用的命名空间 using System. Collections. Generic; using Autodesk. Windows C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 using Autodesk. AutoCAD Ribbon using System. Drawing using System. Windows Media. Imaging using System. Drawing Imaging ///s Id== id); //HIxXXJ3 if (ribbonl'ab null) ribbonTab- new RibbonTabo Id- id 1 RibbonServices. RibbonPaletteSet RibbonControl Tabs Add (ribbonTab ribbon tab.lite="CAD)二次开发":/面板标题 ribbonTab Panels Clear o var commands- readConfigCommands O;//读取所有配置的命令 //过滤出所有的命令可用的命令,并根据类型分组 var groups commands Where(s =>s Value Where(m =>m Enabled). Count(>0). ToDictionary(s =>s Key s=>s Value. Where(m=>m Enabled). ToList() foreach (var group in groups) var panclar- new RibbonPancl Source(:/新建一个子面板 C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 panelS. Title= group.Key:/将子面板名称设置为分类名称,也即界面上看到的‘通用’,‘系统 var panirow= new RibbonRowPane l;//菜单行 foreach (var cmd in group. Value) var button- new ribbonBut ton(;/新建一个命令菜单按钮 button. Commandhandler= new CADCommandhandler0;/设置读取菜单的触发命令对象,命令对象见后面类 button. CommandParameter=cmd;//设置菜单触发命令传入的参数 button.Text= cmd DisplayName;//设置当前菜单的显示名称 button. Description=cmc. Description;//设置当前菜单的描述 //通过配置的参数,设置是否显小文木 button. Showtext-cmd. Displaystylc- Commandmodel. CommandDisplayStylc.仅文本||cmd. Displaystyle- Commandmod. CommandDisplaystylc.图标文本; //通过配置的参数,设置是含显示图标 button. Show Image=cnd. DisplayStyle= CommandModel. CommandDisplaystyle.仅图标‖|cnd. Displaystyle== CommandMode l. CommandDisplaySty le.图标文本; button.Size=cmd. ShowLargelmage? Ribbonltemsize. Large: Ribbonltemsize. Standard;//设置当前命令是显示大图标还是小图标 button Orientation -cmd. ShowLarge Image System Windows Controls Orientation. Vertical: System. Windows Controls Orientation. Horizontal button. Large image- gctBi tmap imagc(cmd. ImagcName, new size(32,32)://读取并设置已配置的命令大图标 button. Image= getBitmap Image(cnd. Image\ame, new Size(16,16));//读取并设置已配置的命令大图标 //人图标按钮的处坦 if(cmd. Show arge l mage) if (panlRow Items Count >0) //将小图标组不满三行的,需要补齐。 while (pan I Row I tems OfT ype(. Counto< 3) panlRow. Itcms Add(new RibbonBut ton() Show Image- falsc, ShowText-true, IsEnabled- falsc 1) C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 panlRow. Items. Add(new RibbonRowBreak () panelSrc. Items. Add(panIr pane 1Src Items Add(button) if(cnd. Show Separator)/判断是否需要在后面显示分割线,这里也是配置的参数 panelSrc. Items. Add (new Ribbon Separator () panlRow new RibbonRowPane1O Add(button) if(cmd Shov/ Separator) panlRow. Items. Add(new RibbonSeparator O) panlRow. Items. Add (new RibbonRow Break () var button Count- panlRow Items OfType(. Count o if (button Count >-3) 1Src. Items. Add(panlrow) pan I Row RibbanRowlane l O /最后一组不满三行的需要补齐 if (group. Value IndexOf(cmd)=- group. Value Count.- 1) whi le (butt onCount< 3) panlRow. Items. Add(new RibbonBut ton o Show Image- falsc, Show-true, IsEnablcd-falsc 1) C#二次开发 Auto cad动态加载自定义菜单和命令西域雪狼2019年9月4日 panlRow. Items. Add(new RibbonR O) button pane lSrc. Items. Add (pan I Row panlrow Ribbon RowPanel( var panel new Ri bbonPanelo pane l Source= pane I Src ribbontab. Panels.Add( panel);//将已创建的命令加载到面板中 / //读取图片 mmary ///
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: c#中望cad
 输入关键字,在本站1000多万海量源码库中尽情搜索: