做不动产确权,最头疼的就是把几百幅零散的宗地图合成一张总图。2026年手里这批504幅石安村的图,要求只保留闭合的权属线,其他杂七杂八的注记、图框全扔掉。手工复制粘贴?累死也赶不上工期。用脚本批量处理,半小时搞定。
别想着用复制粘贴。504个文件,光打开就要俩小时。最快的办法是用 Insert(插入块)命令。
但这里有个巨坑:Windows复制的文件路径是反斜杠 \`,比如E:\石安村副\513401212202JB00004石安村村委会.dwg。直接粘到CAD命令行里,软件会把`当成转义字符,路径直接废掉。
必须把反斜杠换成双反斜杠 \\,或者干脆换成斜杠 /。正确的路径应该是:
E:\\石安村副\\513401212202JB00004石安村村委会.dwg
或者
E:/石安村副/513401212202JB00004石安村村委会.dwg
路径对了,插入才能成功。
总不能手动输504次吧?用Excel做批量处理。
在B列写公式:="-insert """&A1&""" 0,0 1 1 0" 504张图叠在一起,乱得像蜘蛛网。现在的目标是:只留闭合权属线,其余全删。
手动选?不现实。用Lisp代码自动筛选。核心逻辑是:遍历全图,选出所有闭合的多段线(Polyline),把它们放到一个单独的图层,然后反向删除其他所有东西。
一段实用的Lisp代码如下:
(defun c:KeepClosed ()
(setq ss (ssget "X" '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))))
(if ss
(progn
(command "_.layer" "M" "闭合权属线" "")
(command "_.chprop" ss "" "LA" "闭合权属线" "")
(princ "\n已提取闭合线。")
)
)
(princ)
)
运行这个命令,所有闭合的权属线都被抓进了“闭合权属线”图层。接下来简单了,关掉这个图层,剩下的全是垃圾,全选删除,再把图层打开。满以为大功告成,一数,只有495块地。少了9块?这可不是小数目。
别怀疑代码,多半是数据本身有问题。把495块地复制到原图里对比。真相大白了:那9块地的权属线根本没闭合。
在测绘数据里,有些宗地线看起来连上了,实际上端点之间有0.001mm的缝隙。Lisp代码只认数学意义上的“闭合”(Polyline的70组码为1)。有缝的线,代码不认,自然就被当成垃圾删掉了。
解决办法:用 PEDIT命令里的 Close选项,把那9条缝隙补上,再重新跑一遍流程。

原点重合问题。Insert命令默认把图插在 (0,0),如果你的图原本不在原点附近,插进来会看不到。记得用 Zoom Extents缩放到全图。 清理垃圾。插入前最好用 Purge命令清理每个文件里的无用块和图层,不然504个文件堆在一起,CAD文件能飙到500MB,卡到你怀疑人生。 武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。