求助文字问题,请版主及各位高手帮忙
本帖最后由 作者 于 2009-3-4 0:02:10 编辑应经常套用图纸不可避免需要修改文字,但图面上都有这些文字,纯粹修改文字输入也很麻烦,不知道有没有这样的工具,可以直接框选文字提取文字过后再进行框选插入,替换或者将提取的文字单独插入到指定位置上?这样可以大大减轻由于CAD文字编辑功能弱项带来的繁琐工作 <p>版主帮忙写一下吧,也许有些难度吧,在论坛上好像没有看到这种程序啊</p><p>就是想用鼠标完成大部分文字编辑,提高速度</p> <p>是不是首先选择一个文字,然后提取文字内容,</p><p>然后用这个内容替换所有其它选中的文字内容啊.</p><p>如果是这样我可以帮你写</p> <p>对了,我的QQ是31642938</p><p>直接发这个,我比较少来这里</p><p>免费帮忙</p> <p></p><p>简单写一个替换AcdbText的.ARX是在VC6.0下编译的,只能2000/2002加载</p><p>加载了ARX,然后命令是CT.</p> <p>简单代码</p><p>void ChangeText()<br/>{<br/> ads_name entText;<br/> ads_point ptSel;<br/> if(ads_entsel(_T("\n请选择文字内容样本:"),entText,ptSel) != RTNORM)<br/> return;</p><p> AcDbObjectId idText;<br/> Acad::ErrorStatus es = acdbGetObjectId(idText,entText);<br/> if (es != Acad::eOk)<br/> return;</p><p> AcDbEntity * pEnt = NULL;<br/> acdbOpenAcDbEntity(pEnt,idText,AcDb::kForWrite);<br/> if (!pEnt)<br/> return;</p><p> if (!pEnt->isKindOf(AcDbText::desc()))<br/> {<br/> pEnt->close();<br/> return;<br/> }</p><p> AcDbText * pText = (AcDbText*)pEnt;<br/> CString strTextCon = pText->textString();</p><p> pEnt->close();</p><p> ads_name entChange;<br/> //只要acdbText<br/> struct resbuf * out = ads_buildlist(RTDXF0,"TEXT",0);<br/> ads_printf(_T("\n选择要替换内容的文字"));<br/> if(ads_ssget(NULL,NULL,NULL,out,entChange)!=RTNORM)<br/> {<br/> ads_relrb(out);<br/> return;<br/> }</p><p> //遍历选择集,替换内容<br/> long nNums = 0;<br/> ads_sslength(entChange,&nNums);<br/> int i = 0;<br/> for (;i < nNums;i++)<br/> {<br/> ads_name curEnt;<br/> ads_ssname(entChange,i,curEnt);<br/> AcDbObjectId curID;<br/> es = acdbGetObjectId(curID,curEnt);<br/> if (es != Acad::eOk)<br/> continue;</p><p> AcDbText * pCurText = NULL;<br/> acdbOpenAcDbEntity((AcDbEntity*&)pText,curID,AcDb::kForWrite);<br/> if (!pText)<br/> continue;</p><p> pText->setTextString(strTextCon);</p><p> pText->close();<br/> }</p><p> ads_relrb(out);<br/> ads_ssfree(entChange);<br/>}</p> <strong><font face="Verdana" color="#61b713">感谢cfu18,真的很热心,现在我把它写的东西给大家看看,大家有什麽意见可以提,文件见下</font></strong> 怎么没有传上来啊 晕,还是打包吧 框选插入:
页:
[1]