using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GrxCAD.ApplicationServices; using GrxCAD.Runtime; using GrxCAD.Interop; namespace HCTools { class Menus { public void AddMenu() { //COM方式获取AutoCAD应用程序对象 GcadApplication acadApp = (GcadApplication)Application.AcadApplication; //为AutoCAD添加一个新的菜单,并设置标题为"地形图辅助" GcadPopupMenu pm = acadApp.MenuGroups.Item(0).Menus.Add("地形图辅助"); //声明一个AutoCAD弹出菜单项,用于获取添加的菜单项对象 GcadPopupMenuItem pmi; //在新建的菜单中添加一个名为"点线矛盾"的菜单项 pmi = pm.AddMenuItem(pm.Count + 1, "点线矛盾", "PLError "); //设置状态栏提示信息 pmi.HelpString = "检查地形图点线矛盾"; pmi = pm.AddMenuItem(pm.Count + 1, "点线重叠", "PLOverlap "); pmi.HelpString = "检查地形图点线重叠"; pmi = pm.AddMenuItem(pm.Count + 1, "地物压盖", "FeaatureOverlap "); pmi.HelpString = "检查地形图地物压盖"; pmi = pm.AddMenuItem(pm.Count + 1, "节点提取", "pickupPoint "); pmi.HelpString = "节点提取"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线裁剪", "Cutdgx "); pmi.HelpString = "等高线裁剪"; //pmi = pm.AddMenuItem(pm.Count + 1, "伪节点检查", "FakeCheck "); //pmi.HelpString = "伪节点检查"; //pmi = pm.AddMenuItem(pm.Count + 1, "悬挂节点检查", "HangCheck "); //pmi.HelpString = "悬挂节点检查"; pmi = pm.AddMenuItem(pm.Count + 1, "批量插入DOM", "InstDOM "); pmi.HelpString = "批量插入DOM"; //添加一个分隔条以区分不同类型的命令 pm.AddSeparator(pm.Count + 1); //pmi = pm.AddMenuItem(pm.Count + 1, "图斑信息", "Report "); //pmi.HelpString = "图斑信息"; //pmi = pm.AddMenuItem(pm.Count + 1, "填充", "Fills "); //pmi.HelpString = "闭合多段线纯色填充"; //pmi = pm.AddMenuItem(pm.Count + 1, "图斑信息", "ViewPoint "); //pmi.HelpString = "图斑信息"; ////添加一个分隔条以区分不同类型的命令 //pm.AddSeparator(pm.Count + 1); pmi = pm.AddMenuItem(pm.Count + 1, "自动生成图框", "SheetMap "); pmi.HelpString = "自动生成图框"; //pmi = pm.AddMenuItem(pm.Count + 1, "分幅输出地形图", "Clipdwg "); //pmi.HelpString = "分幅输出地形图"; //pmi = pm.AddMenuItem(pm.Count + 1, "图幅接边", "joinedge "); //pmi.HelpString = "图幅接边"; pmi = pm.AddMenuItem(pm.Count + 1, "批量修改图框信息", "BATChange "); pmi.HelpString = "批量修改图框信息"; pmi = pm.AddMenuItem(pm.Count + 1, "图层批量删改", "Layercg "); pmi.HelpString = "图层批量删改"; pmi = pm.AddMenuItem(pm.Count + 1, "图层属性表", "Attribute "); pmi.HelpString = "图层属性表"; //添加一个分隔条以区分不同类型的命令 pm.AddSeparator(pm.Count + 1); pmi = pm.AddMenuItem(pm.Count + 1, "高程点检查", "PtCheck "); pmi.HelpString = "检查高程点值与注记是否一致"; pmi = pm.AddMenuItem(pm.Count + 1, "高程点密度检查", "PtDenck "); pmi.HelpString = "检查高程点在一定范围内密度"; pmi = pm.AddMenuItem(pm.Count + 1, "删除内部高程点", "Deletept "); pmi.HelpString = "删除内部高程点"; //pmi = pm.AddMenuItem(pm.Count + 1, "删除整数高程点", "Deleteintgcd "); //pmi.HelpString = "删除整数高程点"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线分层", "Hierarchy "); pmi.HelpString = "等高线分层"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线检查", "CLCheck "); pmi.HelpString = "等高线检查"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线高程注记密度检查", "DgxAnnDenck "); pmi.HelpString = "等高线高程注记检查"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线缩编", "Dgxsb "); pmi.HelpString = "等高线缩编"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线拉线修改", "CLfix "); pmi.HelpString = "等高线拉线修改"; //pmi = pm.AddMenuItem(pm.Count + 1, "等高线内插", "Dgxinter "); //pmi.HelpString = "等高线内插"; //pmi = pm.AddMenuItem(pm.Count + 1, "示坡线绘制", "SlopeLine "); //pmi.HelpString = "示坡线绘制"; //添加一个分隔条以区分不同类型的命令 pm.AddSeparator(pm.Count + 1); pmi = pm.AddMenuItem(pm.Count + 1, "线连接", "Connect "); pmi.HelpString = "线连接"; pmi = pm.AddMenuItem(pm.Count + 1, "检查线自相交", "SelfIntersect "); pmi.HelpString = "线自相交"; pmi = pm.AddMenuItem(pm.Count + 1, "检查线线相交", "EachIntersect "); pmi.HelpString = "线线相交"; pmi = pm.AddMenuItem(pm.Count + 1, "等高线高程取整", "EleRd "); pmi.HelpString = "等高线高程取整"; //pmi = pm.AddMenuItem(pm.Count + 1, "等高线过河流道路房屋陡坎裁剪", "Cutdgxthrorvrd "); //pmi.HelpString = "等高线过河流道路房屋陡坎裁剪"; //添加一个分隔条以区分不同类型的命令 pm.AddSeparator(pm.Count + 1); //pmi = pm.AddMenuItem(pm.Count + 1, "合并面", "combFace "); //pmi.HelpString = "合并面"; //pmi = pm.AddMenuItem(pm.Count + 1, "分割面", "splitFace "); //pmi.HelpString = "分割面"; //将定义的菜单显示在AutoCAD菜单栏的最后 pm.InsertInMenuBar(acadApp.MenuBar.Count + 1); } } }