该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
基础知识 0x01 去除格式 在C#上面多行文字去除格式是很简单的,如下: string content = mText.Text; mText.Text = content; 0x02 尺寸标注 尺寸标注本质上就是一个特殊的块,它的文字也是多行文字, 内容有替换文本和测量值两种模式,改为<>是可以 阅读全文
摘要:
读后感 经过艰苦卓绝的两天,我终于看完官网博客内容了. 这是它的最后一页: https://adndevblog.typepad.com/autocad/page/170/ 此处并没有kean的,可能是因为kean是专栏... 我发现他们技术写得挺分散的. 不如看惊惊的博客,那才是真正的cad博客: 阅读全文
摘要:
解析DWG 本文来自 https://blog.csdn.net/jiangyb999 0x01_文件结构 总体结构 DWG文件可分为2部分:文件头和数据. 数据部分在物理上分页(Page)存储的, 在逻辑上由一个或多个页组成一个段(Section). 0x01a_文件头 文件头长度为0x100个字 阅读全文
摘要:
定点数好处 发现不少人组合了"大版本.小版本"然后判断字符串, 虽然效率上面不差多少,但是不太考究细节是不对的.(因为我变强了,要节约内存了注重效率了) 1,有序数组比起hashmap来说占用内存少, 并且序列化和反序列化也是有序的,顺序读写,载入即用. 2,数据太少会是全量缓存,二分法此时运行是很 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
拉伸填充 拉伸填充在Lisp做不好是有原因的,此链接就暴露了Lisp制作的许多缺点:例如Lisp应对ESC会中断,此时造成可怕的回调中断问题. http://bbs.mjtd.com/thread-181607-1-1.html 我将带大家解读一次我所写的C#拉伸填充. https://gitee. 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
捕捉点卡顿 cad现在采用了一种密集填充就不显示的策略. 系统变量hpmaxlines:默认值100000(十万). 其实挺傻的, 我们无论何时都要看到填充啊. 不然我怎么删掉密集填充呢? 不然我还以为没有填充再填充一次呢~ 它卡顿是发生在画图期间,鼠标经过填充区域密集计算交点,端点...密集计算长 阅读全文
摘要:
项目简介 备份windows桌面的图标位置到json 项目是 net7 nativeAOT 的框架,内有 json 生成器的处理(为什么强调?因为有坑,结构体需要写个特性,否则会是{}). 编译方式 下载net7框架之后: 在.csproj文件的路径上面输入cmd,回车: dotnet publis 阅读全文
摘要:
由于Point3d的字段是设置了set保护,那么我们可以利用不安全操作来进行: .csproj加入: <PropertyGroup> <AllowUnsafeBlocks>True</AllowUnsafeBlocks> </PropertyGroup> 结构: 准备一个相同的结构,需要直接暴露字段 阅读全文
摘要:
插入到函数前后 曾几何时,大家会冥冥之中觉得,想在函数执行时候加一个执行前/执行后的效果. 但是函数是很难修改的,函数体body被编译成MSIL中间语言了, 没有经过一定汇编培训的话是困难重重. 并且想改的函数或许已经写了很多地方了, 直接加入两个前后函数并不合适, 未来还可能存在修改,又不要这两个 阅读全文
摘要:
查找块定义的全部引用 查找块定义的全部引用,也就是图纸上的同名块. 一共有两种方案, 1,遍历全图; 2,通过cad内部储存机制(内部的索引组织表); 遍历全图必然比自带的获取慢,虽然也没有慢多少就是了. 其中获取嵌套块的id,大家可以自己推导一下规律... brRec要是块参照的,若是模型空间就什 阅读全文
摘要:
合并图层 public class LayerCommands { [CommandMethod(nameof(CmdLayerMerge))] public void CmdLayerMerge() { using DBTrans tr = new(); // 1,合并表<来源图层名,目标图层名> 阅读全文
摘要:
生成填充的类 渐变填充部分参考了才鸟的书里的代码,但是我改的也挺多的... 调用 namespace JoinBox { public partial class CmdTest { /// <summary> /// 测试填充 /// </summary> [CommandMethod("CmdT 阅读全文
摘要:
说明 重构了一下自己的几处JIG代码, 发现可以抽象出一些公共内容,不再每次写类继承(麻烦). 设置JIG不预览: setvar DRAGMODE 0是不预览,2是预览 控制进行拖动的对象的显示方式 你可以自行加入到封装或者命令层实现. JIG每次克隆图元显示了,再立即释放,这个是为什么呢? 官方A 阅读全文
摘要:
动图演示 原理 分裂 通过一个轴向矩形(非旋转)边界进行中心点分裂四个轴向矩形, 0x01 插入时候会一直分裂四个矩形(总是平均的面积),当分裂面积小于你插入 图元矩形面积 就停止分裂. 0x02 限制树的深度,停止分裂. 0x03 Rect字段是int/long的话,每次扩大就是2次幂,最小分裂就 阅读全文
摘要:
事务 https://www.cnblogs.com/JJBox/p/10798940.html 调用初始化赋值 初始化图元的时候必须调用一下Entity.SetDatabaseDefaults(); 尤其是初始化填充(可以看到我代码做了一次预处理测试). 因为acad的不同版本会修改初始化赋值的顺 阅读全文
摘要:
输出配置文件 在cad的options命令面板中, 使用配置选项卡的输出配置,你会得到一个.arg文件 .arg:将文件导出到桌面(可以改成.reg) 版本配置总表: 运行regedit,导出此路径注册表到桌面: 计算机\HKEY_CURRENT_USER\SOFTWARE\Autodesk\Aut 阅读全文
摘要:
开局一张图 透视变换可以形成一种近大远小的效果. 可以把左边变成右边,也可以把右边变成左边. cad在实现的时候需要把圆,弧,曲线等等采样成点集...逆变的时候可以依照一定规则将他们改回圆,弧,曲线之类的...这一步有一些cv经常用到的概念...真就cv,gl不分家呗🤣 说明 发现网络很多文章的透 阅读全文
摘要:
Acad跨进程通讯 在Acad跨进程通讯用途其实很广泛. 1,COM接口交互 https://www.cnblogs.com/JJBox/p/11381254.html adn博客里面说COM要STA线程 2,Win32API的SendMessage其实也是, 毕竟ctrl+n新建图纸也是发送QNE 阅读全文
摘要:
故事是这样的 回头看了一下 cad.net 操作cui和cuix含工具条 里面没有完成的地方,有一个地方是要导出一个dll函数, 关键这个函数在每个cad版本上面是有规律的,只是cpp编译的时候会译名差别. 然后我又不想一个个版本找出来之后用预处理...想导出所有的函数名,用正则查询指定的名称下的函 阅读全文
摘要:
前台选择集 如上图所示,选择集是通过界面函数去反映到后台, 选区在线型中间的空白段也是选择不到这个图元,像素分析选区, 不过凭借二次过滤我们也可以实现相关的操作,就是没啥必要而已. ps:飞诗告诉我前台的ssget选择时候就是需要四周扩展,否则某些情况选不了 (例如后台double转为int时候会落 阅读全文
摘要:
原因 lisp语句: (setvar "dimtxt" 123) ;控制标注文字高度 当我们使用这些标注样式变量, 会令标注出现<样式替代>,那么怎么去掉这个东西呢? (command "-dimstyle" "S" "dim100" "" "");保存样式 样式替代各种处理 [CommandMet 阅读全文
摘要:
版本说明 本文测试为Acad2008(Cui)和Acad2021(Cuix)的案例,应该能够涉及所有高低版本的操作. Cui是个xml,Cuix是个压缩包...知道好像没什么好处,还是应该调用管理器操作而不是序列化操作,除非你发现了其中的一些bug无法避免... 关于宏的说明,看这个桌子的链接 特别 阅读全文
摘要:
原因 今天遇到了一个加载dll出问题的情况, 因为这个dll是cpp写的,而且是x86的,然后我一直用的x64来调用... 出现: System.BadImageFormatException:“试图加载格式不正确的程序。(异常来自HRESULT:0x8007000B)” dll的实现 c/cpp的 阅读全文
摘要:
投影三维图元到某个平面上 如果遇到复杂的三维图元,要先进行消隐hide命令,但是我还没研究好这个命令. 红色(1号色)是三维的,黄色(2号色)投影下来的,它是曲线,因为曲线是直线的父类.可以依照曲率转换为自己喜欢的直线或者多段线,圆弧等等. 命令 [CommandMethod(nameof(JJ_t 阅读全文
摘要:
说明 本功能就是直接点击cad图元获取vla函数,快速知道图元对应的方法和属性(存在可用的). 小贱贱他复刻了一个高版本用的vlisp小助手, 因为他调用了高版本函数,没有Acad08版,我很郁闷, 然后就在他的基础上造了一个net全版本通用的... 至于猫老师曾经实现过的,通过帮助文件实现参数获取 阅读全文
摘要:
任务需求 首先问你一个问题, 如果你要用命令改图元颜色,那么cad有256个颜色, 你需要写256个命令来达到目的吗? 答案:当然不,程序员都是喜欢偷懒的. 那么如何实现呢?看本文就知道了. Lisp和c#的例子有点相似,都是利用了解释器进行动态编译. 由于想要尽可能兼容所有cad版本,就不采用Ad 阅读全文
摘要:
生成二维码模式1:cad图元 来自edata的聊天记录节选,嘻嘻.. 调用命令 #if !HC2020 using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using Acap = Autodesk.AutoCAD.App 阅读全文