通过独立界面输入多行文本
本帖最后由 kozmosovia 于 2024-8-14 16:01 编辑在DCL中可以输入文本,但DCL只支持单行,如果要输入多行文本,就只能叠加edit_box。这当然不方便。
偶然在翻CAD帮助时,发现一个从来没注意到过函数showhtmlmodalwindow,这个函数可以展示一个网址。
那么我们可以将多行文本的输入做成一个html,然后再通过这个函数展示它,在html中,可以设置电取OK按钮将输入内容复制到剪贴板。从而实现多行文本的界面输入。
可以将附件解压的html保存在磁盘,比如d:\\abcd目录下,然后在CAD中调用(showhtmlmodalwindow "file://d:/abcd/mltext.html"),就可以看到多行文本的输入界面并进行输入,结束后点取OK,输入的内容将会被复制到剪贴板。后面就可以使用读取剪贴板的代码读取或者直接Ctrl+v获取。
这个函数好像在某些CAD版本上无法正常显示网页内容,应该算是CAD的bug。不过估计全球也没几个人用这个函数,桌子肯定不去修。
标题和提示语,可以自行修改html中相应位置的内容,保存时保持时UTF-8编码
本帖最后由 kozmosovia 于 2024-8-14 10:16 编辑
菜卷鱼 发表于 2024-8-14 09:31
有意思,假如是独立的Html文件,就不用这么高端了
可以这样
(startapp "C:\\Program Files\\Google\\Chrom ...
你没有get到这个功能的要点,单纯在浏览器运行html,那么与CAD内的操作是并行的,而且需要切换来切换去。使用函数窗口,因为窗口是模态的,会独占CAD,在CAD界面等待用户输入操作,跟DCL一样。用户输入结束,程序可以继续运行。这就相当于补充了一个获取多行文本输入的功能给DCL。类似于使用ActiveX补充一些原本CAD没有的功能。以后需要输入多行内容时,可以使用这个,然后读取剪贴板获取用户输入内容。就不用做好多个edit_box了。 tryhi 发表于 2024-8-13 18:18
浏览器可以打开
那估计是html前端定位可能飞出去了,这个函数的窗口是固定大小,所以html需要适配其大小才能在窗口范围内看到。这个html是AI写的,是自动居中的,你可以试一下将浏览器窗口调到差不多函数窗口大小,看html的显示。或者调整一下html里面的高度和宽度的px数值 本帖最后由 kozmosovia 于 2024-8-13 18:44 编辑
tryhi 发表于 2024-8-13 17:57(showhtmlmodalwindow "file://C:/Users/tryhi/Desktop/mltext.html")
showhtmlmodalwindow 这是哪 ...
2014,估计当时为了能与JavaScript二开对接的。
https://help.autodesk.com/view/A ... C-8136-80E85CCEDF3E CAD2014 64位,点击按钮没反应。 本帖最后由 tryhi 于 2024-8-13 18:04 编辑
[*](showhtmlmodalwindow "file://C:/Users/tryhi/Desktop/mltext.html")
showhtmlmodalwindow 这是哪个版本才有的函数,2007没有,2018试了一下显示空白 直接用浏览器打开html试试。 tryhi 发表于 2024-8-13 17:57
showhtmlmodalwindow 这是哪个版本才有的函数,2007没有,2018试了一下没有显示出来
那就是19 了,19 亮显了 kozmosovia 发表于 2024-8-13 17:59
直接用浏览器打开html试试。
浏览器可以打开 有意思,假如是独立的Html文件,就不用这么高端了
可以这样
(startapp "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" "d://mltext.html")
页:
[1]
2