大家好,这里是新来的,Lisp程序。自AutoCAD 2000以来,我已经做了一些,但只是在这里和那里,所以我在这方面非常粗糙。
我已经编写了一个小例程来翻译(读交换)语言,它在0层上搜索所有文本和多行文字的图形,并将其放入SS中。然后,我使用了来自Gilles Chanteau的Excel例程和位,将Excel文件读入列表。文本将与该列表进行比较并交换。
问题是,我认为是特殊字体(希腊语、俄语等)还是替换方法。如果我复制Excel文本并将其粘贴到文本或多行文字中,它会正确显示。然而,例行程序显示?对于许多字符,设置文本样式/字体似乎没有效果。例如,英语单词“SOFA”被替换为“??”??????但复制/粘贴显示“ΚΑΝΑ∏Ε∑”。
或多或少,我正在通过SS将文本字符串与excel中的列表进行比较。它每次交换都很完美,找到了18种语言的匹配项。Excel第1列为英语,第2列为希腊语,依此类推。它将换成希腊语并显示?”它会将其识别为与希腊语列中的一个单元格相匹配,然后转换为另一种语言或返回到英语,这样识别就存在了。我只是不明白为什么它不会显示。我认为文本字符串是原始的,或者存在一些unicode格式问题,因为复制/粘贴可以工作。奇怪的是,复制粘贴后,无法识别交换文本。我的ENTMOD中是否需要包含一些格式转换?
- (setq ED (entget ENT))
- (setq iTXT (cdr (assoc 1 ED)))
- (setq curCELL (nth excelCOL (nth excelROW mylist))) ;original language
- (setq retCELL (nth newCOL (nth excelROW mylist))) ;new language
- (if (= curCELL iTXT)
- (setq ED (subst (cons 1 retCELL) (assoc 1 ED) ED))
- (entmod ED)
- ); (if (= curCELL iTXT)
编辑:我觉得我的列表有问题,如果字体不能在那里显示,它就永远不会到达文本。如何将字符串与Excel单元格的内容一一匹配? |