随笔分类 - cad.net
摘要:结果缓冲区ResultBuffer 即 Autodesk.AutoCAD.DatabaseServices.ResultBuffer 类型. 使用ResultBuffer时需要提供一个数据对, 每个数据对包含一个数据类型描述和一个值, 这些数据对是 Autodesk.AutoCAD.Database
阅读全文
摘要:事务栈 设计概念 事务栈主要是作为一个代理类来保证流程的顺序正确, 不耦合官方的API,做一个代理类是很正常的, 例如中望API缺失,而你的下游代码又不想一个个预处理,就可以通过代理类提供虚假API先. 它才13个指针(9个符号表+4个本类)+1个表记录字典,不存在性能瓶颈, 而且是符号表是惰性求值
阅读全文
摘要:布局 删除布局并切换布局 可能Acad前端需要拦截切换布局,并加入刷新界面的原因, 数据库没有切换布局属性,例如db.Layout = ? 我们仍然需要通过布局管理器,而它的取值会经过WorkingDatabase, 所以后台打开图纸后,要设置WorkingDatabase,否则会报错 eSetFa
阅读全文
摘要:基础 众所周知,我们很经常找到一个目标,然后中断搜索, 传统方式: var array = int[] { 1,5,6,3,2,8,9,6,5,4 }; var target = 8; int i; for(i = 0; i < array.Length; i++) { if (array[i] =
阅读全文
摘要:案例250119 private static List<string>? GetPrintList(DBTrans tr, SelectionSet ss) { List<string> printLines = []; foreach (var id in ss.GetObjectIds())
阅读全文
摘要:原有连接 1,扫描线算法 https://www.cnblogs.com/JJBox/p/12571436.html 2,扫描线代码 https://www.cnblogs.com/JJBox/p/18652906.html 3,扫描线辅助类 https://www.cnblogs.com/JJBo
阅读全文
摘要:public class TestCommand { [CommandMethod(nameof(CurveBoundDemo))] public void CurveBoundDemo() { using DBTrans tr = new(); var pl = Env.Editor.Select
阅读全文