请问lisp有办法获取是什么CAD吗?浩辰or中望or。。。?
本帖最后由 hw8810 于 2023-3-29 17:45 编辑想知道当前加载lisp的是桌子CAD还是浩辰、中望,有什么方法区分吗?{:1_1:}这样可以做到不同的CAD利用不同的函数,隐藏函数国产的CAD貌似不支持呢。
03.29****************************************
我发现我理解错了,我是想区别软件然后看加不加载隐藏函数的fas。除了桌子,其他的好像不支持隐藏函数的。那这样就不是写在lisp里面了,是在打包vlx的时候要进行什么操作?
(getvar "program")
"acad"
"gcad"
"ZWCAD" hw8810 发表于 2023-3-14 16:16
大佬这是什么函数?没见过呀
@lisp 核心的部分代码。加载 @lisp 时对CAD软件的厂商 进行初步测定。
然后在后面的应用中就可以针对不同的CAD软件写差异化代码了。
(setq @:products '("AutoCAD" "GstarCAD" "ZWCAD" "BricsCAD"))
(setq fasext ".fas")
(setq is-gstarcad nil
is-bricscad nil
is-zwcad nil
is-autocad nil
@:cad-platform (getvar "product"))
"中望,浩辰特殊定义"
(cond
((string-equal "GstarCAD" (getvar "product"))
;;(or (findfile "icad.pgp")(findfile "gcad.pgp"))
(setq @:pgp-file "gcad.pgp")
(setq @:locale "chs")
(setq is-gstarcad T)
(setq is-gcad T))
((string-equal "ZWCAD" (getvar "product"))
(setq @:pgp-file "ZWCAD.pgp")
(setq @:locale "chs")
(if (> (read (getvar "zrxvernum")) 2017)
(setq fasext ".zelx"))
(setq is-zwcad T))
((string-equal "bricscad" (getvar "product"))
(setq @:pgp-file "default.pgp")
(setq is-bricscad T)
(setq fasext ".des")
(setq @:locale (strcase (getvar "locale") T)))
((string-equal "autocad" (getvar "product"))
(setq @:pgp-file "acad.pgp")
(setq is-autocad t)
(cond
((= (getvar "syscodepage") "ANSI_936")
(setq @:locale "chs"))
((= (getvar "syscodepage") "ANSI_950")
(setq @:locale "cht"))
(t (setq @:locale (strcase (getvar "locale") T)))
))
(t(setq @:locale "chs")(setq @:pgp-file "acad.pgp"))
) 本帖最后由 vitalgg 于 2023-3-13 20:00 编辑
;; @lisp 针对不同CAD的代码处理
(cond
(is-gstarcad
;; 浩辰CAD下的处理代码
)
(is-bricscad
;; brics CAD下的处理代码
)
(is-zwcad
;; 中望CAD下的处理代码
)
(is-autocad
;; AutoCAD下的处理代码
)
(t ;; 其它CAD
))
;; 语言处理
(cond
((= "zh_CN" @:lang)
;; 简体中文
)
((= "zh_TW" @:lang)
;; 繁体中文
)
((= "vi" @:lang)
;; 越南文
) ((= "en" @:lang)
;; 英文
)
(t ;; 其它
))
(getvar "GCADVER")(getvar "ACADVER") (getvar "ZRXVERNUM") liuyun242 发表于 2023-3-13 16:58
(getvar "GCADVER")(getvar "ACADVER") (getvar "ZRXVERNUM")
这是获取CAD版本吗? 是的,你可以试试 liuyun242 发表于 2023-3-13 17:31
是的,你可以试试
试了前后两个返回nil,中间那个返回的版本号好像不同软件是一样的 2楼正解~~~~~~~~~~~~~~~~ ludaweb 发表于 2023-3-13 19:16
(getvar "program")
"acad"
"gcad"
:kiss:这个可以,感谢 vitalgg 发表于 2023-3-13 19:37
大佬这是什么函数?没见过呀
页:
[1]
2