利用Objectarx实现AutoCAD中的字符批量替换(2004-625)
CAD中的文字怎样全部替换
CAD中的文字怎样全部替换
CAD里面的文字一般错了或者全部都要改的话最好用替换,那么大家知道CAD中的文字怎样全部替换吗?下面是店铺整理的CAD中的文字怎样全部替换的方法,希望能帮到大家!
CAD中的文字全部替换的方法
选中列出结果以后再列出结果下拉栏里面就会看到选中的结果,如果查找的内容还有很多个就可以点击窗口下面的查找下一个按钮
点击查找下一个按钮以后在新出现的查找和替换窗口上面可以看到找到的内容数量然后点击确定退出窗口
在查找和替换窗口左边的替换为下面输入要替换为的内容,如果列出结果栏里面的结果都需要替换的话就点击窗口下面的全部替换按钮
点击全部替换以后在新出现的查找和替换窗口看到查找的内容已更改,然后点击确定按钮
点击确定以后再列出结果栏里面就会看到文字内容已被修改然后点击窗口下面的完成按钮退出查找和替换窗口,就会看到图形中的内容已被替换完成。
CAD如何批量替换文字内容
CAD如何批量替换文字内容
CAD系列教程:CAD如何批量替换文字内容?快速同步更新文字、更新日期!!
在我们平常C A D绘图中,可能会用到一些模板,但是会有大量的文字细节等有很大的篇幅是需要修改,那批量替换文字又有哪些方法呢?今天就详细了解一下吧
1、打开C A D,单击选中需要修改的文字,找到“特性”面板。
2、如果只需要改小部分文字内容,只需在原本的内容出处输入新的文本就可以完成
3、如果需要替换的文字数量量很大,那就需要用到和表格类似的“查找-替代”命令了。
具体操作:复制需要修改的原内容。
4、大面积选中需要修改文字的范围,并在”命令栏“输入”F I N D"命令,回车键“确定”。
5、根据提示,将之前复制好的需要修改内容对应放置在“查找”位置,并在“替换”处填上需要的内容。
切记选择“选定对象”,完成之后,点击下方“全部替换”
6、文字批量替换完成后,点击关闭,页面需要修改的文字都被替换了。
CAD 中如何添加自动更新的日期?
CAD出图时间如何自动更新?采用字段轻松搞定!
CAD查询创建时间和更新时间方法:
1、打开AutoCAD软件。
2、执行打开命令(快捷键Ctrl+O),打开素材文件。
3、执行工具--查询--时间命令。
4、打开对话框,可以看到当前时间。
5、在此处可以看到创建时间,上次更新时间等时间参数。
在菜单栏中点击【插入】—【字段】。
完美解决AutoCAD字体替换问题
打开别人图时,找不到原文件地字体怎么办?很好地方法!希望固定!打开别人一张图时,要不停地替换我没有地字体文件,怎样才能一劳永逸?从网上直接搜索没有地字体,下载后复制到或者直接剪切到安装地文件内文件里就可以了.我使用地地版本,该版本地文件目录地址为::\ \\ \.该方法地缺点,就是如果所需要地字体很多,会占用大量磁盘空间,有可能影响运行速度.我从网上下载了一个字体包,里面还有种字体,解压后大小有之多.资料个人收集整理,勿做商业用途复制粘贴文件夹里现有地字体文件,会生成所复制字体地副本,将该附件重命名所需字体地名称.比如用字体(系统里默认隐藏已知文件类型地扩展名,我地是系统,所以在字体名称后面不显示,系统下会显示为)替换没有地字体,复制粘贴字体,会生成该字体文件“副本”,将该字体文件重命名为就可以了.该方法和第一种方法地缺点一样,会占用磁盘空间,有可能影响运行速度.资料个人收集整理,勿做商业用途利用字体映射文件来达到不再手动选择替换字体样式.最完美地设置方法.其本质就是将手动选择替换字体改为由自动替换字体.资料个人收集整理,勿做商业用途进入以后,依以下循序操作:第一步:选项»文件»支持文件搜索路径★『该项目下会有几个文件目录地址,选择含有地地址,我地目录地址为::\\(当前系统用户名)\\\\ \\\,该目录下可以找字体映射文件(不同版本地对应地映射文件名称不同).找到并打开文件,内容如下:资料个人收集整理,勿做商业用途上述文本格式一致,分号前为需要替换地字体,分号后为替换后地字体,每种字体单独成一行.如果我们需要将、、、、、、、、等其他字体替换成字体,依照上面地格式书写成如下样式:资料个人收集整理,勿做商业用途然后保存关闭该文件.』★第二步:选项»文件»文本编辑器、词典和字体文件名»字体映射文件按★『将该项目下地文件地址设置为::\\ (当前系统用户名)\\\\ \\\\.然后保存退出选项卡.』★资料个人收集整理,勿做商业用途。
cad如何统一替换图纸文字
cad如何统一替换图纸文字
当一张cad图纸中的文字出了错,但是需要全部修改时就要统一替换了。
但是很多同学还不太清楚。
那么接下来下面是店铺整理的一些关于cad如何统一替换图纸文字,供您参阅。
cad统一替换图纸文字的方法
1、启动CAD,打开需要修改的图纸。
2、选中要修改的文字,同时按下ctrl+1键,在弹出的属性框中找到其他中的标注样式,记住标注样式。
3、命令栏输入d,回车。
选中刚才记住的标注样式,点击修改。
4、在弹出的属性框中选中文字,改变文字高度。
5、改变文字后点击确定,你会发现所有需要修改的字体都变大了。
是不是很简单!。
利用ObjectARX二次开发技术实现AutoCAD图纸批量打印
利用ObjectARX二次开发技术实现AutoCAD图纸批量打印 林同棪国际工程咨询(中国)有限公司王科,邓宇[摘 要] 利用ObjectARX二次开发技术实现的AutoCAD图纸批量打印,使广大工程技术设计人员在图文输出时减少了大量的重复劳动。
且能避免很多人为因素可能导致的失误。
从而能够大大提高劳动生产效率。
[关键词] AutoCAD二次开发;ObjectARX;批量打印Developing batch printing program of AutoCAD drawings with ObjectARX T. Y. Lin International Engineering Consulting (China) Co., Ltd Wang Ke,Deng Yu Abstract:The batch printing program of AutoCAD drawings by ObjectARX reduces the repeated work in drawing export and avoid many mistakes caused by human factors to improve the productivity.Keywords: AutoCAD secondary development;ObjectARX;batch printing1 前 言桥梁结构设计由于其涉及的内容复杂多样使得图纸数量非常庞大,而由此带来的打印工作量也比较大,对于在一张dwg文件中放置有多张设计图的情况下,在从打印机上拿到纸版设计文件时,通常还有一个比较繁琐的整理和排序的工作,同时,通过手工向打印机发送打印请求,时常还会出现遗漏打印某几张图纸的人为失误。
所以,要从根本上解决设计文件出图时大量的手工劳动,采用AutoCAD二次开发技术实现能自动考虑按图号排序一键操作便能输出整个项目所有设计图纸到打印机或plt文件便是种很好的尝试。
CAD图纸上文字标注的字如何查找替换
相信大家所见的图纸上都会看到文字标注,其实图纸上进行文字标注更多的是来注释图纸上那些难点地方。
图纸上难点当然不会只有这其中一点,文字标注多了在输入文字时候,难免出现错误之处。
CAD图纸上文字标注的字如何查找替换?想学习的小伙伴可以跟着小编一起往下看。
第一步:找到我们电脑桌面上方的迅捷CAD编辑器的图标,双击打开运行。
之后我们会进入到CAD编辑器的操作界面。
第二步:在该界面上方找到新建命令,在CAD绘图工具中新建一张图纸。
或者点击文件—打开命令,在弹出的窗口内快速把你之前所没有绘制完成的图纸打开。
第三步:图纸在打开过后,我们点击界面上方的编辑窗口按钮,在下拉框内我们找到查找和替换命令。
这时候界面会出现一个弹窗。
第四步:在图纸上弹出的窗口内,在查找的框内输入自己所要进行查找的文字;在替换框内输入你想替换的文字,然后点击弹窗界面下面的全部替换。
这时你在查看图纸时会发现文字替换。
怎么样,以上就是小编今天所要分享的全部内容,你有什么不理解之处可以按照上边的具体操作步骤在电脑上操作一遍,希望对大家能够有所帮助!。
CAD批量替换字符程序
(defun C:CHTEXT (/ p l n e os as ns st s nsl osl sl si chf chm cont)(setq chm 0 p (ssget)) ; Select objects(if p (progn ; If any objects selected(setq cont t)(while cont(setq osl (strlen (setq os (getstring "\n原字符串: " t))))(if (= osl 0)(princ "Null input invalid")(setq cont nil)))(setq nsl (strlen (setq ns (getstring "\n新字符串: " t))))(setq l 0 n (sslength p))(while (< l n) ; For each selected object...(if (OR (= "MTEXT" ; Look for TEXT entity type (group 0) (cdr (assoc 0 (setq e (entget (ssname p l))))))(= "TEXT" ; Look for TEXT entity type (group 0)(cdr (assoc 0 (setq e (entget (ssname p l)))))))(progn(setq chf nil si 1)(setq s (cdr (setq as (assoc 1 e))))(while (= osl (setq sl (strlen(setq st (substr s si osl)))))(if (= st os)(progn(setq s (strcat (substr s 1 (1- si)) ns(substr s (+ si osl))))(setq chf t) ; Found old string(setq si (+ si nsl)))(setq si (1+ si))))(if chf (progn ; Substitute new string for old(setq e (subst (cons 1 s) as e))(entmod e) ; Modify the TEXT entity(setq chm (1+ chm))))))(setq l (1+ l)))))(princ "修改了") ; Print total lines changed(princ chm)(princ " 行文字.")(terpri))。
完美解决AutoCAD 字体替换问题
完美解决AutoCAD 字体替换问题打开别人一张图时,要不停的替换我没有的字体文件;或者找不到原文件的字体怎么办?叫你一个很好的方法!希望对您有所帮助!1.从网上直接搜索CAD 没有的字体,下载后复制到或者直接剪切到CAD 安装的文件内Fonts文件里就可以了。
我使用的AutoCAD LT2012 的版本,该版本的Fonts文件目录地址为: C:\Program Files\Autodesk\AutoCAD LT 2012-SimplifiedChinese\Fonts。
该方法的缺点,就是如果所需要的字体很多,会占用大量磁盘空间,有可能影响CAD 运行速度。
我从网上下载了一个字体包,里面还有2458 种字体,解压后大小有1G 之多。
2.复制粘贴Fonts文件夹里现有的字体文件,会生成所复制字体的副本,将该附件重命名所需字体的名称。
比如用字体gbcbig(win7 系统里默认隐藏已知文件类型的扩展名,我的是win7 系统,所以在字体名称后面不显示.shx,XP 系统下会显示为gbcbig.shx)替换没有的字体hzfs,复制粘贴字体gbcbig,会生成该字体文件“gbcbig- 副本”,将该字体文件重命名为hzfs就可以了。
该方法和第一种方法的缺点一样,会占用磁盘空间,有可能影响CAD 运行速度。
3.利用CAD 字体映射文件来达到不再手动选择替换字体样式。
最完美的设置方法。
其本质就是将手动选择替换字体改为由CAD 自动替换字体。
进入CAD 以后,依以下循序操作:第一步:选项→文件→支持文件搜索路径该项目下会有几个文件目录地址,选择含有appdata的地址,我的目录地址为: C:\Users\ZhangZongYe(当前系统用户名)\AppData\Roaming\Autodesk\AutoCAD LT 2012 - Simplified Chinese\R17\chs\Support ,该目录下可以找CAD 字体映射文件acadlt.fmp(不同版本的CAD 对应的映射文件名称不同)。
批量CAD文件内部多处文字批量替换办法
项目
问题
PL1200项目核对CAD,excel具
体内容,严重浪费时间,我见
意严格命名好各个文件,借用
关系也要明确方便追查,目前
公司要整理的文件特多当出现多为版本时(多个CAD文件,内容不同但都同为一个名字,又如同一个项目文件夹命名一样,但具体打开又其他项目的名字,很多搞不清最新情况),有些借有其他项目的图纸,但其他项目图纸找不到,此问题文件夹命名不对,文件夹里面对应的CAD标题名命名又不对,而且EXCEL命名又不对,EXCELD里面对应的标题命名又不对,借用关系又不对,
请问如何整理项目?
问题:
整理配料机问题咨询见意
多个文件夹下的cad文档内批量替换字符,本人现在做资料,遇到一个麻烦事,一套资料有100个文件夹,一个文件夹里面有多个cad文档。
产品目录很乱,CAD内部图名全要更新;cad文件名自己已重命名,对应关系也对应好了,我要做的工作就是一个个打开文件CAD夹,打开里面的文档,然后ctrl+H替
个人办法:
咨询
出现多个PL1200项目文件夹,如何全新命名
(CAD内部图名修改;cad各文件名重命名,
图纸目录图名重命名,物料清单各物料图名
要重新替换,如何EXCEL中,CAD中批量替换
等?
,遇到一个麻烦事,一套资料有100个文件内部图名全要更新;cad文件名自己已重命文件CAD夹,打开里面的文档,然后ctrl+H替。
CAD软件中的文本快速编辑和替换技巧
CAD软件中的文本快速编辑和替换技巧在CAD软件中,文本是我们经常会用到的元素之一。
无论是在绘图还是在注释中,文本的编辑和替换是我们需要掌握的基本技巧之一。
在本文中,我将介绍一些CAD软件中的文本快速编辑和替换技巧,帮助你提高工作效率。
1. 单行文本编辑:通过选择文本对象,你可以使用编辑命令来修改文本的字体、大小、对齐方式等属性。
例如,你可以选择文本对象后使用编辑命令中的“字体”选项来更改字体样式。
使用编辑命令时,注意使用提示信息,灵活应用各种选项。
2. 多行文本编辑:CAD软件中的多行文本是一种特殊的文本对象,其内容可以跨越多行。
你可以使用编辑命令来修改多行文本的属性。
如果你需要在多行文本中进行编辑,可以通过选择文本对象后,使用右键菜单中的“编辑多行文本”选项,以便对文本内容进行编辑。
同时,你还可以使用各种格式命令来调整文本的格式,如首行缩进、段落对齐等。
3. 在CAD软件中进行文本替换:有时候,在绘图过程中我们需要对文本进行替换,以便修改文本的内容或修正错误。
CAD软件提供了一种快速替换文本的方法,即通过“查找和替换”命令。
你可以在CAD软件的编辑菜单中找到该命令,并按照提示进行操作。
在替换文本时,你可以指定需要替换的文本、替换后的文本以及替换的范围(如当前图层、整个图纸等)。
4. 使用快捷键加速文本编辑:熟练掌握CAD软件的快捷键可以大大提高工作效率。
下面是一些常用的快捷键,以加速文本编辑:- F2:用于查看文本命令的历史记录。
- F7:用于切换到文本编辑模式,以便精确地编辑文本。
- Ctrl+H:用于打开“查找和替换”对话框,以进行文本的快速查找和替换。
5. 使用文本样式提高一致性:在CAD软件中,你可以创建和使用文本样式,以保持文本的一致性。
文本样式可以包括字体、大小、颜色等属性。
通过使用文本样式,你可以在绘图过程中快速应用一致的文本格式,而无需每次都手动设置。
总结:文本是CAD绘图过程中不可或缺的一部分,因此我们需要掌握一些文本快速编辑和替换的技巧来提高工作效率。
AutoCAD字体替换技巧
文档供参考,可复制、编制,期待您的好评与关注!AutoCAD字体替换技巧AutoCAD文件在交流过程中,往往会因设计者使用和拥有不同的字体(特别是早期版本必须使用的单线字体),而需为其指定替换字体,如下图所示,即是因为笔者的电脑中没有UMHZ.shx字体,而需为其指定笔者电脑中存在的字体hzkt.shx。
这种提示在每次启动AutoCAD后,打开已有文件都会出现。
其实,这种字体替换可以在配置中一次指定:执行config命令,在下图对话框的黑显处(指定替换字体文件)输入字体文件及其完整目录,ok后,下次启动AutoCAD打开已有文件时,字体替换提示将不在出现。
打开别人cad图的时候往往经常会出现字体乱码或者问号的现象,可以通过以下方法解决:打开cad的安装目录里面的support目录,找到文件acad.fmp,双击打开,在下面添加以下内容:hztxtb; hztxt.shxhztxto; hztxt.shxhzdx; hztxt.shxhztxt1; hztxt.shxhzxy; hztxt.shx fs64f; hztxt.shx hzfs; hztxt.shx st64f; hztxt.shx kttch; hztxt.shx khtch; hztxt.shx hzxk; hztxt.shx st64s; hztxt.shx ctxt; hztxt.shx hzpmk; hztxt.shxhztx; hztxt.shxfs; hztxt.shxht64s; hztxt.shxkt64f; hztxt.shxhzfs0; hztxt.shx如果遇到没添加的,就在下面继续补充,添加好后保存,启动cad即可,后面的hztxt.shx可以自己改为其他字型CAD字体乱码的解决方案(zz)一:复制要替换的字库为将被替换的字库名,如,打开一幅图,提示找不到jd字库,你想用hztxt.shx替换它,那么你可以把hztxt.shx 复制一份,命名为jd.shx,就可以解决了。
CAD制图中怎么批量查找并替换图纸文字?
在Word里面进行编辑文档,最常所用的就是查找、替换来更改文档错误之处。
CAD图纸上也有不少的文字标注是用来注释图纸,里面的文字也会有错误之处。
其实也完全可以利用查找、替换命令来进行所熟知的操作,具体的操作步骤演示如下:
第一步:点击电脑桌面上方中的迅捷CAD编辑器图标并运行,之后则是在CAD编辑器操作界面上找到打开图标,点击激活。
点击文件—打开命令同样可以。
第二步:在弹出的窗口内把所需要的CAD图纸进行打开,之后利用界面上的缩放工具调整图纸大小。
一般最常用的是鼠标的滚轮来进行调节大小。
第三步:进行激活查看和替换命令有两种方法:点击界面上方中编辑窗口下拉框内替换命令;在命令中直接输入find指令。
下面则是跟着步骤进行操作。
第四步:界面会弹出一个“查找和替换”对话框,在查找内容栏中输入查找文字,在替换为一栏中输入更改文字,然后点击对话框下面的“查找”按钮进行查找。
第五步:这里你可选择替换或者全部替换。
在CAD图纸进行更改完成之后则是需要进行保存,点击界面上方中保存图标;或者点击界面上文件—保存为命令。
以上就是小编今天所要分享的全部内容,对此你有什么不懂或者不理解之处?不妨试着跟着步骤多操作几遍。
希望对大家能够有所帮助!。
利用ObjectArx在AutoCAD中实现文字批量替换
利用ObjectArx在AutoCAD中实现文字批量替换
李如忠
【期刊名称】《机械设计与制造》
【年(卷),期】2005(000)004
【摘要】介绍了ObjectArx的开发原理,对通过ObjectArx编程实现AutoCAD 中的文字批量替换的原理进行了详细描述,并给出了主要程序段,实现了AutoCAD 中的利用长事务处理机制对外部引用图形进行处理的过程.
【总页数】3页(P38-40)
【作者】李如忠
【作者单位】四川省绵阳市919信箱515分箱,绵阳,621900
【正文语种】中文
【中图分类】TP39
【相关文献】
1.利用ObjectARX在英文版AutoCAD2000中显示汉字的方法 [J], 田凯;濮阳槟
2.利用ObjectARX实现AutoCAD图形换带投影 [J], 杨小兵
3.利用ObjectARX技术在AutoCAD中开发任意截面形状竖向构件配筋校核程序[J], 王建锋;张力;霍勇贤;陈子静;朱颖菲
4.利用二次开发技术在UG中实现文字的批量替换 [J], 李如忠
5.利用AutoCAD ObjectARX开发工具实现焊接方法的优化设计 [J], 袁逸萍;祁文军;方建疆
因版权原因,仅展示原文概要,查看原文内容请购买。
基于ObjectARX的线划图文件批量处理研究
基于ObjectARX的线划图文件批量处理研究施苏毅;熊俊华【摘要】数字线划图(DLG)是我国基础地理信息数字成果之一,外业测绘的成果一般就是DLG.DLG使用较为广泛的格式为AutoCAD的DWG格式,阐述了DWG格式的线划图文件批量处理.图形文件批量处理就是根据用户的需求对多个图形文件进行相同的操作,这些操作可由计算机自动化完成.ObjectARX是AutoCAD常用的开发工具,研究了基于ObjectARX与C#.NET对AutoCAD进行二次开发,实现线划图文件批量处理的技术,具有较好的现实意义与广泛的应用前景.【期刊名称】《江西科学》【年(卷),期】2014(032)004【总页数】5页(P482-486)【关键词】线划图;ObjectARX;批量处理;AutoCAD【作者】施苏毅;熊俊华【作者单位】昆明理工大学,650093,昆明;昆明理工大学,650093,昆明【正文语种】中文【中图分类】P209数字线划图(DLG)采用点、线、面形式或地图特定图形符号形式表达地形要素。
在AutoCAD中对应着DataBase中的实体要素。
每个实体或图元对应一个数据记录,主要用来存储实体的几何数据和几何特性(线型、图层、颜色、字体等)。
目前,常用的数字线划图制图、成图软件——CASS软件已具备较完善的功能[1],但不能对图形文件进行批量化处理。
因此,对其二次开发十分必要。
ObjectABX技术逐渐成为AutoCAD二次开发的主流。
ObjectABX应用程序能直接利用AutoCAD核心数据库和代码,利用AutoCAD的开放结构,可以直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,具有模块性好、独立性强、连接简单、使用方便、内部功能高效实用、代码可重用性强等优点[2]。
本文使用ObjectARX以及C#.NET开发的程序可以对多个线划图文件的进行批量处理,并在文中给出了核心代码。
1.1 ObjectARX简介AutoCAD提供了丰富的开发工具,如ADS(AutoCAD Development System)、ObjectARX/ObjectDBX,VBA/AutoCAD ActiveX Automation(COM)、AutoLISP/Visual LISP、.NET[3]。
基于ObjectARX技术的AutoCAD数据格式转换
基于ObjectARX技术的AutoCAD数据格式转换
周炤;刘海砚;赵鹏
【期刊名称】《地理空间信息》
【年(卷),期】2006(4)6
【摘要】概要介绍了ObjectARX开发环境以及ARX应用程序,重点论述了如何在ObjectARX开发环境下,编写ARX应用程序,实现对AutoCAD数据库的访问,及对AutoCAD数据进行提取和格式转换的方法,给出了具体的实现思路和实现的代码细节.
【总页数】3页(P30-32)
【作者】周炤;刘海砚;赵鹏
【作者单位】信息工程大学,测绘学院,河南,郑州,450052;信息工程大学,测绘学院,河南,郑州,450052;信息工程大学,测绘学院,河南,郑州,450052
【正文语种】中文
【中图分类】P208
【相关文献】
1.基于ObjectARX的AutoCAD 2000开发技术 [J], 周文玉;罗国富;陆飞宏
2.基于ObjectARX的AutoCAD二次开发技术 [J], 王田煜;徐刚
3.基于ObjectARX和SQL Server的AutoCAD图形数据存储 [J], 王蕊
4.AutoCAD向GIS数据格式转换关键技术的探讨 [J], 闫春波
5.基于ObjectARX的AutoCAD二次开发技术在铁路桥梁工程中的应用 [J], 高策;韩广晖;李淼;陈冰洋
因版权原因,仅展示原文概要,查看原文内容请购买。
如何批量查找替换图纸中的CAD文字?
如何批量查找替换图纸中的CAD文字?CAD可以在不打开文件的情况下,批量查找替换图纸中的CAD文字吗?答案是肯定的!浩辰CAD机械软件中批量查找替换功能可以在不打开图纸文件的情况下,实现批量查找与替换图面中的单行文本、属性文本、多行文本、标注文本等,而不论这些文本是否存在于嵌套块内。
本文小编就来给大家分享一下在不打开图纸文件的情况下批量查找替换CAD文字的操作技巧吧!批量查找替换CAD文字步骤:1、启动浩辰CAD机械软件后,在菜单栏中点击【浩辰机械】—【辅助工具】—【批量文字查找】,会弹出“批量查找替换”对话框,在“查找字符串”中输入要查找的文字。
在此输入字符串或从列表中在最近使用过的六个字符串中选择一个。
2、如果不仅查找当前文件,点取“选择文件集合”按钮,来选择若干DWG 文件,出现“选择dwg文件”对话框,选择完毕,点取“确定”。
3、在“搜索范围”中,选择“当前文件”、“当前选择”、“单个文件”或“全部文件”来定义搜索的范围。
按钮,用来执行当前选择范围的确定。
4、选择“选项”指定要包含在搜索中的文字范围、类型及标题栏、明细表数据等,弹出“查找替换配置”对话框。
同时可以指定全字匹配,也可以指定区分大小写。
5、在“改为”中输入用来替换找到的文字的文字。
6、选择“查找”,在“上下文”区域中显示查找到的文字及其上下文。
选择“全部查找”,出现以下对话框,记录文件名称、查找的字符串、上下文及次数、查找状态及图元类型。
7、执行以下步骤之一:只替换已查找到的文字串实例,请选择“替换”。
要替换“查找字符串”中的所有实例,请选择“全部改为”。
出现与“数据浏览”对话框类似的对话框,显示替换字符串及替换状态。
8、缩放为:此功能是指你在查找内容之后将查找的内容缩放到你眼前(注:不是所有的内容都能缩放到你眼前的)。
通过以上CAD教程中的几个简单步骤便可以在不打开CAD图纸文件的情况下批量查找替换CAD文字,你学会了吗?。
在cad中如何批量修改文字
在cad中批量修改文字的方法
如果你的软件有装天正插件的话,那还有另一个方法,就是输入“CZTH”即查找替换,比如我要修改图纸里面所有的22,变成23,然后点击全部替换,也可以框选区域替换
假设这里的日期不是2014.11.28,是2014.11.22呢,那你使用查找替换的结果就是这样的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文章编号:2004-625 利用ObjectArx在AutoCAD中实现文字批量替换李如忠四川省绵阳市919信箱515分箱 621900摘要介绍了ObjectArx的开发原理,对通过ObjectArx编程实现AutoCAD中的文字批量替换的原理进行了详细描述,并给出了主要程序段,实现了AutoCAD中的利用长事务处理机制对外部引用图形进行处理的过程。
关键词ObjectArx AutoCAD 图形长事务文字替换Achieve batch replacement function of text in AutoCAD using ObjectArxLi Ru-zhongP.O.Box 919-515, Mianyang, Sichuan 621900,CHINAAbstractThe development principle of ObjectArx is introduced, then the method of achieve batch replacement of text in AutoCAD using ObjectArx program is presented in detail. The author designed the application program. The procedure of performing external reference in AutoCAD using long transaction processing is achieved.Keywords ObjectArx, AutoCAD, drawing, long transaction, replacement of text1 前言AutoCAD是目前使用最广泛的CAD软件,它具有强大的二维绘图功能。
同时,它采用了开放体系结构,允许用户或二次开发商扩充新的功能和设计各种实用程序。
机械制图中所采用的标准件、材料等的标识随着标准的发展而不同,如在早期的标准中一种结构钢材料标识为A3,在现在的标准中标识为Q235。
制造企业为了处理早期的绘图,统一标识,必须用新的标准替换原来的标准,这就用到文字的查找替换功能。
在AutoCAD中有文字的查找替换功能,但是它只能针对当前打开的图形,不能对大量的图形进行批量处理。
ObjectArx 2000是Autodesk公司随AutoCAD2000推出的新一代功能强大的二次开发工具,本文利用ObjectArx开发了在AutoCAD中实现对一个目录下的所有AutoCAD文件中的文字批量替换的实用程序。
2 ObjectArx开发原理ObjectArx是一个面向对象的C++编程环境,它包含一组动态链接库(DLL),这些库与AutoCAD在同一地址空间内运行,直接利用AutoCAD的核心数据库结构和代码。
ObjectArx 程序可以直接调用AutoCAD的API函数,访问AutoCAD的数据库结构、图形系统,以及几何造型等。
ObjectArx程序的本质是Windows DLL程序,用户可以注册自己的AutoCAD 命令,这些命令和AutoCAD内部命令一样使用,它支持MFC,可以利用MFC编写功能强大、具有Windows风格的用户图形界面程序。
ObjectArx程序文件主要有两部分组成,定义文件(.def)和源程序文件(.cpp)。
定义文件必须输出acrxEntryPoint函数。
源程序文件中主要定义几个接口函数:acrxEntryPoint、addCommand、removeGroup和实现自己程序功能的函数。
acrxEntryPoint函数是必须要定义的函数,AutoCAD通过它调入一个ObjectArx应用程序,此函数代替了C++程序中的main函数,如果用户使用ObjectArx程序定义了一个新的AutoCAD命令,AutoCAD将使用这个函数同用户定义的新命令建立联系。
addCommand函数主要用来注册一个用户自定义命令,当用户新注册一个命令时,也同时为它指定了一个组名。
在这种情况下,为了避免用户自定义的命令与原来的命令发生冲突,应当给组名加上特殊的前缀。
在一个给定组中,一条命令名必须是唯一的,而组名也是唯一的,从而使不同的应用程序可以注册同样的命令,因为不同的组名可以将它们区分开来。
removeGroup函数主要用来删除命令组,同时组中的所有命令也同时被删除,也可以用removeCmd函数,删除特定组中的命令,而不删除组。
用户自定义的函数是实现用户自定义命令功能的函数,根据具体实现的功能来编写。
3 在AutoCAD中实现文字批量替换的原理在AutoCAD中对dwg文件进行批量处理,可以看做对单个文件处理的循环。
单个文件处理的步骤为:a. 把要处理的dwg文件数据库读入到AutoCAD中b. 查找该文件中所有文字对象,并把文字对象中的内容与需要替换的文字进行比较,如果是需要替换的文字,则替换,否则查找下一个文字对象,直到查找完所有的文字对象。
c. 把该文件保存。
在对单个文件进行处理时需要注意的问题:把dwg文件读入到AutoCAD中,对dwg文件的数据库进行操作相当于在当前数据库中对外部引用对象进行操作,所有需要使用AutoCAD中的长事务机制来支持AutoCAD引用编辑特征。
长事务处理类和函数为应用程序提供了一个方法,在需要对实体进行编辑时获得替代的实体,当操作完成后恢复原实体,这个操作将原来的对象用编辑对象替代。
具体操作步骤为:首先打开要处理的的数据库,遍历要处理的对象,把对象ID添加到一个ID数组中,然后获得当前数据库的模型空间块表记录,再获得当前数据库模型空间记录的对象ID,创建长事务对象,并把遍历对象后保存的ID数组传给长事务对象,获得长事务指针,对长事务工作集中的对象进行遍历和处理,然后将实体放回原数据库并保存。
对dwg文件进行批处理的步骤:a. 查找一个目录下的所有文件和子目录b. 如果找到的是文件,并且是dwg文件,则对该文件处理,如果是其它文件则放弃,如果是子目录,则利用递归处理方式,把子目录作为一个新的要查找的目录进行处理。
4 编程实现4.1 对单个文件进行处理的函数void FileEdit(char * filename,int & errornum,char * findstr,char * replacestr){AcDbObjectId transId;AcDbDatabase* pDb;CString temp;//新建数据库,打开要处理的文件pDb = new AcDbDatabase(Adesk::kFalse);//如果打开失败或用户已经打开了此图形,则报错后返回if (pDb->readDwgFile(filename) != Acad::eOk){acutPrintf("\nSorry, that drawing is probably already open.");return;}//获得这个图形文件数据库的块表AcDbBlockTable *pBlockTable;pDb->getSymbolTable(pBlockTable, AcDb::kForRead);//获得模型空间块表记录AcDbBlockTableRecord *pOtherMsBtr;pBlockTable->getAt(ACDB_MODEL_SPACE, pOtherMsBtr, AcDb::kForRead); pBlockTable->close();//创建一个遍历器AcDbBlockTableRecordIterator *pIter;pOtherMsBtr->newIterator(pIter);//创建一个对象ID数组AcDbObjectIdArray objIdArray;//对模型空间块表记录进行遍历for (pIter->start(); !pIter->done(); pIter->step()){//获得实体AcDbEntity *pEntity;pIter->getEntity(pEntity, AcDb::kForRead);//对实体进行判断,如果是多行文字对象,并且内容中包含要查找的//文字,将实体的对象ID添加到数组中if (pEntity->isKindOf(AcDbMText::desc())){temp.Format("%s",((AcDbMText *)pEntity)->contents());if(temp.Find(findstr)>=0)objIdArray.append(pEntity->objectId());}//如果是单行文字对象,并且内容中包含要查找的文字,将实体的对象ID添加到数组中if (pEntity->isKindOf(AcDbText::desc())){ temp.Format("%s",((AcDbText *)pEntity)->textString());if(temp.Find(findstr)>=0)objIdArray.append(pEntity->objectId());}//关闭实体pEntity->close();}delete pIter;pOtherMsBtr->close();//如果图形中没有文字对象,则释放数据库指针,返回if (objIdArray.isEmpty()){delete pDb;pDb = NULL;return;}//获得当前数据库和当前数据库块表AcDbBlockTable *pThisBlockTable;acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pThisBlockTable, AcDb::kForRead);//获得当前数据库模型空间块表记录AcDbBlockTableRecord *pThisMsBtr;pThisBlockTable->getAt(ACDB_MODEL_SPACE, pThisMsBtr, AcDb::kForWrite); pThisBlockTable->close();//获得当前数据库模型空间记录的对象IDAcDbObjectId id = pThisMsBtr->objectId();pThisMsBtr->close();//创建长事务,将从外部数据库中获得外部对象AcDbIdMapping errorMap;acapLongTransactionManagerPtr()->checkOut(transId, objIdArray, id, errorMap); AcDbObject* pObj;//打开对象成功if (acdbOpenObject(pObj, transId, AcDb::kForRead) == Acad::eOk){//获得长事务指针AcDbLongTransaction* pLongTrans = AcDbLongTransaction::cast(pObj);if (pLongTrans != NULL){//获得工作集遍历器AcDbLongTransWorkSetIterator* pWorkSetIter;pLongTrans->newWorkSetIterator(pWorkSetIter);//对工作集中实体进行遍历,替换其中的文字for (pWorkSetIter->start(); !pWorkSetIter->done(); pWorkSetIter->step()){AcDbEntity *pEntity;acdbOpenAcDbEntity(pEntity, pWorkSetIter->objectId(), AcDb::kForWrite);//如果是多行文字对象,进行替换if(pEntity->isKindOf(AcDbMText::desc())){temp.Format(((AcDbMText *)pEntity)->contents());temp.Replace(findstr,replacestr);((AcDbMText *)pEntity)->setContents(temp.GetBuffer(100));}//如果是单行文字,进行替换if(pEntity->isKindOf(AcDbText::desc())){temp.Format(((AcDbText *)pEntity)->textString());temp.Replace(findstr,replacestr);((AcDbText *)pEntity)->setTextString(temp.GetBuffer(100));}pEntity->close();}delete pWorkSetIter;}pObj->close();}//将实体放回原数据库acapLongTransactionManagerPtr()->checkIn(transId, errorMap);//保存原数据库,关闭数据库和删除此对象pDb->saveAs(filename);delete pDb;pDb = NULL;}4.2 批量文字替换处理函数void MyfindandreplaceDlg::Replace(CString Directory){int errornum;CString FullName,temp;CFileFind ff;CString szDir =Directory;//拷贝要处理的目录名if(szDir.Right(1) != "\\")szDir += "\\";szDir += "*.*";BOOL res = ff.FindFile(szDir);//查找要处理的目录下的全部文件和子目录while(res){res = ff.FindNextFile();//如果找到的是隐藏文件或系统文件或点目录,则返回if(ff.IsHidden()||ff.IsSystem()||ff.IsDots())continue;if(ff.IsDirectory())//如果是子目录{//则将子目录名作为参数,进行递归,调用函数本身if(m_IncludeSubDir)Replace(ff.GetFilePath());}if(!ff.IsDirectory()){ //如果是文件,则检查是否是后缀为dwg的文件FullName=ff.GetFilePath();FullName.MakeLower();if(FullName.Find(".dwg")>=0){ //如果是dwg文件,则进行替换操作acutPrintf("\n\nFile Name is %s\n",FullName.GetBuffer(100));FileEdit(FullName.GetBuffer(100),errornum,m_FindStr.GetBuffer(100),m_ReplaceStr.GetBuffer(100));}}}}5 程序的使用5.1 程序的加载和运行加载程序时,在AutoCAD中运行appload命令或选择加载应用程序菜单,然后运行自定义的命令mfind,出现如图1的对话框,选择要处理的目录,输入要需要替换的文字和替换后的文字,然后按“替换”,开始对整个目录下的dwg文件进行处理。