[精品]CAD批量处理工具——BatchProc

BatchProc是基于AutoCAD二次开发的批处理插件。将程序加载到CAD中,使用自定义的Lisp代码就可对多个文档进行批量操作。

1.文件说明

此程序来自明经CAD社区名为"秋枫"的网友提供,本人通过测试对本程序的使用方法进行说明,以提高CAD图形处理的效率。源程序下载链接如下:

http://bbs.mjtd.com/thread-13302-1-1.html

注意:明经CAD社区是比较著名的CAD论坛,其中包含了大量的CAD操作技巧和二次开发代码,但注册需要邀请码(可由1元人民币换取)。

BatchProc批处理程序包含两个文件:BatchProc.dvb是基于VBA的程序,BatchProc.lsp是基于Lisp的程序。如图1所示。

2.安装运行

(1)将程序BatchProc.dvb和BatchProc.lsp拷入CAD安装路径下的Support文件夹下,如E:\Program Files\AutoCAD 2007\Support;

(2)运行CAD,在命令行中键入"APPLOAD",在弹出的选择对话框中选择上一步中Support文件下的BatchProc.lsp,点击"加载",关闭对话框;

(3)如果加载成功,命令行中输出"已成功加载 BatchProc.lsp",输入命令BAT即可运行程序。程序主界面如下:

注意:如果需要CAD启动时即自动加载此工具,需要修改CAD安装路径E:\Program Files\AutoCAD 2007\Support下acad2007.lsp

  1. (arxload"vel.arx")
  2. (if (not (= (substr (ver) 1 11) "Visual LISP"))
  3. (load "acad2007doc.lsp");
  4. )
  5. ;; Silent load.
  6. (princ)可在代码中的任何地方用下列常数代替实际值:

3.工具说明

本程序具体操作流程如下:

(1)【添加文件】或【添目录】来选择要进行批量处理的Dwg文件,也可以通过【删除】和【全清】按钮来操作清除文件列表中的文件;

(2)单击【编辑】按钮,弹出编辑代码窗口,如图3-2所示。用户可编辑、打开、保存代码,编辑完成后,单击【关闭】,程序会自动保存编辑内容,并更新显示在代码窗口(如果使用脚本语言,请选择【Script代码】);

(3)点击【开始批处理】,程序将对文件列表中的文件分别打开,并按代码窗口中的代码操作(如果勾选"处理完成后自动存盘",操作结果文件将覆盖原始数据)

4.代码分析

本程序的测试用例是两幅宗地图,现在的要求是:

  • 将JZD和JZP层的所有文字字体改为宋体;
  • 将HZ样式改为txt.shx、hztxt.shx(大字体);
  • 将JZD、JZP和JMD层所有对象颜色改为红色。

测试代码为测试用例文件夹下的"宗地图修改20140820.lsp",现对其中比较关键的代码进行说明:

(1)获取某层的文字

  1. (setq ss (ssget "x" (list (cons 0 "*TEXT") (cons 8 "JZD"))));

使用了ssget建立选择要素集,其中"x"代表选择所有,0和8表示不同的组,*TEXT是过滤选择文本,JZD要进行选择的图层。

(2)新建或更改文本样式

  1. (command "_STYLE" "ST" "SimSunb.ttf" "0" "1" "" "" "")
  2. (command "_style" "hztxt" "txt.shx,hztxt.shx" 0 0.8 0 "n" "n" "n")

新建样式使用了_style命令,"ST"表示样式名称,"SimSunb.ttf"字体名称;如果要使用大字体的样式,字体参数设置为如"txt.shx,hztxt.shx";如果样式名已存在命令将人修改参数,如果不存在,则会新建立。

(3)将某层的颜色改为指定的颜色

  1. (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)将层对象中的颜色随层

  1. (command "_.chprop" "_all" "" "_color" "_bylayer" "")

将图层的颜色修改,并不能将已有的对象的颜色改掉,需要将图层对象的颜色设置为随层。

5.常见问题

(1)打开文件是提示选择字体

图 51未找到字体

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环境关闭后,即可实现批量打印。

时间: 2024-10-17 16:19:14

[精品]CAD批量处理工具——BatchProc的相关文章

[Q]CAD批量打图精灵升级至7.0

更新内容: V7.0(2015.9.9)-[+]. 支持WIN10操作系统.(2015.9.9)-[+]. 支持AutoCAD2016.(2015.9.9)-[+]. 自动注册虚拟打印机.(2015.6.28)-[+]. 增强自动保存PDF功能,在Win8和Win10下可自动保存.(2015.6.27)-[+]. 修正还原默认设置过程中打印到文件设置错误问题.(2015.6.14)-[+]. 增加标记已打印图框功能.(2015.6.13)-[+]. 由于Q与P在键盘上的位置较远,不便单手操作,将

CAD批量打图精灵博文目录

安装/卸载 pdfFactory虚拟打印机的安装 安装问题(找不到InstallUtilLib.dll) 无法卸载怎么办 注册 关于无法进入主界面问题解答 重装系统如何注册 复制授权了文件但仍显示“未注册”问题(安装在非默认目录或目录包含中文) 系统环境改变导致“未注册”的解决方法 注册申请码获取工具问题 打印问题 非标准图纸(加长图)的打印时如何自定纸张尺寸 如何将图纸转换为PDF.JPG.PNG.plt.DWF.DWFx.XPS等格式文件 如何将图纸打印为黑白的及设置打印样式 pdfFact

wwwscan网站目录文件批量扫描工具

准备一个比赛样题里面给的一个扫描的工具: 不知道怎么用就上网百度了一下果然有关于这个软件的两篇介绍(感觉写的很好),第一篇介绍的应该和我的工具一样,也给了例子(现在Google不能访问了)和参数介绍,第二篇作者可能自己"升级"过软件也提供了下载地址.但是有个问题是:我机器上跑感觉那些多进程.端口和超时等参数都是虚设的,我试验的结果是我的软件只要输入ip或域名就可以运行扫描. ps:直接copy 文章来源:http://blog.chinaunix.net/uid-26726420-id

CAD批量转PDF文件什么软甲比较好

DWG.DXF等图纸格式都是我们常用的CAD图纸文件,因为这些文件打开需要借助专业的CAD软件进行打开,因此为了方便我们给客户进行查看,通过情况下会选择将CAD转换成更易查看保存的PDF文件,那么如何将CAD批量转换成PDF文件?CAD批量转PDF文件用什么软件? 一.CAD批量转PDF文件用什么软件 想要将批量的CAD图纸转换成PDF文件,那么可以选择使用CAD转PDF转换器(http://cad.xjpdf.com),这款软件支持 DWG.DXF.DWT等常用的图纸格式,利用这款软件可以轻松

简单主机批量管理工具

题目:简单主机批量管理工具 需求: 主机分组 登录后显示主机分组,选择分组后查看主机列表 可批量执行命令.发送文件,结果实时返回 主机用户名密码可以不同 流程图: 说明: ### 作者介绍: * author:lzl ### 博客地址: * http://www.cnblogs.com/lianzhilei/p/5881434.html ### 功能实现 题目:简单主机批量管理工具 需求: 主机分组 登录后显示主机分组,选择分组后查看主机列表 可批量执行命令.发送文件,结果实时返回 主机用户名密

批量改名工具 Bulk Rename Utility

好用的批量改名工具 Bulk Rename Utility 功能: 这个工具既可以改文件名,也可以改目录. 使用技巧: 结合前缀4位 数字 可以让文件排列很整齐 例如:         0030 关于下一步工作的请示.doc          0031 现场报告20160506.ppt 0032 公文目录

小米范工具系列之十四:小米范网站批量爬虫工具

小米范网站批量爬虫工具,是一款针对大量网站进行快速爬取的工具,爬取的URL可进一步调用wvs.sqlmap.brutexss等工具进行检测. 工具使用方法: 1.点击新建任务,输入要检测的URL. 2.设置子域名白名单,属于白名单域名的URL则自动保留并进行抓取. 2.设置并发站点.并发线程等参数,点击开始即可. 下载地址:http://pan.baidu.com/s/1pLjaQKF  文件名 XmfSpider

Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具

Dynamic CRM 2013学习笔记(一)插件输入实体参数解析 Dynamic CRM 2013学习笔记(二)插件基本用法及调试 Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater 基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的不同单据规则及当前流水号 2. 为不同的实体配置各自的单据规则 3. 编写及注

LittleTools之批量替换工具

身为程序员,有很多事情都可以交给机器来做,这样可以提高工作效率. 在此先写个批量替换工具,用来将某些对象统一替换为另一对象. 比方说场景中摆了一堆树,位置.比例.旋转都已经调好了,但是对树的样式不太满意,想要替换掉. using UnityEngine; using UnityEditor; /// <summary> /// 替换场景中的对象 /// </summary> public class Replace :Editor { [MenuItem ("Custom