明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 439|回复: 6

[命令] cad.net 合并图层

  [复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 你有种再说一遍 于 2025-3-8 22:42 编辑

好耐之前唔系几识用字典,
然后写咗一段两千行嘅合并图层.
点解咁多?因为当时净系识得循环.

依家`疯狂青蛙`问起点做,同时佢嘅代码亦系千年屎山,
一番讲解之下,佢似乎唔系几知我表达紧咩.
于是乎我就自己唷手,发现关键代码行数真系好少,
尤其系之前都冇注意过成环等等问题,
依家就好似拼积木咁,一忽一忽加入去.

我觉得大家都写得出只是都写得麻麻地.
最惊就系大家学识Linq之后就只识得where过滤,
点解唔做个例子比大家捏?就有本篇了.

系了,tr.GetObject(id, openLockedLayer:true)
可以打开锁定图层的图元,但是此时必须要写模式,
唔可以: 一读-二判-三提权-四修改,
所以我将事务栈
openLockedLayer==true时,直接改为写模式了,
避免其他人唔知原理.

唔洗好似Lisp咁需要解锁-修改图元-恢复锁定.
不过,遇到发送命令就冇咩符fit了.
又不过,我地从来唔洗发送命令,咩都可以自己做.
(你做唔到系因为你屎,又唔系我做唔到)

https://www.cnblogs.com/JJBox/p/15995259.html

你可以留意到我嘅代码,
将几个字典好似两杯水咁倒来倒去,
因为哩个手法系在编译器原理上面学识嘅,
有时候多一层跳板好似做咩都容易咗,
唔洗直接去霖A点到Z点,而是多小小BCDE点就得了.

除咗合并图层,
仲有文字样式,标注样式,多重标注样式,
自己执生.

当你冇咩思维同设计嘅时候,学识数1,2,3,
然后不断切分步骤,如果仲唔识,就再切,一路切,
直到终于识得做了,就将最简单嘅一步做好先,
然后再往外继续做.
哩个就系火箭要点整嘅步骤.

青蛙寻日删咗7K代码.原来佢写咗一堆扩展代码,
佢觉得扩展函数好鬼简单:
tr.GetObject()
tr.GetObject<T>()
tr.GetObjectForWrite<T>()..

佢对于编程的理解走向咗一条怪异道路,
我首先用"精简指令"哩个名词去打动佢,
指令要少,参数再多都好,
记忆指令就系记函数名,一堆函数就是"动作".
精简指令之后,代码就表示为"套路",
就好似画图都知道要"套图",
写代码梗系亦有套路啦,然后叫佢开始删代码了.

删代码就系对过去的告别,
学识删垃圾代码,可以简化自己对流程嘅理解.

其次佢冇学识封装本质系唔写重复代码之余,
仲要唔改引用部分,咩野都可以先通过中间层去处理,
重新编排流程先至系编程重点.

我举两个例子比大家.
1, GetObject()打开锁定对象必须要写模式,
咁我只需要去改事务栈就好了.

2,事务栈嘅Document改为寻址模式,
但是Acad14稳唔到嘅时候会报错(后台开图),而Acad24就唔会.
咁我就首先尝试在事务栈try一下,结果系得嘅.
如果裸写,咁就扑街了,要每个命令入面去改可能嘅引用.
关键系仲冇IDE提示嘅...

补充:
终于将字典递归写好了...
先修改引用再递归.
进入递归之后,hashset记录过就会直接结束,防止菱形引用.
如果我净系学Lisp嘅话我肯定唔知点处理好.

哩个例子改咗一下,依家更直观了.
之前点解连例子都写唔好...
https://www.cnblogs.com/JJBox/p/15995259.html#_lab2_2_2

走人,
xx

点评

好叻滴大佬。  发表于 6 天前
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
哇~活抓一只惊佬哦
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
怎么用的 大神?
怎么输入命令行里一直在提示另存为?
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
蓝天cayuer 发表于 2025-3-6 13:56
怎么用的 大神?
怎么输入命令行里一直在提示另存为?

要编译的,要学习C#的,要安装VS的...
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
学习了你的“cad.net 读写PC3,PMP打印机文件”文章,下载了文件后引用,并引用你的示例,提示这个?我是不是少引用了什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
lxw320 发表于 2025-3-6 23:17
学习了你的“cad.net 读写PC3,PMP打印机文件”文章,下载了文件后引用,并引用你的示例,提示这个?我是不 ...

我博客也没有.Write()啊,你做错了什么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-3-12 09:52 , Processed in 0.174112 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表