[精品]CAD批量处理工具
需要此工具请Q:3567 618 336
CAD批量处理工具是基于AutoCAD二次开发的批处理插件。将程序加载到CAD中,使用自定义的Lisp代码就可对多个文档进行批量操作。
1.文件说明
CAD批量处理工具批处理程序包含两个文件:一是基于VBA的程序,二是基于Lisp的程序。
2.安装运行
(1)将程序拷入CAD安装路径下的Support文件夹下,如E:\Program Files\AutoCAD 2007\Support;
(2)运行CAD,在命令行中键入"APPLOAD",在弹出的选择对话框中选择上一步中Support文件下的.lsp,点击"加载",关闭对话框;
(3)如果加载成功,命令行中输出"已成功加载.lsp",输入命令BAT即可运行程序。程序主界面如下:

注意:如果需要CAD启动时即自动加载此工具,需要修改CAD安装路径E:\Program Files\AutoCAD 2007\Support下acad2007.lsp
- (arxload"vel.arx")
- (if (not (= (substr (ver) 1 11) "Visual LISP"))
- (load "acad2007doc.lsp");
- )
- ;; Silent load.
- (princ)可在代码中的任何地方用下列常数代替实际值:
3.工具说明

本程序具体操作流程如下:
(1)【添加文件】或【添目录】来选择要进行批量处理的Dwg文件,也可以通过【删除】和【全清】按钮来操作清除文件列表中的文件;
(2)单击【编辑】按钮,弹出编辑代码窗口,如图3-2所示。用户可编辑、打开、保存代码,编辑完成后,单击【关闭】,程序会自动保存编辑内容,并更新显示在代码窗口(如果使用脚本语言,请选择【Script代码】);

(3)点击【开始批处理】,程序将对文件列表中的文件分别打开,并按代码窗口中的代码操作(如果勾选"处理完成后自动存盘",操作结果文件将覆盖原始数据)
4.代码分析
本程序的测试用例是两幅宗地图,现在的要求是:
- 将JZD和JZP层的所有文字字体改为宋体;
- 将HZ样式改为txt.shx、hztxt.shx(大字体);
- 将JZD、JZP和JMD层所有对象颜色改为红色。
测试代码为测试用例文件夹下的"宗地图修改20140820.lsp",现对其中比较关键的代码进行说明:
(1)获取某层的文字
- (setq ss (ssget "x" (list (cons 0 "*TEXT") (cons 8 "JZD"))));
使用了ssget建立选择要素集,其中"x"代表选择所有,0和8表示不同的组,*TEXT是过滤选择文本,JZD要进行选择的图层。
(2)新建或更改文本样式
- (command "" "" "" "" "")
- (command "_style" "hztxt" "txt.shx,hztxt.shx" 0 0.8 0 "n" "n" "n")
新建样式使用了_style命令,"ST"表示样式名称,"SimSunb.ttf"字体名称;如果要使用大字体的样式,字体参数设置为如"txt.shx,hztxt.shx";如果样式名已存在命令将人修改参数,如果不存在,则会新建立。
(3)将某层的颜色改为指定的颜色
- (vla-put-color layer color_no)
调用系统中的函数来修改层颜色,其函数原型如上所示,它在Express Tools中,注意要确保安装程序安装了此组件。其中颜色参数使用枚举值:
|
常数 |
值 |
描述 |
|
vbBlack |
0x0 |
黑色 |
|
vbRed |
0xFF |
红色 |
|
vbGreen |
0xFF00 |
绿色 |
|
vbYellow |
0xFFFF |
黄色 |
|
vbBlue |
0xFF0000 |
蓝色 |
|
vbMagenta |
0xFF00FF |
紫红色 |
|
vbCyan |
0xFFFF00 |
青色 |
|
vbWhite |
0xFFFFFF |
白色 |
(4)将层对象中的颜色随层
- (command "_.chprop" "_all" "" "_color" "_bylayer" "")
将图层的颜色修改,并不能将已有的对象的颜色改掉,需要将图层对象的颜色设置为随层。
5.常见问题
(1)打开文件是提示选择字体

CAD的字体中缺少这种字段,要么使用另一个字体,要么去下载缺失的字体,并放在CAD安装路径下的Fonts文件夹下,如E:\Program Files\AutoCAD 2007\Fonts
(2)添加某一个图形时,不能加载到列表中
本程序的目的是进行批量处理,至少要同时选择两个图形文件才能正确加载到文件列表,如果只选择一个文件时,则不能正确添加。
(3)运行时报错,保存文档时出错

一般地,在批处理时,都需要勾选"处理完成后自动存盘",但如果处理之前此图形已打开,保存时就会报错,所以,在批处理时图形不会打开。
(4)怎样验证操作是否失败?
验证操作最主要的方式是通过对比测试案例中的错误是否修正,如果执行的代码,会弹出CAD的帮助窗口,建议在批量处理之前,测试好Lisp代码。
(5)命令行报错:没有定义vlax-get-acad-object
在测试Lisp代码中,使用了vlax-get-acad-object这个对象,而它是属性Express Tools中的,所以在安装软件时,要选择安装Express Tools

(6)单独测试lisp通过,批处理失败
只要单独测试lisp代码能够达到目的,批量处理一般能达到目的。需要注意的是,如果lisp代码中定义了无参的函数,只需将函数里的内容复制到BatchProc的代码窗口,而无需整个函数;如果lisp代码中定义了带参的函数,需要将整个函数复制进去,并将调用的命令复制在后面。
(7)出现异常: 0xC0000005 (访问冲突)
调用BAT命令出现"出现异常: 0xC0000005 (访问冲突)", 一般在调用command时候会出现这种情况,只能重装CAD了。

(8)报错"info或'info透明调用 ***是否垂直?"
调用系统打印命令(-plot)批量打印宗地图,在测试机上测试通过,但在客户机上报错:"使用命令:info或'info透明调用 ***是否垂直? <N>",只能打印第一个文件。
CAD中,有许多的命令时可以透明使用的,透明命令其实就是可以让用户在使用另一个命令时,依然能够在命令行中输入这些命令的功能。所以透明命令会经常被用于更改图形的设置或显示。当系统完成了透明命令后,就会恢复执行原命令了。
测试机上能通过说明是客户机环境问题,我尝试把CASS环境关闭后,即可实现批量打印。
[精品]CAD批量处理工具的更多相关文章
- 批量改名工具 Bulk Rename Utility
好用的批量改名工具 Bulk Rename Utility 功能: 这个工具既可以改文件名,也可以改目录. 使用技巧: 结合前缀4位 数字 可以让文件排列很整齐 例如: 0030 关于 ...
- windows下运行的linux服务器批量管理工具(带UI界面)
产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...
- Python开发程序:简单主机批量管理工具
题目:简单主机批量管理工具 需求: 主机分组 登录后显示主机分组,选择分组后查看主机列表 可批量执行命令.发送文件,结果实时返回 主机用户名密码可以不同 流程图: 说明: ### 作者介绍: * au ...
- Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的 ...
- Max批量导出工具
Max批量导出工具 http://www.paulneale.com/scripts/batchItMax/batchItMax.htm Scripts Batch It Max: Batch It ...
- .NET DLL 保护措施应用实例(百度云批量保存工具)
最近做了个小工具,将保护措施思路全部应用到了此工具中. 点我下载 百度云批量保存工具是一款专门用于自动批量保存百度云分享的软件. 本软件特点:1:完全模拟人工操作:2:可以批量保存百度分享的文件( ...
- ATF批量导出工具
ATF批量导出工具 08 / 31, 2013 批量导出Atf的工具,使用是adobe atf 编码核心 先说一下关于atf的bug 当atf导出时候启用了mips选项会导致:如果纹理问长方形时上传会 ...
- LittleTools之批量替换工具
身为程序员,有很多事情都可以交给机器来做,这样可以提高工作效率. 在此先写个批量替换工具,用来将某些对象统一替换为另一对象. 比方说场景中摆了一堆树,位置.比例.旋转都已经调好了,但是对树的样式不太满 ...
- 【Python之旅】第六篇(七):开发简易主机批量管理工具
[Python之旅]第六篇(七):开发简易主机批量管理工具 python 软件开发 Paramiko模块 批量主机管理 摘要: 通过前面对Paramiko模块的学习与使用,以及Python中多线程与多 ...
随机推荐
- Revit Family API 添加对齐
没测试成功,留待以后研究. [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] ; ; i < nV ...
- .NET Out Of Memory Exception - Used 1.3GB but have 16GB installed
I am getting an Out Of Memory exception in my c# application when the memory usage for the applicati ...
- 娓娓道来c指针 (7)指针运算
(7)指针运算 在前几篇文章中,我们已经见过指针运算的使用场景,并多次使用指针运算来进行验证. 这里我们来特别地总结下.指针运算的本质含义. 在c语言中.如果p.pa.pb都是某种类型的指针,这种运算 ...
- sql select 0 字段
关于 select 语句中 0 某字段名字,的意思是:该某字段是不在指定的表中的,那么如果要在子查询中利用这个指定的表,且带有这个字段,那么就用这个方式来添加该字段,并以0来初始化该字段. 如下例: ...
- having只用来在group by之后,having不可单独用,必须和group by用。having只能对group by的结果进行操作
having只能对group by的结果进行操作 having只能对group by的结果进行操作 having只能对group by的结果进行操作 having只用来在group by之后,havi ...
- Safari支不支持HTML5录音? 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API。
先放结论:Safari支不支持HTML5录音? ——据我调查,不支持. 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API. 可是当使用Can I us ...
- 裂痕第一至五季/以法之名Damages迅雷下载
本季第一至五季Damages Season (2007-2012)看点:<裂痕>又是一部以法律剧情为主打,其间又掺杂着悬念,阴谋,破案等因素的剧集.女主角帕蒂-赫韦斯(Patty Hewe ...
- Java多线程中join方法的理解
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. t.join( ...
- 好用的批量改名工具——文件批量改名工具V2.0 绿色版
我找了一个绿色免安装的软件来实现批量改名要求 下载地址:http://www.orsoon.com/Soft/14049.html#xiazai 添加图片后,开始改名.通过输入a#就可以将这些图片进行 ...
- ADB环境变量的配置
第一步,打开环境变量配置窗口.右击计算机,属性-高级系统设置-环境变量. 第二步,添加android系统环境变量.在系统变量下点击新建按钮,输入环境变量名ADB(自己随便写) 变 ...