乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 108|回复: 18

[编程交流] 简单下拉菜单。。。帮助

[复制链接]

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:04:52 | 显示全部楼层 |阅读模式
我试图创建一个对话框,如果你在下拉列表中选择一个选项,其他列表中的其他选项将被禁用。
我到处寻找这个的简化版本,但都没有用。
有什么建议吗?
为了更清晰,我会直接发布我的基本文件。
-瘦身
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:09:09 | 显示全部楼层
嗨,斯利姆,
 
我建议在问题列表的action_tile stations中包含更改其他列表的功能
 
如有必要,我将提供一个例子
 
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:12:27 | 显示全部楼层
嘿,李。
是的,请说。
这是我到目前为止得到的。。。(见附件。)
 
  1.   ;///////////// 05-01-2010 \\\\\\\\\\\\\\\\\
  2. ;//////////// Drawing Generator\\\\\\\\\\\\\\\\\
  3. ;;AUTOLISP CODING STARTS HERE   *** ASSOCIATED DCL FILE <DG.DCL****
  4. (defun c:dg (/                Dcl_Id%          NAMES$           NAMESQ$
  5.             )
  6. (setq DGVersion "DG v1.0") ; this is the DCL title string
  7. (vl-cmdf "-layer" "ON" "*" "") ; turn on all layers to begin
  8.             
  9. ;;  This is the Master List for DCL variables
  10. ;;    VarName      TileName   DefValue   TileType    listAssoc  
  11. (setq MasterList
  12.     '( (Q1          "Q1"          0        0       NAMESQ)
  13.        (Q2          "Q2"          0        0       NAMESQ)
  14.        (Q3          "Q3"          0        0       NAMESQ)
  15. ))
  16. ;;  TileType 0 = PopUp_List
  17. ;;           1 = Toggle
  18.             
  19.             
  20. ;;
  21. ;;          *********************    Start of get_data function    ***********************
  22. ;;  
  23. ;; Compressor Count, Subcooling & Liquid Injection Options
  24. ;;
  25. (defun get_data ()
  26.    (foreach itm MasterList
  27.      (set (car itm) (get_tile (eval (cadr itm))))
  28.    )
  29. )                           ; defun get_data
  30. (defun Q(cnt)
  31.    (setq cnt (atoi cnt))
  32.      (mode_tile "Q1"        (if (> cnt 0) 0 1))
  33.      (mode_tile "Q2"        (if (> cnt 0) 0 1))
  34.      (mode_tile "Q3"        (if (> cnt 0) 0 1))
  35.   
  36. )
  37. ;;          /////////////////////     End  of get_data function      \\\\\\\\\\\\\\\\\\\\\\\\\
  38. ;;          *********************    Start of Pull Down List Define  Section    ***********************
  39. (setq NAMESQ
  40.         '("None"                  "One"        "Two"
  41.           "Three"     "Four"      "Five"))
  42.                              
  43. ;;
  44. ;;          /////////////////////     End  of Pull Down List Define  Section      \\\\\\\\\\\\\\\\\\\\\\\\\
  45. ;;
  46. ;;  Locate DCL file & prepare to start it
  47. (setq dcl_id (load_dialog "DG.dcl")) ;load dialog
  48. (if (not (new_dialog "DG" dcl_id)) ;test for dialog
  49.    (exit)                    ;exit if no dialog
  50. )                           ;End if
  51. ;;
  52. ;;          *********************    Start of List Box Build Section    ***********************
  53. ;;
  54. (defun AddList (tile lst)
  55.    (start_list tile)
  56.    (mapcar 'add_list lst)
  57.    (end_list)
  58. )
  59. (foreach itm MasterList
  60.    (if (zerop (cadddr itm))
  61.      (AddList (eval (cadr itm)) (eval (last itm))) ; debug CAB
  62.    )
  63. )
  64. ;;===============================================================
  65. (cond
  66.    (*DGGlobal*  ;  recover last used settings
  67.      (foreach itm MasterList
  68.        (if (setq value (cdr (assoc (car itm) *DGGlobal*)))
  69.           (set (car itm) value)
  70.        )
  71.      )
  72.    )
  73.    (t  ;  set to default values
  74.    (foreach itm MasterList
  75.      (set (car itm) (itoa(caddr itm)))
  76.    )
  77.   )
  78. )
  79.    
  80. (Q Q1)
  81. ;;;  (CompQtyS compqty2)
  82. ;;          /////////////////////     End  of List Box Build  Section      \\\\\\\\\\\\\\\\\\\\\\\\\
  83. ;;  Set all tiles
  84. (foreach itm MasterList
  85.    (set_tile (cadr itm) (eval (car itm)))
  86. )
  87. (set_tile "title" DGVersion) ; add title to DCL
  88. ;;          /////////////////////     Begin Button Actions Definitions      \\\\\\\\\\\\\\\\\\\\\\\\\
  89. (action_tile "Q1" "(Q $value)")
  90. ;;;  (action_tile "Q2" "(CompQtyS $value)")
  91. (action_tile "help" "(help "acet-help")")
  92. (action_tile "accept" "(get_data) (done_dialog) (setq userclick T)") ;action tile
  93. (action_tile "cancel" "(done_dialog) (setq userclick nil)")          ;close dialog
  94. (start_dialog)
  95. (unload_dialog dcl_id)
  96. ;;          /////////////////////     End of Button Actions Definitions      \\\\\\\\\\\\\\\\\\\\\\\\\
  97. ;; **************************************************************************************
  98. ;; This Starts the Program to start processing the Data Selected from the Dialog Screen
  99. (if userclick
  100.    (progn
  101.      (setq Qcnt1 (atoi Q1))
  102. ;;;            compcnt2 (atoi Q2))
  103.      
  104.      ;;  set Global var  & set local vars to strings from list
  105.      (setq *DGGlobal* nil)
  106.      (foreach itm MasterList
  107.        (setq *DGGlobal* (cons (cons (car itm) (eval(car itm)))  *DGGlobal*))
  108.        (set (car itm) (nth (atoi (eval(car itm))) (eval (last itm))))
  109.      )
  110. ;;          /////////////////////     End Read & Set of List Varibles  Section      \\\\\\\\\\\\\\\\\\\\\\\\\   
  111. ;;          /////////////////////     Start command print of Varible  Section      \\\\\\\\\\\\\\\\\\\\\\\\\   
  112. ;;see other file named "princ.lsp"
  113. ;;          /////////////////////     End of command print of Varible  Section      \\\\\\\\\\\\\\\\\\\\\\\\\   
  114. ;; This Ends the  Program to start processing the Data Selected from the Dialog Screen
  115. ;; ///////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  116. ;;
  117. (setvar "CMDECHO" 0)        ; Set Autocad setvar " CMDECHO" to 0 to stop process of info scrolling in Autocad, Makes it run faster
  118. (command "_.undo" "_begin")
  119. ;;  Set layers & catch any errors
  120. (defun SetLayer (status layname / err )
  121.    (setq err (vl-catch-all-apply 'vl-cmdf (list "-layer"  status layname "")))
  122.    (if (vl-catch-all-error-p err) ; yes, error
  123.      (princ (strcat "\n" (vl-catch-all-error-message err) "\n" layname))
  124.    )
  125. )
  126. ;; ///////////////// Begin Layer Controls /////////////////
  127.    
  128. (cond
  129.    ((= Q1 "None")
  130.     (SetLayer "off" "test*") ; All off
  131. ;;;     (SetLayer "OFF" "test-[12345]") ;[...] Matches any one of the characters enclosed     
  132.    
  133.    )
  134.    ((= Q1 "One")
  135.     (SetLayer "ON" "test")
  136.    )   
  137.    ((= Q1 "Two")
  138.     (SetLayer "on" "test2")
  139.    )   
  140.    ((= Q1 "Three")
  141.     (SetLayer "on" "test3")
  142.    )   
  143.    ((= Q1 "Four")     
  144.     (SetLayer "on" "test4")
  145.    )   
  146.    ((= Q1 "Five")
  147.     (SetLayer "ON" "test5")
  148.    )
  149. )   
  150.      (command "_.undo" "_end")
  151.    )
  152. )                           ; endif userclick
  153. ;;
  154. ;;This is where you need to Re-Set the " setvar " or Autocad will continue to run under those settings.
  155. ;;
  156. ;; Here the ' setvar "CMDECHO" ' is set back to a Value of  " 1 " so the AutoCad command prompt will display commands.
  157. ;; This must be done before the program ends and clears itself.
  158. ;;
  159. (setq Layers nil
  160.        MasterList nil)
  161. (setvar "CMDECHO" 1)
  162. (princ "\nType "DG" to start ")
  163. )
  164. (princ)
  165. ;;
  166. ;;AUTOLISP CODING ENDS HERE
  167. ;;          >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                   AUTOLISP CODING ENDS HERE                         <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:17:21 | 显示全部楼层
好啊今天早上它成功了。
我发誓我做了你建议的。。。
谢谢您的关注。
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:19:57 | 显示全部楼层
我知道这种感觉,我一直在经历。
有时候你需要休息一下。
 
无论如何,很高兴听到。
祝你好运
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:24:51 | 显示全部楼层
无法理解从列表框添加选项。。。
还不太懂。
你能帮我一下吗?
我想你可以看到我在努力做什么。
 
-瘦身
示例-system2。lsp
实例dcl
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:26:13 | 显示全部楼层
 
我有一辆1988年的保时捷928 S4:-)。。。。
 
我从来没有想过这样做,我有几个想法,这将是有益的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:30:51 | 显示全部楼层
呵呵——当时我想不出比这更好的例子了。。。
 
请记住,我链接到了更新的代码
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:33:19 | 显示全部楼层
 
仍然在寻求帮助伙计们。。。
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:38:06 | 显示全部楼层
我愿意补偿某人帮助完成这件事。。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 16:36 , Processed in 0.864182 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表