AJRight 发表于 2022-7-6 06:37:12

限制对跑步的访问

嘿,伙计们,正如标题所示,我需要限制对我们正在测试的特定Lisp的访问,以便在整个办公室中使用。然而,在这个“测试”阶段,只有某些用户被允许运行这个例程。目前,在下面发布的代码中(我是“ajr”),它在用户检查中不断传递错误值。我认为我在正确的轨道上,但我不明白为什么我仍然得到一个错误的值。有什么想法吗?我们将一如既往地感谢您的帮助,并提前表示感谢。
 
(defun c:lolwat (/ X blk )

(cond (= "ajr" (getvar "loginname"))

(initget 1 "Yes NO")
(setq ansr (getkword "\nIs this a UT Job? <Yes or NO>:"))
(cond (= ansr "NO")
(GON)
(GFRS)
(command "qsave" )
(GON)                                 ;FOR UT JOBS ONLY PER TLD REQUEST
(GDSTRY)                              ;FOR UT JOBS ONLY PER TLD REQUEST
);;cond
(GON)
(GFRS)
(command "qsave" )
;(GON)                                 
;(GDSTRY)                              



(foreach x
(mapcar 'cadr (ssnamex (ssget "_X" '((0 . "INSERT") (410 . "MODEL")))))
(setq blk (cdr (assoc 2 (entget x))))
(if (assoc 1 (tblsearch "block" blk)) (command "_.xref" "_bind" blk))
);;; end foreach
(princ)
(command "-layer" "s" "0" "")
(command "-purge" "all" "" "N" "")
(command "audit" "y")
(command "zoom" "e")
(PDF)
(command "saveas" "" (strcat "c:\\Record_Drawings\\" (getvar "dwgname")))

(prompt "\n Drawings Prepared. Check Output Folder.")
(princ)

);;; cond
(prompt "\n Are you sure you should be using this?")
(prompt "\n Access Denied.")
(princ)
);;defun

Tharwat 发表于 2022-7-6 06:43:51

loginname区分大小写,因此例如Ajr与Ajr不同。除此之外,您需要为cond函数再添加一个paren,当然不需要
忘记在正确位置关闭此栏
 

(cond ((= "ajr" (getvar "loginname"))

AJRight 发表于 2022-7-6 06:46:35

哼!哇,我真该看看。这么简单的事情。。。谢谢你,我的好先生。

alanjt 发表于 2022-7-6 06:48:26

那么,如果用户说是的话,会发生什么事情吗?

Tharwat 发表于 2022-7-6 06:53:18

不客气

AJRight 发表于 2022-7-6 06:55:22

 
 
说得好。还没有试过。我知道我错过了更多。天哪,这太草率了。这是对我已经做的常规的肮脏改编,显然比我最初想象的要脏得多。

Tharwat 发表于 2022-7-6 06:57:47

 
那个家伙(gosh函数)做什么?

AJRight 发表于 2022-7-6 07:01:12

它允许用户为客户端快速归档文件和PDF。它去除图形上的任何油脂,绑定所有外部参照、清除、审核,并执行另存为和PDF图形。
 
现在我有了这种工作,我注意到我无法得到不显示错误答案的真实场景。例如,如果您查看原始帖子中的代码,即使满足条件,它也始终显示拒绝消息。我知道这是因为defun的退出paren在它之后,但是,我不知道在哪里放置拒绝消息,如果条件为true,它将不会显示。

alanjt 发表于 2022-7-6 07:06:22

 
 
(defun c:test (/ ansr)
(if (= "ajr" (getvar "loginname"))
   (progn
   (initget 1 "Yes No")
   (setq ansr (getkword "\nIs this a UT Job? :"))

   (cond ((eq ansr "No")
            ;; DO STUFF
         )

         ((eq ansr "Yes")
            ;; DO STUFF
         )
   )
   )
   (princ "\n Are you sure you should be using this?\n Access Denied.")
)
(princ)
)

Tharwat 发表于 2022-7-6 07:08:03

也许这会更准确,因为它是区分大小写的。
 

(= (strcase "ajr") (strcase (getvar "loginname")))
页: [1] 2
查看完整版本: 限制对跑步的访问