CAD二次开发 - 可缩放块(四)

1、说明

可进行缩放性注释的对象有:文字、标注、图案填充、公差、多重引线、块及属性。

2、为图形添加、删除注释比例步骤

1)使用AnnotationScale类(在DatabaseServices命名空间下)构造函数创建注释比例对象并设置相关属性;

2)使用图形的注释比例列表(ObjectContextCollection);

3)使用(ObjectContextCollection类)的AddText函数将新建的注释比例对象添加到注释比例列表中。

2、具体代码

 1         public static AnnotationScale AddScale(this Database db, string scaleName, double paperUnits, double drawdingUnits)
 2         {
 3             AnnotationScale scale = null;
 4
 5             ObjectContextManager manager = db.ObjectContextManager;
 6
 7             //获得当前图形的注释比例列表,名为“ACDB_ANNOTATIONSCALES”
 8             ObjectContextCollection occ = manager.GetContextCollection("ACDB_ANNOTATIONSCALES");
 9
10             if (!occ.HasContext(scaleName))
11             {
12                 scale = new AnnotationScale();
13                 scale.Name = scaleName;
14
15                 scale.PaperUnits = paperUnits;
16                 scale.DrawingUnits = drawdingUnits;
17                 occ.AddContext(scale);
18             }
19             return scale;
20
21         }

为当前图形插入一个新的注释比例

 1      /// <summary>
 2         /// 为实体添加指定的注释比例
 3         /// </summary>
 4         /// <param name="entId">实体的ObjectId</param>
 5         /// <param name="scaleNames">注释比例名列表</param>
 6         public static void AttachScale(this ObjectId entId, params string[] scaleNames)
 7         {
 8             Database db = entId.Database;
 9
10             DBObject obj = entId.GetObject(OpenMode.ForRead);//获取entID的实体对象
11
12             if (obj.Annotative != AnnotativeStates.NotApplicable)//如果实体支持注释缩 放
13             {
14                 if (obj is BlockReference)
15                 {
16                     BlockReference br = obj as BlockReference;
17                     //打开对应的块表记录
18                     BlockTableRecord btr = (BlockTableRecord)br.BlockTableRecord.GetObject(OpenMode.ForWrite);
19                     //设置块表记录为可注释缩放
20                     btr.Annotative = AnnotativeStates.True;
21                 }
22                 else if (obj.Annotative == AnnotativeStates.False)
23                     obj.Annotative = AnnotativeStates.True;
24
25                 obj.UpgradeOpen();//切换实体为写的状态以添加注释比例
26                 //获取当前图形的对象比例管理器
27                 ObjectContextManager ocm = db.ObjectContextManager;
28
29                 //获得当前的图形的注释比例列表,
30                 ObjectContextCollection occ = ocm.GetContextCollection("ACDB_ANNOTATIONSCALES");
31                 foreach (string scaleName in scaleNames)
32                 {
33                     //获取名为scaleName的注释比例
34                     ObjectContext scale = occ.GetContext(scaleName);
35                     //若不存在scaleName的注释比例,则结束本次循环
36                     if (scale == null) continue;
37                     //为实体添加名为scaleName的注释比例
38
39                     ObjectContexts.AddContext(obj, scale);// ObjectContexts要添加acmgdinternal.dll引用
40                 }
41                 obj.DowngradeOpen();//为了安全将实体切换为读的状态
42             }
43
44         }

为实体指定注释比例

时间: 2024-10-25 19:02:04

CAD二次开发 - 可缩放块(四)的相关文章

spss C# 二次开发 学习笔记(四)——Spss授权

Spss的授权方式有两种,单机版和网络版. Spss的激活,在联网的情况下,通过20位的激活码激活,在未联网的情况下,Spss根据机器获取一个类似4-XXXX的锁定码,然后由激活码和锁定码算出一个授权码,来激活程序. 整个激活过程,可以在IBM网站上处理,申请一个单号,然后注册,然后逐步操作,也可以直接打服务电话,由IBM相关人员帮助处理. 网络版的授权模式为,在证书服务器上安装证书授权管理程序,然后客户机通过证书服务器进行授权,允许在任意客户机上安装Spss并授权,但并发数目收到购买的数量的限

C#进行CAD二次开发环境配置

最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说,推荐一本我入门的书籍,就是李冠亿先生的<深居浅出AutoCAD二次开发>,写的非常不错,把这本书中的Demo自己手写一遍大概就能知道CAD二次开发到底是个什么东西了. 开发环境配置 开发环境 Win10 x64 CAD 2010 Visual Studio 2012 环境配置 首先要安装CAD软

CAD二次开发中浮动面板不浮动的问题

CAD二次开发中创建了一个浮动面板,想让它创建出来后以浮动状态显示, 但是DockSides.None设置完后,面板还是不浮动.搞了很久,最后原来是 需要先设置Visible,再设置DockSides,这样就好了. ps = new PaletteSet("PSCollectPart"); ps.Style = PaletteSetStyles.NameEditable | PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.S

CAD二次开发控件,dwg控件,网页DWG控件,手机浏览编辑DWG控件

梦想绘图插件5.2(MxDraw5.2) 是国内最强,最专业的CAD开发插件(控件),不需要AutoCAD就能独立运行. 控件使用VC 2010开发,具有30万行代码规模,最早从2007年第一个版本完成,经过多年的累积已经非常稳定可靠,功能完善.有关键的空间搜索算法,并使用汇编优化,可以处理50万级实体,图形的显示和处理效率比同类产品高出很多. 梦想绘图3d插件6.0(MxDraw6.03d),使用二维控件的显示核心,基于 OpenCASCADE 几何造型引擎, 创建锥.柱.环等基本几何体, 对

CAD 二次开发----- 块(一)

1.块定义与块参照两个概念 块定义类似于模具,而块参照类似于模具浇筑出来的模型,在图形中只需用块定义来保存块的实际几何组成,而仅用插入点和比例因子来存储块定义,因为块参照的几何形状与快参照完全一样,仅大小不同, 好处有: 不需要存储款块参照中的实体,减小了图形文件: 只需要修改块定义,块参照会自动更新,减轻了修改和维护工作. 2 .实例代码 创建一个块并添加到数据库中 /// <summary> /// 插入一个块参照到CAD图形中 /// </summary> /// <p

CAD二次开发---导入外部文件中的块并输出预览图形(五)

思路: 1)首先要定义一个数据库对象来表示包含块的文件,改数据库对象会被加载到内存中,但不会被显示在CAD窗口中. 2)调用Database类的ReadDwgFile函数将外部文件DWG文件读入到新创建的数据库对象中. 3)最后调用Database类的WblockCloneObjects函数将外部的DWG文件中块对象复制到当前数据库中. 1 /// <summary> 2 /// 外部文件导入块, 3 /// </summary> 4 /// <param name=&quo

CAD 二次开发----- 块

/// <summary> /// 插入一个块参照到CAD图形中 /// </summary> /// <param name="spaceId">模型空间Id</param> /// <param name="layer">要插入的图层名</param> /// <param name="blockName">块名</param> /// <p

基于C#编程语言的CAD二次开发技术---展测量点坐标

一.引言       AutoCAD 是目前世界上功能最强大的绘图软件.在测绘行业,使用 AutoCAD 直接绘图,或用以 AutoCAD 为平台开发出的各种绘图软件来绘图,大大提高了绘图的精度.准度和速度.今天介绍一下如何用C#编写将野外测量点坐标展入到 AutoCAD 的.NET程序集. 二.知识准备      1.了解dat坐标文件的格式,本次以常用格式 “ 点名,编码,东坐标,北坐标,高程 ”  为例.      2.文件读取,字符串处理      3.AutoCAD .NET 开发基础

基于.NET的CAD二次开发学习笔记二:AutoCAD .NET中的对象

1.CAD对象:一个CAD文件(DWG文件)即对应一个数据库,数据库中的所有组成部分,看的见(包括点.多段线.文字.圆等)和看不见(图层.线型.颜色等)的都是对象,数据库本身也是一个对象. 直线.圆弧.文字和标注等图形对象都是对象. 线型与标注样式等样式设置都是对象. 图层.编组和块等组织结构都是对象. 视图与视口等图形显示都是对象. 甚至图形和 AutoCAD 应用程序本身也是对象. 2.CAD中的容器:对于任何一个DWG文件,都会创建下列容器对像:九个固定的符号表(如下)和有名对像字典(包含