本帖最后由 曰微言薄论 于 2018-12-11 08:57 编辑
距离上次发布CAD批量打印软件SmartBatchPlot的帖子之后,很久没有发表过帖子了,即使SmartBatchPlot更新到6.2.3版本了,我也没有在明经论坛上发布了,有两个原因,一是明经似乎太容易被黑了,经常无法访问,第二就是太多的人只喜欢源码。
关于获取LSIP、FAS、VLX程序自身加载路劲,之前有很多人都问过这个问题,说明大家很关注,我自己通过查阅相关资料,发现没有一步到位的方法,最后找到一个还算比较靠谱的方法,今天就把源码发出来,让大家参考一下。
原理比较简单,我们加载程序有两种方式,一是拖入加载,而是AP加载。对于拖入加载,可以通过 (getvar "lastprompt")获取;AP加载可以通过查询注册表获取,查询注册表需要考虑CAD版本问题。下面就贴出源码吧。 - ;;; 字符分割函数,delm为分割符号
- (defun parse (str delim / LST POS sl)
- (setq sl (+ (strlen delim) 1))
- (while (setq pos (vl-string-search delim str))
- (setq lst (cons (substr str 1 pos) lst)
- str (substr str (+ pos sl))
- )
- )
- (if (> (strlen str) 0)
- (setq lst (cons str lst))
- )
- (reverse lst)
- )
- (princ "\n即将获取加载目录……")
- (setq lsp_path nil)
- (if (wcmatch (setq lsp_path (getvar "lastprompt")) "*(LOAD "*")")
- (progn
- (setq lsp_path (cadr (parse lsp_path """)))
- (while (vl-string-search "/" lsp_path)
- (setq lsp_path (vl-string-subst "\" "/" lsp_path))
- )
- (alert (strcat "\n拖入方式加载目录:" lsp_path))
- )
- (progn
- (setq lsp_path (vl-registry-read (strcat "HKEY_CURRENT_USER\" (vlax-product-key) "\\Profiles\" (getvar "CPROFILE") "\\Dialogs\\Appload") "MainDialog"))
- (alert (strcat "\nAPPLOAD方式加载目录:" lsp_path))
- )
- )
- (princ "请大家多多支持我的CAD批量打印软件SmartBatchPlot")
- (princ)
最后还是希望大家多多支持我的CAD批量打印软件SmartBatchPlot,该软件适用于不同图框不同比例的打图情况,能极大提高出图效率。
前面的源码缺少字符串分割函数parse,现在补齐了。(20181211)
附件下载地址:
|