关于钢筋符号的代码问题-很是头疼啊
最近想做一个关于配筋方面的辅助工具,本来网上有Arx的,但是只能找到06版的,而我一般用2010版的CAD,所以没法用,想自己做一个。但是在识别钢筋符号上碰到了一个很头痛的问题。如下面这样的带钢筋符号的标注(这是个单行文本)
,我希望是采用那种鼠标悬停到这个标注上的时候,就读出这个标注的内容,然后进行一定的处理,通过悬停提示给出配筋面积。
我用vlisp编了个小程序,作用是获得这个标注字符串,然后用(vl-string->list)把它全部转换成ASCII码的一个表。然后用vb.net编了一个,类似的,获得悬停的对象后,通过DBText对象的textstring获得这个标注的内容,然后通过一个函数也把它转化成ASCII码的字符串。
但是问题出现了。如果是第一次打开图(这个图并不是指特定图,也就是图本身没问题,准确点说是这个标准未经编辑之前),用vlisp命令点击上面那个串获得的ASCII码表是(49 54 92 85 43 48 48 56 52 50 53),翻译过来的字符串是“16\U+008425”,其实我知道\U+0084就是那个三级钢的符号。但是用我编写vb.net的程序,得到的结果确是:
,如图(49 54 63 50 53),翻译过来的字符串是“16?25”,这个三级钢符号变成了问号的ASCII码了。
如果,我双击这个标注,进入单行文字编辑状态,但是不进行任何编辑,又退出来。在进行上面的两部操作,用vlisp程序获得的ASCII码表是(49 54 37 37 49 51 50 50 53),翻译过来是“16%%13225”,这时三级钢符号变成了%%132。再用那个vb.net程序,得到的结果是:
,如图(49 54 37 37 49 51 50 50 53),这时的结果才与vlisp的结果一样。
不管是%%132还是\U+0084我都有办法。。可是才打开,没进入编辑一下的时候,从.net程序里面三级钢符号读出来的居然是?号的ASCII码?那我怎么区分啊这个符号啊?而且不管一级钢,二级钢还是三级刚,这个标注未经编辑之前都是?,显然就没法知道到到底是几级钢了!
这个问题在vb.net里面怎么解决啊?各位有没有什么更好的方法?
这么看来,其实用vlisp做字符处理就完全没问题了,但是显示方面,我又要借助vb.net的功能。。真是头疼啊!!
我用vlisp,想编一个类似的程序,连\U+0084这个就解决不了,求指导 你干嘛要转换成ASCII,直接对string进行处理就行了。 问题解决了:直接把所有字符串里面的\U+什么的全部替换掉成%%13*的形式,vl-string-subst 使用字体 fsdb ,fsdb_e 然后使用^ & 就行了。 这个问题我也遇到了,我也在用vb.net 处理配筋问题
在06,08没问题,在10就出现了。
兄弟你有没有解决啊 文字双击,不做任何编辑,确定后,在对象特性中就变了
很好的问题,关注
页:
[1]