j_spawn_h 发表于 2022-7-6 08:41:33

对话框帮助

好的,我想我在这件事上有些不知所措。我创建了一个对话框。有两列可供选择。我需要每一个选择做一个选项,但我不知道如何让他们走到一起。以下是我认为可行但没有成功的方法。


(defun C:bd(/ bd)                                             
(or c:bm$ (setq c:bm$ "3.5"))                              
(setq dcl_id (load_dialog "beam.dcl"))                     
(if (not (new_dialog "beam" dcl_id))                        
(exit))                                                   
(set_tile c:bm$ "1")                                       
(action_tile "3.5" "(setq c:bm$ \"3.5\")")            
(action_tile "5.25""(setq c:bm$ \"5.25\")")         
(action_tile "7" "(setq c:bm$ \"7\")")                     
(action_tile "7.25" "(setq c:bm$ \"7.25\")")                  
(action_tile "9.25" "(setq c:bm$ \"9.25\")")               
(action_tile "accept""(done_dialog)(setq userclick T)")   
(action_tile "cancel""(done_dialog)(setq userclick nil)")
(start_dialog)(unload_dialog dcl_id)                        
(setq cmd c:bm$)                                          
(if userclick                                             
   (cond                                                   
   (= cmd "3.5" ) (setqq aa (= aa 2))
   (= cmd "5.25" )
   (= cmd "7" )   
      
   (= cmd "7.25" ) (setq bb (= bb 7))
   (= cmd "9.25" )))

(if
   (cond (= (+ aa bb) 9)
(command "-linetype" "s" "2x10" "")(command"-layer" "s" "s-frm-beam" "")(command "line" pause pause "")))
      
                                                                                    
          (princ))

ketxu 发表于 2022-7-6 08:59:52

您必须在DCL中使用带有键互动程序的action\u互动程序,类似(action\u互动程序“keyA”“(set\u tile“keyB\”“sth\”)。如果你在这里发布DCL,我们可以更容易地修复它

Lee Mac 发表于 2022-7-6 09:02:40

你说的是什么意思
 
 
这就是你想要实现的吗?

j_spawn_h 发表于 2022-7-6 09:20:46

柯旭,
 

beam : dialog {
   label = "Pick size of Beam";
   : column {
       : boxed_radio_column {
         label = "Width";
         : radio_button {
         label = "3.5";
         key = "3.5";
         }
         : radio_button {
         label = "5.25";
         key = "5.25";
         }
         : radio_button {
         label = "7";
         key = "7";
         }
         }
         }
      : column {
       : boxed_radio_column {
         label = "Depth";
         : radio_button {
         label = "7.25";
         key = "7.25";
         }
         : radio_button {
         label = "9.25";
         key = "9.25";
         }
         : radio_button {
         label = "11.25";
         key = "11.25";
         }
         
         : radio_button {
         label = "11.875";
         key = "11.875";
         }
         
         : radio_button {
         label = "14";
         key = "14";
         }
         
         : radio_button {
         label = "16";
         key = "16";
         }
         
         : radio_button {
         label = "18";
         key = "18";
         }
         }
   }
   : row {
       : button {
         label = "&OK";
         key = "accept";
         fixed_width = true;
         is_default = true;
       }
       : button {
         label = "&Cancel";
         key = "cancel";
         fixed_width = true;
         is_cancel = true;
       }
   }
}

 
在我贴出一个wxample后,我想了想,但我无法回到电脑前。
在一列中,我选择3.5、5.25或7。。。。然后在另一列中,我可以选择14,16,18。
所以取决于我打了哪两个,他们会做一些不同的事情。比如画一条线,把它放在一个叫做3.5x14或7x16的lietype上。从那以后。在这个例子中,我有9个选项可以完成。

j_spawn_h 发表于 2022-7-6 09:26:52

我想你在找这个文件
2)
(普林斯)

j_spawn_h 发表于 2022-7-6 09:37:44

柯旭,
我不知道在哪里添加你写的内容。我以为它应该进入lsp。

ketxu 发表于 2022-7-6 09:47:40

抱歉迟到了^^我一直在现场工作^^
由于我的英语很差,我仍然不清楚你的想法,但我认为是这样的:
-您不应该用“c”分配变量:
-当你退出对话框时,你基于宽度和深度选择做某事的功能应该适用
因此,您可以:
 
beam : dialog {
   label = "Pick size of Beam";
   : column {
       : boxed_radio_column {key = "kWidth";
         label = "Width";
         : radio_button {
         label = "3.5";
         key = "3.5";
         }
         : radio_button {
         label = "5.25";
         key = "5.25";
         }
         : radio_button {
         label = "7";
         key = "7";
         }
         }
         }
      : column {
       : boxed_radio_column {key = "kDepth";
         label = "Depth";
         : radio_button {
         label = "7.25";
         key = "7.25";
         }
         : radio_button {
         label = "9.25";
         key = "9.25";
         }
         : radio_button {
         label = "11.25";
         key = "11.25";
         }
         
         : radio_button {
         label = "11.875";
         key = "11.875";
         }
         
         : radio_button {
         label = "14";
         key = "14";
         }
         
         : radio_button {
         label = "16";
         key = "16";
         }
         
         : radio_button {
         label = "18";
         key = "18";
         }
         }
   }
   : row {
       : button {
         label = "&OK";
         key = "accept";
         fixed_width = true;
         is_default = true;
       }
       : button {
         label = "&Cancel";
         key = "cancel";
         fixed_width = true;
         is_cancel = true;
       }
   }
}
4
页: [1]
查看完整版本: 对话框帮助