CUIX:交换LISP例程
我的LISP例程在我工作的Google Share Drive上。我的自定义功能区中有一些按钮,它们使用映射的驱动器号URL链接调用我的例程。
自定义宏中的URL链接示例:
目标:
尝试与办公室中的其他CAD用户共享此信息。
问题:
不同的CAD用户有不同的映射驱动器号(例如:H:\或S:\而不是G:\)。
每次我更新CUIX文件时,都会尝试避免绕开并手动更改驱动器号以匹配其映射(因为路径会被覆盖)。
想使用通用谷歌共享驱动器基于网络的链接(通过选择文件,选择“获取链接”在谷歌驱动器和复制链接)。
掉期:
我的宏示例中的当前URL映射(如果上面的图像未显示):
^C^C(加载“G:\shardrive\CAD\u Department\CAD\u menu\LISP\My\u routine.lsp”);My_例程;
与Google Share Drive链接交换的示例(不工作):
^C^C(负载)https://drive.google.com/file/d/0BlU92IihdhhcnRlcl9mWxl/view?usp=sharing&resourcekey=0-0VxGZXU D8YjtjgjzQZnQ);My_例程;
我试过的另一种方法
^C^C(命令-s“\u浏览器”https://drive.google.com/file/d/0BlU92IihdhhcnRlcl9mWxl/view?usp=sharing&resourcekey=0-0VxGZXU D8YjtjgjzQZnQ/“”)
有人知道宏的正确语法吗?
提前感谢!
您可以使用getfile My\u例程检查,不同CAD用户有不同的映射驱动器号(例如:H:\或S:\而不是G:\)。lsp do在一个条件下
(条件
((G:是负载
((H:是负载
((S:是负载
)
确保各种驱动器的负载首先手动工作。 谢谢比格尔。
我认为坚持使用带有驱动器号的映射URL路径比尝试基于web的共享驱动器链接更好,因此我感谢您的建议!
对于在宏行中放置的内容,这是否接近您的建议(使用“getfield”和“conditional”语句)?
^C^C (getfiled
(cond
((= G: yes (load "G:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
((= H: yes (load "H:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
((= S: yes (load "S:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
);end Cond
);end getfiled
我把这个IF语句放在一起,只是想看看它是否也在一般范围内:
^C^C (getfiled
(if
(Progn
((/= G: nil (load "G:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
((/= H: nil (load "H:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
((/= S: nil (load "S:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;)
);end progn
);end if
);end getfiled
希望我没有对所有的语法都发火。
再次感谢您的建议…! 再想想,如果每个用户都设置了支持路径,我就不使用云驱动器。
; must have support path set, Options Files Support files search path
(setq fileexist (findfile "My_routine.lsp"))
(if (= fileexist nil)
(alert "my_routine.lsp not found on G: H: or S: \nCheck your support path settings")
(load "My_routine.lsp")
)
搜索路径集,即“G:\shardrive\CAD\u Department\CAD\u menu\LISP\可以是H:S:etc,然后findfile将返回T或nil
谢谢BigAl!我会试试。。。
页:
[1]