明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1968|回复: 4

谁帮忙给改下程序(网上找的)在选自定义时出错,怎么改?

[复制链接]
发表于 2012-5-27 16:53 | 显示全部楼层 |阅读模式
  1. (defun c:load_paper(/ dcl_id j)
  2.   (setq x 0 y 0 n1 0 n 0 R 0 r 0 d 0 a 0 a1 0 rj 0)
  3.   (setq dcl_id(load_dialog"G:/大论文/load_paper.dcl"))
  4.   (if(not(new_dialog"load_paper"dcl_id))(exit))
  5.   (action_tile"A0""(data_manage0)")
  6.   (action_tile"A1""(data_manage1)")
  7.   (action_tile"A2""(data_manage2)")
  8.   (action_tile"A3""(data_manage3)")
  9.   (action_tile"A4""(data_manage4)")
  10.   (action_tile"A5""(data_manage5)")
  11.   (action_tile"D""(data_manage6)")
  12.   (start_dialog)
  13.   (unload_dialog dcl_id)
  14.   (princ)
  15.   (command"layer" "m" 0 "on" "" "")
  16.   (command"rectang" pt1 pt2)
  17.   (command"rectang" pt2 pt3)
  18.   (command"layer" "m" 1 "c" 1 "" "")
  19.   (command"rectang" pt4 pt5)
  20.   (command"layer" "m" 0 "on" "" "")
  21. )
  22. (defun data_manage0()
  23.   (setq pt1(list 0 0)
  24. pt2(list -1180 840)
  25. pt3(list -1140 832)
  26. pt4(list 5 -5)
  27. pt5(list -1195 845)
  28.   )
  29. )
  30. (defun data_manage1()
  31.   (setq pt1(list 0 0)
  32. pt2(list -840 594)
  33. pt3(list -800 586)
  34. pt4(list 5 -5)
  35. pt5(list -855 609)
  36.   )
  37. )
  38. (defun data_manage2()
  39.   (setq pt1(list 0 0)
  40. pt2(list -594 420)
  41. pt3(list -554 412)
  42. pt4(list 5 -5)
  43. pt5(list -609 435)
  44.   )
  45. )
  46. (defun data_manage3()
  47.   (setq pt1(list 0 0)
  48. pt2(list -420 297)
  49. pt3(list -380 292)
  50. pt4(list 5 -5)
  51. pt5(list -445 302)
  52.   )
  53. )
  54. (defun data_manage4()
  55.   (setq pt1(list 0 0)
  56. pt2(list -210 297)
  57. pt3(list -170 289)
  58. pt4(list 5 -5)
  59. pt5(list -235 302)
  60.   )
  61. )
  62. (defun data_manage5()
  63.   (setq pt1(list 0 0)
  64. pt2(list -148 210)
  65. pt3(list -108 202)
  66. pt4(list 5 -5)
  67. pt5(list -173 215)
  68.   )
  69. )
  70. (defun data_manage6()
  71. (if (new_dialog "c_zdy" dcl_id) (PROGN
  72.   (action_tile"accept" "(getdata) (done_dialog 1)");
  73.   (action_tile"cancel" "(done_dialog 0)")
  74.   (setq what_next (start_dialog))
  75. ))

  76. )
  77. (defun getdata()
  78.   (action_tile "L" (setq L atof(get_tile"L")))
  79.   (action_tile "W" (setq W atof(get_tile"W")))

  80.   (setq pt1(list 0 0))
  81.   (setq pt2(list(- L  W)))
  82.   (setq pt3(list(- (- L 40) (- W 8))))
  83.   (setq pt4(list 5 - 5))
  84.   (setq pt5(list - (+ L 55) (+ W 5)))e
  85. )



  86. load_paper:dialog{
  87. label="图纸选择对话框";
  88. :text{
  89. label="选择需要的图纸图幅,然后单击确定即可";
  90. }
  91. :boxed_row{
  92. :radio_button{
  93. label="A0";
  94. key="A0";
  95. value=1;
  96. fixed_width=true;
  97. width=5;
  98. alignment=centered;
  99. }
  100. :radio_button{
  101. label="A1";
  102. key="A1";
  103. value=0;
  104. fixed_width=true;
  105. width=5;
  106. alignment=centered;
  107. }
  108. :radio_button{
  109. label="A2";
  110. key="A2";
  111. value=0;
  112. fixed_width=true;
  113. width=5;
  114. alignment=centered;
  115. }
  116. :radio_button{
  117. label="A3";
  118. key="A3";
  119. value=0;
  120. fixed_width=true;
  121. width=5;
  122. alignment=centered;
  123. }
  124. :radio_button{
  125. label="A4";
  126. key="A4";
  127. value=0;
  128. fixed_width=true;
  129. width=5;
  130. alignment=centered;
  131. }
  132. :radio_button{
  133. label="A5";
  134. key="A5";
  135. value=0;
  136. fixed_width=true;
  137. width=5;
  138. alignment=centered;
  139. }
  140. :radio_button{
  141. label="自定义";
  142. key="D";
  143. value=0;
  144. fixed_width=true;
  145. width=5;
  146. alignment=centered;
  147. }
  148. }
  149. ok_only;
  150. }

  151. c_zdy:dialog{
  152. label="自定义图纸对话框";
  153. :text{
  154. label="先输入数据,然后单击确定即可";
  155. }
  156. :boxed_row{
  157. label="参数";
  158. :edit_box{
  159. label="长(Length)";
  160. key="L";
  161. fixed_width=true;
  162. width=5;
  163. alignment=centered;
  164. }
  165. :edit_box{
  166. label="宽(Width)";
  167. key="W";
  168. fixed_width=true;
  169. width=5;
  170. alignment=centered;
  171. }
  172. }
  173. ok_cancel;
  174. }

在生成load_paper.vlx 文件后,不能画图
发表于 2012-5-27 18:29 | 显示全部楼层
(setq dcl_id(load_dialog"G:/大论文/load_paper.dcl"))


这一句,改成    (setq dcl_id(load_dialog"load_paper.dcl"))你再试试
 楼主| 发表于 2012-5-27 18:40 | 显示全部楼层
叮咚 发表于 2012-5-27 18:29
(setq dcl_id(load_dialog"G:/大论文/load_paper.dcl"))

还不行,自定义那还没效果
发表于 2012-5-27 19:19 | 显示全部楼层
(defun c:load_paper(/ dcl_id j pt1 pt2 pt3 pt4 pt5)
(setq old_os (getvar "osmode"))
(setvar "cmdecho" 0)
  (setq x 0 y 0 n1 0 n 0 R 0 r 0 d 0 a 0 a1 0 rj 0)
  (setq dcl_id( load_dialog "d:/load_paper.dcl"))
  (if(not (new_dialog "load_paper"  dcl_id))(exit))
  (action_tile"A0" "(data_manage0)")
  (action_tile"A1" "(data_manage1)")
  (action_tile"A2" "(data_manage2)")
  (action_tile"A3" "(data_manage3)")
  (action_tile"A4" "(data_manage4)")
  (action_tile"A5" "(data_manage5)")
  (action_tile"D" "(data_manage6)")
  (start_dialog)
  (unload_dialog dcl_id)
(setvar "osmode" 0)
  (command"layer" "m" 0 "on" "" "")
  (command"rectang" pt1 pt2)
  (command"rectang" pt2 pt3)
  (command"layer" "m" 1 "c" 1 "" "")
  (command"rectang" pt4 pt5)
  (command"layer" "m" 0 "on" "" "")
        (setvar "cmdecho" 1)
        (setvar "osmode" old_os)
        (princ)
)
(defun data_manage0()
  (setq pt1(list 0 0)
pt2(list -1180 840)
pt3(list -1140 832)
pt4(list 5 -5)
pt5(list -1195 845)
  )
)
(defun data_manage1()
  (setq pt1(list 0 0)
pt2(list -840 594)
pt3(list -800 586)
pt4(list 5 -5)
pt5(list -855 609)
  )
)
(defun data_manage2()
  (setq pt1(list 0 0)
pt2(list -594 420)
pt3(list -554 412)
pt4(list 5 -5)
pt5(list -609 435)
  )
)
(defun data_manage3()
  (setq pt1(list 0 0)
pt2(list -420 297)
pt3(list -380 292)
pt4(list 5 -5)
pt5(list -445 302)
  )
)
(defun data_manage4()
  (setq pt1(list 0 0)
pt2(list -210 297)
pt3(list -170 289)
pt4(list 5 -5)
pt5(list -235 302)
  )
)
(defun data_manage5()
  (setq pt1(list 0 0)
pt2(list -148 210)
pt3(list -108 202)
pt4(list 5 -5)
pt5(list -173 215)
  )
)
(defun data_manage6()
(if (new_dialog "c_zdy" dcl_id)
(progn
  (action_tile"accept" "(getdata) (done_dialog 1)");
  (action_tile"cancel" "(done_dialog 0)")
  (setq what_next (start_dialog))
)
)
)
(defun getdata(/ l w)
  (setq L (atof(get_tile "L")))
  (setq W (atof(get_tile "W")))

  (setq pt1(list 0 0))
  (setq pt2 (list (- 0 L)  W))
  (setq pt3 (list (- 40 L) (- W 8)))
  (setq pt4(list 5 -5))
  (setq pt5(list (- 0 (+ L 55)) (+ W 5)))
)


发表于 2012-6-5 15:16 | 显示全部楼层
谢谢你们。能改下,类似CASS中绘制标准图幅和任意图幅的好吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 07:53 , Processed in 0.225831 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表