alanjt 发表于 2022-7-6 12:48:21

可能是这样(完全未经测试):
 
(defun UserStartup (/ ProfileLoad #Choice)

(vl-load-com)

(defun ProfileLoad (#ProfileName / #Profiles)
   (setq
   #Profiles
      (vla-get-profiles (vla-get-preferences (vlax-get-acad-object)))
   ) ;_ setq
   (or (eq #ProfileName (vla-get-activeprofile #Profiles))
       (not (vl-catch-all-error-p
            (vl-catch-all-apply
                'vla-put-activeprofile
                (list #Profiles #ProfileName)
            ) ;_ vl-catch-all-apply
            ) ;_ vl-catch-all-error-p
       ) ;_ not
   ) ;_ or
) ;_ defun

(initget 0 "Randolph Boss Dismiss")
(and (setq #Choice
             (getkword
               "\nUser customization options to load <Dismiss>: "
             ) ;_ getkword
      ) ;_ setq
      (cond
      ((eq #Choice "Randolph")
         ;; do stuff
         (ProfileLoad "Randolph")
         (and (findfile "Randolph.lsp") (load "Randolph.lsp"))
      )
      ((eq #Choice "Boss")
         ;; do stuff
         (ProfileLoad "Boss")
      )
      ) ;_ cond
) ;_ and
(princ)
) ;_ defun
这将在启动时提示您选择一个用户(您或您的老板),或者干脆退出并继续加载。根据用户选择,它将执行特定任务。我还编写了一个加载活动配置文件的小子程序。
 
我不会给你打电话。lsp文件acad。lsp,因为你不想让它为你的老板自动加载,或者只是把它放在一个不支持的目录中,只需要在例程的加载部分指定完整的位置。

Randolph 发表于 2022-7-6 12:51:35

你的工作速度给我留下了深刻的印象,我不想表现得忘恩负义,但恐怕我们现在工作得很不顺心。你对我之前发的帖子有什么评论?
 
如果我没有弄错你的文档,你的例行程序将迫使我在启动时做一些额外的事情。此外,我如何在不重新启动的情况下即时切换?这就是重点。
 
我想,这可能是一个普遍的需要:轻松地切换用户配置文件与lisp功能的飞行。
 
我会叫我的lsp助理拉尔夫。lsp什么的。

alanjt 发表于 2022-7-6 12:53:08

 
 
是的,这将在启动时提示您(可以绕过)。进行实时交换的最简单方法是保存(如果需要),然后键入Revert。

alanjt 发表于 2022-7-6 12:57:53

我写的基本上就是你在上一篇文章中所要求的。你可以随时给它打电话。只需更改此行:
 
(defun UserStartup (/ ProfileLoad #Choice)至:
(defun c:CSW (/ ProfileLoad #Choice)
 
问题是,当你加载你的例程时,如果你的老板过来想工作,他不能在不重启Autocad的情况下“卸载”它们。

chelsea1307 发表于 2022-7-6 13:01:56

你有没有想过只改变你的lisp名字,我相信你已经习惯了,但这一切似乎更容易,然后你的lisp可以加载,而不是影响他,反之亦然,改变他的,你不会有问题

alanjt 发表于 2022-7-6 13:03:51

如果他要这么做,为什么不直接使用现成的命令别名呢?我宁愿在前端做一些腿部工作,以保持宏,使我的生活更轻松。我永远不会放弃R(旋转)和D(距离),回到RO和DI。

alanjt 发表于 2022-7-6 13:08:24

最让我困惑的是为什么人们不使用数字键行。
~ = qleader
1 = layer current
2 = layer set
3 = layer off
4 = layer freeze
5 = mleader
6 = civilpointmodlist (old LDD command, need to update since I use C3D now)
7 = list
8 = layerp
9 = extrim
0 = math (commandline calculator)
- = layer nuke
= = never defined, but could be used

Randolph 发表于 2022-7-6 13:09:00

嗨,切尔西,
 
我有一套命令系统。
 
d复制
dx。。。x方向重复
dxm。。。在x方向重复多次
df。。。重复固定-无偏移
dfm。。。我想您现在已经知道了(如果您需要从多个其他卷中减去一个卷而不焊接它们,那么这个命令很有用)。
 
s切片(l之后最常用的命令)
sx。。。平行于yz平面的切片
 
等等
 
一abstand(=距离)
 
所以,我所有的捷径都可以用左手轻松完成。我还使用logitech dinovo桌面,因为我将其分离的数字块放在左侧。因此,我永远不需要放开我的鼠标。简而言之,我对五月制很满意。永远不要改变正在运行的系统。。。
 
艾伦,
 
“他不能‘卸载’它们”——我希望通过加载一个矛盾的Lisp程序就能做到这一点。我必须用appload试试这个。最后,新的CSW命令只需批处理2个命令:
 
DEFUN C CSW:
选择配置文件:B
例行程序:
a) 选项>轮廓>加载轮廓“凸台”
b) 加载l>加载acad凸台。Lisp程序

alanjt 发表于 2022-7-6 13:14:52

 
我发布的例程将涵盖所有这些。

Randolph 发表于 2022-7-6 13:17:10

我会尽快试试的。希望明天我能找到时间。同时非常感谢。
页: 1 [2]
查看完整版本: CUI卸载LISP