【输入法自动切换】&【鼠标双击管理器】&【快速打印设置】 源码
本帖最后由 xiaoyingzi 于 2024-7-19 20:54 编辑源码
【输入法自动切换】
源码参考来源至以下帖子
http://bbs.mjtd.com/thread-176934-1-1.html
http://bbs.mjtd.com/thread-183157-1-1.html
http://bbs.mjtd.com/thread-183420-1-1.html
http://bbs.mjtd.com/forum.php?mo ... 0245&fromuid=233467
源码文件 mkimecset.lsp mkimecset.dcl
【鼠标双击管理器】
很久以前写的,以前的帖子 http://bbs.mjtd.com/thread-91759-1-1.html
分享过115网盘链接,不过过期,这次补上
源码文件 mkdbckset.lsp mkdbckset.dcl
【快速打印设置】
思路及部分源码来源于明经论坛baitang36、陨落、ludaweb、陈伟
http://bbs.mjtd.com/thread-189458-1-1.html
http://bbs.mjtd.com/thread-189649-1-1.html
转化pia文件用到明经论坛高飞鸟制作的工具“PIA文件大师”
http://bbs.mjtd.com/thread-189589-1-1.html
pdfFactory设置用到明经论坛陈伟源码
http://bbs.mjtd.com/thread-188520-1-1.html
批量打印程序的源码程序来自ludaweb
http://bbs.mjtd.com/thread-171609-1-1.html
http://bbs.mjtd.com/thread-178244-1-1.html
2024.06.30更新
增加通过保留函数切换输入法
保留函数来自帖子
[原创]用纯lsp切换键盘布局(已增加自动切换输入法源码)
http://bbs.mjtd.com/forum.php?mo ... 0245&fromuid=233467
2024.05.17更新
打印设置,自定义尺寸打印增加打印dp、纸张单位(毫米及像素)、纸张方向(不是打印方向)等等
自定义尺寸打印两种打印方式:单打窗口选择,和指定纸张高宽,
纸张高宽,可根据纸张单位毫米和像数的不同,根据dpi关联自动计算,也可不关联,选“自动单位”,这个主要是针对转jpg和png时用到
2024.04.22更新
增加快速打印设置,包含自定义尺寸打印pdf、jpg、png。
2023.05.24更新
双击鼠标管理器 双击文字增加文字连续编辑mksddedt,其他bug若干
将CAD的ddedit和textedit通过增加的命令ddtextedit实现统一,也解决了autocad15和16版ddedit无法连续编辑的问题
输入法切换 修复ddedit连续编辑时无法通过中英文字符判断(独立版还没找到修复的好方法)
2023.05.07更新
双击鼠标管理器 双击属性增加在位编辑attipedit,其他bug若干
输入法切换 原来的中英文字符判断仅通过配合mkddedit和mktextedit实现,现改为全面支持
2023.04.24
输入法自动切换 独立出来,方便有需要单独功能的
mytool部分的更新:配置文件由mykey.ini改为mytool.ini,去除与本程序无关参数
——————————————————————————————————————————————
钢筋快速编辑 源码文件 mkgjtxtedit.lsp mkgjtxtedit.dcl 需要配合txt-m.shx或者广厦字体使用
用点“."代替三级钢符号“}”输入,例如2根25的钢筋,只需输入2.25就可以了
用点“.."代替一级钢符号“[”输入,例如2根8的钢筋,只需输入2..8就可以了
用“*"代替"@"符号“[”输入,例如[8@200的钢筋,只需输入..8*200就可以了
设置“."、“.."、“*"这三种替代符号的初衷是方便使用右侧小键盘输入,当然,也开放了自定义的替代符号。
模仿ddedit的简洁文字编辑 源码文件 mkddedit.lsp mkddedit.dcl
普通单行文字编辑 源码文件 mktxtedit.lsp mktxtedit.dcl
三种文本编辑均支持单行文本、尺寸标注文本、块內文字、块属性
源码主体来源于七月信,本人只是修改了一下,配合双击反应器,可以直接双击改块內文字和属性,
比较方便!!!设有快捷键D1,D2,D3,D4快速切换,
按下D1后,双击文字是在位编辑
按下D2后,双击文字是模仿ddedit的简洁文字编辑
按下D3后,双击文字是普通单行文字编辑
按下D4后,双击文字是钢筋快速编辑
对于块的编辑,也设有快捷键B1,B2快速切换
按下B1后,双击块(非块文字或属性图元部分,如果是就会调用文字编辑了)是refedit原位编辑
按下B2后,双击块(非块文字或属性图元部分,如果是就会调用文字编辑了)是bedit块编辑
最后,通过老迈的谜你工具箱中的面板功能(很早的版本)将这些源码组合在一起,推荐免费的
谜你工具箱!!!
试试如何,感谢! 文字编辑时,可以加入文字中英文数量识别的功能吗?
当中文文字数量多的时候切换为中文输入法
当英文文字数量多的时候切换为英文输入法
网上看见的代码,也不懂搞~
(defun c:SmartSwitchIME (/ GetTextContent AnalyzeTextRatio)
;; 获取当前编辑的文本内容
(defun GetTextContent ()
(if (setq ent (car (entsel)))
(vla-get-textstring (vlax-ename->vla-object ent))
""
)
)
;; 中英文字符比例分析
(defun AnalyzeTextRatio (str)
(setq chn_cnt (length (vl-remove-if-not '(lambda (x) (wcmatch (chr x) "[一-龥]")) (vl-string->list str))))
(setq eng_cnt (- (strlen str) chn_cnt))
(if (> chn_cnt eng_cnt) 1 0)
)
;; 命令监听逻辑
(defun OnCommandEnded (cmd)
(if (wcmatch cmd "MTEXT*,TEXT*,DDEDIT*")
(progn
(setq txt (GetTextContent))
(if (= (AnalyzeTextRatio txt) 1)
(command "_IMESetStatus" 1) ;中文输入法:ml-citation{ref="5" data="citationList"}
(command "_IMESetStatus" 0) ;英文输入法:ml-citation{ref="5" data="citationList"}
)
)
)
)
(vlr-command-reactor nil '((:vlr-commandended . OnCommandEnded)))
(princ "\n智能输入法切换已启用。")
)
里面的快速打印不行,出现错误 了
; 错误: Automation 错误。 输入无效
命令:
命令:
命令: (LOAD "C:/Users/Administrator/Desktop/mytool 2024.06.30/快速打印设置mkprint(独立版本)/将此文件拖入ACAD绘图区安装.lsp")
C:/Users/Administrator/Desktop/mytool 2024.06.30/快速打印设置mkprint(独立版本)/将此文件拖入ACAD绘图区安装.lsp
命令行输入 ps 启动打印设置!
命令: PS
; 错误: Automation 错误。 输入无效
命令:
命令: PS
; 错误: Automation 错误。 输入无效
命令:
命令: 指定对角点或 [栏选(F)/圈围(WP)/圈交(CP)]: 命令栏大部分情况下只能输入英文,中英文自动切换确实是好东西。 适用于哪些版本呢? 看起来很不错,谢谢分享,学习一下! 谢谢分享,实用的工具 谢谢分享,实用的工具 {:1_1:}感谢楼主分享{:1_1:} 感谢大佬分享 双击这个功能,是一次设置以后就不用再加载了嘛? 一直找一款CAD输入法自动切换工具,都不满意。
试一下这个如何,感谢楼主了。