.netCAD C#生成动态块
CAD中制作动态块的步骤:
1. 打开AutoCAD软件,进入“块编辑器”界面;
2. 绘制出需要制作的图形,并将其转化为块对象;
3. 在“块编辑器”中添加属性定义,设置属性值;
4. 使用“动态块编辑器”进行属性约束、可见性设置等操作;
5. 保存动态块。
接下来是实现引线标注效果的具体步骤:
1. 在动态块中添加一个属性定义,用于表示引线长度;
2. 使用“线性参数”对该属性进行约束,设置引线长度与属性值之间的关系;
3. 在动态块中添加一个“属性参数”,用于显示引线长度的值;
4. 在引线的起点和终点处添加“拉伸操作”,使引线能够随着其它对象的移动而自适应;
5. 将引线的末端点与属性值关联,实现引线长度的自动更新。
利用C#代码也可以实现上述效果。下面是一个简单的示例:
1. 在C#中创建块对象,并设置属性定义和属性值:
BlockTableRecord btr = new BlockTableRecord();
btr.Name = "MyBlock";AttributeDefinition attDef = new AttributeDefinition();
attDef.Position = new Point3d(0, 0, 0);
attDef.Prompt = "Enter Length: ";
attDef.Tag = "Length";attDef.TextString = "0";
btr.AppendEntity(attDef);
2. 使用DynamicBlockReferencePropertyCollection类对属性进行约束:
DynamicBlockReferencePropertyCollection props = new DynamicBlockReferencePropertyCollection();
DynamicBlockReferenceProperty prop = new DynamicBlockReferenceProperty(attDef.ObjectId);
prop.PropertyType = DynamicBlockReferencePropertyTypes.Linear;props.Add(prop);
3. 在引线的起点和终点处添加拉伸操作:
Line line = new Line(new Point3d(0, 0, 0), new Point3d(1, 1, 0));line.SetDatabaseDefaults();ObjectId lineId = btr.AppendEntity(line);StretchAction saStart = new StretchAction();saStart.StretchDirection = StretchDirections.StartToEnd;StretchAction saEnd = new StretchAction();saEnd.StretchDirection = StretchDirections.EndToStart;line.AddVertexAt(0, new Point2d(0, 0), 0, 0, 0);line.AddVertexAt(1, new Point2d(1, 1), 0, 0, 0);line.Highlight();
4. 将引线的末端点与属性值关联,实现引线长度的自动更新:
Transaction tr = db.TransactionManager.StartTransaction();
try{BlockTableRecord ms = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;DynamicBlockReferenceProperty lengthProp = props.GetProperties("Length")[0];ObjectId[] objIds = { lineId };DynamicBlockReferencePropertyCollection objProps = new DynamicBlockReferencePropertyCollection(objIds);objProps.Add(lengthProp); DynamicBlockReferencePropertyCollection.UpdateStretchActions(ms, "MyBlock", objProps); tr.Commit();
}
catch (Exception ex)
{tr.Abort();
}
以上是一个简单的示例,你可以根据自己的需求进行修改和完善。希望对你有所帮助!
.netCAD C#生成动态块相关推荐
- oracle索引自增函数,oracle生成动态前缀且自增号码的函数分享
create or replace Function GetInvitationNO(prev varchar2, num1 varchar2, num2 varchar2, sessionSetti ...
- cmake导入so库_通过CMake方式生成动态库so文件
JNITest 通过CMake方式生成动态库so文件 简介 Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C.C++等本地代码所封装的 ...
- AutoCAD二次开发(.Net)之动态块
1.进入块编辑页面,添加可见性到块附近 2.点击可见性状态,添加可见性状态,如下图 3.根据定义的可见性,选择要显示的图形,右击-->对象可见性-->在当前状态中显示,更改当前的可见性状态 ...
- C++文件如何在linux下生成动态库So,以及如何使用这个动态库
引用:http://blog.csdn.net/xuguang121/article/details/7457565 不同组件之间,如何提供一个动态库给其他Team使用,这样使用者也不需要关心和维护你 ...
- python小工具myqr生成动态二维码
python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...
- Visual studio那些破事。。。(生成静态库、生成动态库、引用静态库、引用动态库)
共4个小步骤,每个小步骤你都可以新建个VS解决方案,自己跟着步骤跑一下,windows怎么[生成静态库.生成动态库.引用静态库.引用动态库]你就基本明白了@! 文章目录 1.导出静态库.lib(add ...
- phpgif图片包_php生成动态验证码gif图片
这是一个通过php生成的动态验证码图片的示例,重点是可以运行哦!下面先发下效果图: 下面是php生成动态验证码需要用到的相关类和函数. /** *ImageCode 生成包含验证码的GIF图片的函数 ...
- cad块炸开软件_CAD软件中将CAD图形定义为旋转动态块的操作技巧
在我们使用浩辰CAD软件绘制CAD图纸的过程中,如果频繁的创建图块,会浪费我们的时间,为了提高绘图速率,可以将CAD图纸中的图形定义为动态块,那怎么在CAD软件中将CAD图形定义为旋转动态块呢?接下来 ...
- .NET中生成动态验证码
NET中生成动态验证码 验证码是图片上写上几个字,然后对这几个字做特殊处理,如扭曲.旋转.修改文字位置,然后加入一些线条,或加入一些特殊效果,使这些在人类能正常识别的同时,机器却很难识别出来,以达到防 ...
最新文章
- Android之View绘制流程源码分析
- Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理
- php超链接访问,怎么给一个PHP密码访问页面加超链接
- python3精要(35)-模块(1)-import
- Delphi TIniFile 用法
- 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表
- java终结者,动态语言是否会成为JAVA的终结者?
- 小鹏汽车提交赴美IPO:上半年营收1.42亿美元 何小鹏持股31.6%为最大股东
- power bi 日期计算_2020国内外常用的BI商业智能软件
- 公司内部z区域网络升级可行性方案
- 蓝桥杯 ADV-134算法提高 校门外的树
- 每日N题—数据结构题集
- 券商pb系统量化交易接口代码
- 服务器主板电池的电压不稳定怎么办,轻松解决CMOS掉电烦恼这绝招
- FileUpload1.PostedFile.FileName取不到完整路径
- Git遇到的问题:This is not a valid source path/URL
- 速卖通尺寸表 html源码,最新!速卖通尺码表功能上线
- 提问的智慧( 中文阅读笔记)#
- 虚拟机由于找不到msvcr120dll_计算机提示丢失msvcr120.dll文件怎么办?
- weblogic上服务器上日志查看及ohs服务器重启