本帖最后由 highflybir 于 2013-4-21 20:45 编辑
常用
可能已经有这样的程序了。但要收费或要注册的,所以我发表了lisp程序在此,希望他们能谅解。这个程序没有什么技巧而言。经过测试,速度应该还可以。
有什么建议或者纰漏之处,请大家指出。
核心代码:
- ;;;=============================================================
- ;;; 功能:简体字符串和繁体字符串互相转化
- ;;; 输入:字符串
- ;;; 输出:被转化后的字符串
- ;;;=============================================================
- (defun Text:CharConvert (text IsRev / Index NewTxt Str From to)
- (if IsRev
- (setq From TraditionalCharset
- To SimpleCharSet
- )
- (setq From SimpleCharSet
- To TraditionalCharset
- )
- )
- (setq NewTxt "")
- (while (/= text "")
- (setq str (substr text 1 1))
- (if (> (ascii str) 128)
- (progn
- (setq str (substr text 1 2))
- (setq text (substr text 3))
- (if (setq index (VL-POSITION str From))
- (setq str (nth index To))
- )
- )
- (setq str (substr text 1 1)
- text (substr text 2)
- )
- )
- (setq newtxt (strcat newtxt str))
- )
- newtxt
- )
程序源码在此:
程序已经稍做修改。另:若有人能帮忙提供 台湾或者香港的字体和相关样例图,则可辅助我完成内码转换及其测试。在此致谢。
=============================================
2013.1.32增加 DLL文件。
这个是对话框演示演示。
已经包含了32位和64位的版本,应该可以在CAD的各个版本上运行。
- (defun c:zzz (/ dlg)
- ;;如果注册成功,以后就可以不需要这一句
- (startapp "regsvr32 /i /s \"F:\\zqy\\C\\CharConverter\\Release\\CharConverter.dll\"")
- (setq dlg (vlax-create-object "CharConverter.Dialog"))
- (if dlg
- (progn
- (vlax-invoke dlg 'doit)
- (vlax-release-object dlg)
- )
- )
- (princ)
- )
在VBA里面可以这样用。
首先引用,然后就可以了。
- Sub test()
- Dim a As DialogTest
- Set a = CreateObject("CharConverter.Dialog")
- With a
- .doit
- End With
- End Sub
以后将会陆续添加其内容,并能对CAD操作。
======================================
2013.04.20更新:提供新的方法和函数,可以实现真正内码转化。
=============================================
2013.04.21更新:现在可以提供对含文字的CAD图元操作,包括:
单行,多行文字,引线,属性,标注,公差,表格,块及其嵌套块。
LISP源码发行了三个版本,GB,GBK,BIG5,简体,繁体,台湾繁体版本.
|