ketxu 发表于 2022-7-6 08:31:36

[帮助]acti发生了什么

大家好。请帮我找出在这种情况下发生了什么:
 
1-我有一个简单的defun setvar
 
 
 
 
=>在命令中测试,或从其他defun调用中测试都正常
 
 
 
2-当按下按钮时,我将其付诸行动:
 

(defun c:Test (/ fl ret dcl_id)
(vl-load-com)
(setq fl (vl-filename-mktemp "mip" nil ".dcl"))
(setqret (open fl "w"))
(mapcar
   '(lambda (x) (write-line x ret))
(list
"test_DCL : dialog {label=\"Test\"; width = 40;fixed_width = true;"
":button {label = \"Exit\"; is_cancel = true;fixed_width = true;width = 1;}"
":button {label = \"Setvar Test\";fixed_width = true;width = 1;key = \"kTest\";}"
   "}"
)
)
(setq ret (close ret))
(if (and (not (minusp (setq dcl_id (load_dialog fl))))
          (new_dialog "test_DCL" dcl_id)
   )
   (progn


(action_tile "kTest" "(setvars)") ;This is




   (setq dlg_Exit (start_dialog))
   ) ;_ end of progn
) ;_ end of if
(unload_dialog dcl_id)
(vl-file-delete fl)
ret
)

 
 
=>运行:;错误:AutoCAD变量设置被拒绝:“Pickfirst”1
 
3-在Defun setvar中稍作更改:
 
 
 
=>从命令中再次测试defun,其他defun,测试defun现在正常吗????
 
 
 
4-连续将setvar直接放入测试定义代码:
 
 
 
更改:(action_tile“kTest”“(setvars)”)
作者:(action\u tile“kTest”“(setvar“Pickfirst”1))
 
 
=>运行:失败,原因相同
 
 
 
5-使用其他系统变量更改Pickfirst:
 
更改:(action\u tile“kTest”“(setvar“Pickfirst”1)”
作者:(action\u tile“kTest”“(setvar“Snapang”1)”)
 
 
=>运行:OK
 
 
==>???? 那么发生了什么?还是我在类型选择上错了?

ketxu 发表于 2022-7-6 08:58:28

请不要介意,我已经回答并解决了这个案子^^
感谢大家的阅读

pBe 发表于 2022-7-6 09:15:02

 
我不介意。。我现在很好奇。。。那么会发生什么?

ketxu 发表于 2022-7-6 09:28:28

我想我违反了这件事:
或类似的东西。所以我必须把这个函数放在Donedialog事件中执行,意思是在对话框消失后,它现在可以工作了

pBe 发表于 2022-7-6 09:36:55

 
正确的
 
谢谢你的信息
页: [1]
查看完整版本: [帮助]acti发生了什么