乐筑天下

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

[编程交流] 需要木材lisp R的帮助

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:59:55 | 显示全部楼层 |阅读模式
我有几个lisp例程,我以前在我以前的工作中使用过。我试图在我的新工作站加载它们,但当我在命令行中键入时,它会告诉我
; 错误:没有函数定义:$START需要做什么才能使其工作。Thx提前。
 
  1. (defun C:LUMBER ()LUMBER
  2. ($start)
  3. (setq lay (getvar "clayer"))
  4. ($setvar "clayer" lay)
  5. (defun D90 () (* pi 0.5))
  6. (defun D270 () (* pi 1.5))
  7. (setq OLD_ERR *error*
  8. *error* STLP:ERR
  9. )
  10. ($setvar "cmdecho" 0)
  11. (if set2layr
  12.    (set2layr "S-DETL-WOOD" "S")
  13. )
  14. (if (not L_THK)
  15.    (setq L_THK 2.0)
  16. )
  17. (if (not L_DEP)
  18.    (setq L_DEP 4.0)
  19. )
  20. (if (not LL_THK)
  21.    (setq LL_THK 2.0)
  22. )
  23. (if (not LL_DEP)
  24.    (setq LL_DEP 2.0)
  25. )
  26. (if (not LR_THK)
  27.    (setq LR_THK 2.0)
  28. )
  29. (if (not LR_DEP)
  30.    (setq LR_DEP 2.0)
  31. )
  32. (if (not TOG_LVIEW)
  33.    (setq TOG_LVIEW 2)
  34. )
  35. (if (not TOG_MTYPE)
  36.    (setq TOG_MTYPE 2)
  37. )
  38. (if (not TOG_DTYPE)
  39.    (setq TOG_DTYPE 0)
  40. )
  41. (if (not TOG_LLEFT)
  42.    (setq TOG_LLEFT 0)
  43. )
  44. (if (not TOG_LRIGHT)
  45.    (setq TOG_LRIGHT 0)
  46. )
  47. (if (not LUM_GAP)
  48.    (setq LUM_GAP 0.0)
  49. )
  50. (setq dcl_id (load_dialog "lumber.dcl"))
  51. (if (not (new_dialog "lumber" dcl_id))
  52.    (exit)
  53. )
  54. (set_tile "edt_thk" (rtos L_THK 4 4))
  55. (set_tile "edt_dep" (rtos L_DEP 4 4))
  56. (set_tile "edt_gap" (rtos LUM_GAP 4 4))
  57. (if (= TOG_LLEFT 1)
  58.    (set_tile "tog_lleft" "2")
  59. )
  60. (if (= TOG_LRIGHT 1)
  61.    (set_tile "tog_lright" "2")
  62.    ($finish)
  63. )
  64. (defun SET:VIEW (VW)
  65.    (cond
  66.      ((= VW 1)
  67.       (mode_tile "rad_mb2" 1)
  68.       (mode_tile "rad_mb3" 1)
  69.       (mode_tile "rad_mb4" 1)
  70.       (mode_tile "rad_sgl" 1)
  71.       (setq TOG_MTYPE 1)
  72.       (set_tile "rad_mb1" "2")
  73.       (if (= TOG_DTYPE 0)
  74. (progn
  75.    (setq TOG_DTYPE 1)
  76.    (set_tile "rad_dbl" "2")
  77. )
  78.       )
  79.      )
  80.      ((= VW 2)
  81.       (mode_tile "rad_mb2" 0)
  82.       (mode_tile "rad_mb3" 0)
  83.       (mode_tile "rad_mb4" 0)
  84.       (mode_tile "rad_sgl" 1)
  85.       (if (= TOG_DTYPE 0)
  86. (progn
  87.    (setq TOG_DTYPE 1)
  88.    (set_tile "rad_dbl" "2")
  89. )
  90.       )
  91.      )
  92.      (T
  93.       (mode_tile "rad_mb2" 0)
  94.       (mode_tile "rad_mb3" 0)
  95.       (mode_tile "rad_mb4" 0)
  96.       (mode_tile "rad_sgl" 0)
  97.      )
  98.    )
  99. )
  100. (cond
  101.    ((= TOG_LVIEW 0) (set_tile "rad_thk" "2"))
  102.    ((= TOG_LVIEW 1) (set_tile "rad_dep" "2"))
  103.    ((= TOG_LVIEW 2) (set_tile "rad_sec" "2"))
  104. )
  105. (cond
  106.    ((= TOG_MTYPE 1) (set_tile "rad_mb1" "2"))
  107.    ((= TOG_MTYPE 2) (set_tile "rad_mb2" "2"))
  108.    ((= TOG_MTYPE 3) (set_tile "rad_mb3" "2"))
  109.    ((= TOG_MTYPE 4) (set_tile "rad_mb4" "2"))
  110. )
  111. (SET:VIEW TOG_LVIEW)
  112. (cond
  113.    ((= TOG_DTYPE 0) (set_tile "rad_sgl" "2"))
  114.    ((= TOG_DTYPE 1) (set_tile "rad_dbl" "2"))
  115.    ((= TOG_DTYPE 2) (set_tile "rad_tpl" "2"))
  116. )
  117. (defun CK:LLEFT ()
  118.    (if (= TOG_LLEFT 1)
  119.      (progn
  120. (mode_tile "edt_lthk" 0)
  121. (mode_tile "edt_ldep" 0)
  122.      )
  123.      (progn
  124. (mode_tile "edt_lthk" 1)
  125. (mode_tile "edt_ldep" 1)
  126.      )
  127.    )
  128.    (set_tile "edt_lthk" (rtos LL_THK 4 4))
  129.    (set_tile "edt_ldep" (rtos LL_DEP 4 4))
  130. )
  131. (defun CK:LRIGHT ()
  132.    (if (= TOG_LRIGHT 1)
  133.      (progn
  134. (mode_tile "edt_rthk" 0)
  135. (mode_tile "edt_rdep" 0)
  136.      )
  137.      (progn
  138. (mode_tile "edt_rthk" 1)
  139. (mode_tile "edt_rdep" 1)
  140.      )
  141.    )
  142.    (set_tile "edt_rthk" (rtos LR_THK 4 4))
  143.    (set_tile "edt_rdep" (rtos LR_DEP 4 4))
  144. )
  145. (CK:LLEFT)
  146. (CK:LRIGHT)
  147. (action_tile "edt_thk" "(setq L_THK (distof $value))")
  148. (action_tile "edt_dep" "(setq L_DEP (distof $value))")
  149. (action_tile
  150.    "tog_lleft"
  151.    "(setq TOG_LLEFT (atoi $value)) (CK:LLEFT)"
  152. )
  153. (action_tile "edt_lthk" "(setq LL_THK (distof $value))")
  154. (action_tile "edt_ldep" "(setq LL_DEP (distof $value))")
  155. (action_tile
  156.    "tog_lright"
  157.    "(setq TOG_LRIGHT (atoi $value)) (CK:LRIGHT)"
  158. )
  159. (action_tile "edt_rthk" "(setq LR_THK (distof $value))")
  160. (action_tile "edt_rdep" "(setq LR_DEP (distof $value))")
  161. (action_tile "rad_thk" "(setq TOG_LVIEW 0) (SET:VIEW 0)")
  162. (action_tile "rad_dep" "(setq TOG_LVIEW 1) (SET:VIEW 1)")
  163. (action_tile "rad_sec" "(setq TOG_LVIEW 2) (SET:VIEW 2)")
  164. (action_tile "rad_mb1" "(setq TOG_MTYPE 1)")
  165. (action_tile "rad_mb2" "(setq TOG_MTYPE 2)")
  166. (action_tile "rad_mb3" "(setq TOG_MTYPE 3)")
  167. (action_tile "rad_mb4" "(setq TOG_MTYPE 4)")
  168. (action_tile "edt_gap" "(setq LUM_GAP (distof $value))")
  169. (action_tile "rad_sgl" "(setq TOG_DTYPE 0)")
  170. (action_tile "rad_dbl" "(setq TOG_DTYPE 1)")
  171. (action_tile "rad_tpl" "(setq TOG_DTYPE 2)")
  172. (action_tile "accept" "(done_dialog 4)")
  173. (action_tile "cancel" "(done_dialog 0)")
  174. (setq DO_NEXT (start_dialog))
  175. (if (= DO_NEXT 4)
  176.    (progn
  177. ;;; Set finished size
  178.      (if (> 7.0 L_THK)
  179. (setq L_THK1 (- L_THK 0.5))
  180. (setq L_THK1 (- L_THK 0.75))
  181.      )
  182.      (if (> 7.0 L_DEP)
  183. (setq L_DEP1 (- L_DEP 0.5))
  184. (setq L_DEP1 (- L_DEP 0.75))
  185.      )
  186.      (if (> 7.0 LL_THK)
  187. (setq LL_THK1 (- LL_THK 0.5))
  188. (setq LL_THK1 (- LL_THK 0.75))
  189.      )
  190.      (if (> 7.0 LL_DEP)
  191. (setq LL_DEP1 (- LL_DEP 0.5))
  192. (setq LL_DEP1 (- LL_DEP 0.75))
  193.      )
  194.      (if (> 7.0 LR_THK)
  195. (setq LR_THK1 (- LR_THK 0.5))
  196. (setq LR_THK1 (- LR_THK 0.75))
  197.      )
  198.      (if (> 7.0 LR_DEP)
  199. (setq LR_DEP1 (- LR_DEP 0.5))
  200. (setq LR_DEP1 (- LR_DEP 0.75))
  201.      )
  202.      (cond
  203. ((= TOG_LVIEW 0)
  204. ;;;Plan on thickness
  205. (cond
  206.    ((= TOG_DTYPE 0) (LMB:THICK1))
  207.    ((= TOG_DTYPE 1) (LMB:THICK2))
  208.    ((= TOG_DTYPE 2) (LMB:THICK3))
  209. )
  210. )
  211. ((= TOG_LVIEW 1)
  212. ;;;Plan on Depth
  213. (cond
  214.    ((= TOG_DTYPE 0) (LMB:DEPTH1))
  215.    ((= TOG_DTYPE 1) (LMB:DEPTH2))
  216.    ((= TOG_DTYPE 2) (LMB:DEPTH3))
  217. )
  218. )
  219. ((= TOG_LVIEW 2)
  220. ;;;Section
  221. (cond
  222.    ((= TOG_DTYPE 0) (LMB:SECT1))
  223.    ((= TOG_DTYPE 1)
  224.     (if (= TOG_LLEFT 1)
  225.       (LMB:SECT2L)
  226.       (LMB:SECT2)
  227.     )
  228.    )
  229.    ((= TOG_DTYPE 2) (LMB:SECT3))
  230. )
  231. )
  232.      )
  233.    )
  234. )
  235. (princ)
  236. )
  237. ;;; Single Line on Thickness
  238. (defun LMB:THICK1 (/ PT1 PT2 PT3 PT4 D2)
  239. (setq PT1 (getpoint "\nLeft Center Placement Point: "))
  240. (setq PT2 (getpoint PT1 "\nLumber Length-Angle: "))
  241. (setq ANG (angle PT1 PT2))
  242. (command "._line" PT1 PT2 "")
  243. (setq EL1 (entlast))
  244. (setq D2 (+ L_THK1 LUM_GAP))
  245. (cond
  246.    ((= TOG_MTYPE 2)
  247.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  248.    )
  249.    ((= TOG_MTYPE 3)
  250.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  251.     (command "._copy"
  252.       EL1
  253.       ""
  254.       PT1
  255.       (polar PT1 (+ ANG (D90)) (* D2 2))
  256.     )
  257.    )
  258.    ((= TOG_MTYPE 4)
  259.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  260.     (command "._copy"
  261.       EL1
  262.       ""
  263.       PT1
  264.       (polar PT1 (+ ANG (D90)) (* D2 2))
  265.     )
  266.     (command "._copy"
  267.       EL1
  268.       ""
  269.       PT1
  270.       (polar PT1 (+ ANG (D90)) (* D2 3))
  271.     )
  272.    )
  273. )
  274. )
  275. ;;; Double Line on Thickness
  276. (defun LMB:THICK2 (/ PT1 PT2 PT3 PT4 D2)
  277. (setq PT1 (getpoint "\nLower Left Placement Point: "))
  278. (setq PT2 (getpoint PT1 "\nLumber Length-Angle: "))
  279. (setq ANG (angle PT1 PT2))
  280. (setq PT3 (polar PT2 (+ ANG (D90)) L_THK1)
  281. PT4 (polar PT1 (+ ANG (D90)) L_THK1)
  282. )
  283. (command "._pline" PT1 "w" 0 0 PT2 PT3 PT4 "c")
  284. (setq EL1 (entlast))
  285. (setq D2 (+ L_THK1 LUM_GAP))
  286. (cond
  287.    ((= TOG_MTYPE 2)
  288.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  289.    )
  290.    ((= TOG_MTYPE 3)
  291.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  292.     (command "._copy"
  293.       EL1
  294.       ""
  295.       PT1
  296.       (polar PT1 (+ ANG (D90)) (* D2 2))
  297.     )
  298.    )
  299.    ((= TOG_MTYPE 4)
  300.     (command "._copy" EL1 "" PT1 (polar PT1 (+ ANG (D90)) D2))
  301.     (command "._copy"
  302.       EL1
  303.       ""
  304.       PT1
  305.       (polar PT1 (+ ANG (D90)) (* D2 2))
  306.     )
  307.     (command "._copy"
  308.       EL1
  309.       ""
  310.       PT1
  311.       (polar PT1 (+ ANG (D90)) (* D2 3))
  312.     )
  313.    )
  314. )
  315. )
  316. ;;; Section Double Line
  317. (defun LMB:SECT2 (/ PT1 PT2 PT3 PT4 D2)
  318. (setq PT1 (getpoint "\nLower Left Placement Point: ")
  319. ANG (getangle PT1 "\nRotation Angle: ")
  320. PT2 (polar PT1 ANG L_DEP1)
  321. PT3 (polar PT2 (+ ANG (D90)) L_THK1)
  322. PT4 (polar PT1 (+ ANG (D90)) L_THK1)
  323. )
  324. (command "._pline" PT1 "w" 0 0 PT2 PT3 PT4 "c")
  325. (setq EL1 (entlast))
  326. (command "._line" PT1 PT3 "")
  327. (setq EL2 (entlast))
  328. (command "._line" PT2 PT4 "")
  329. (setq EL3 (entlast))
  330. (command "._change" EL2 EL3 "" "p" "c" "1" "")
  331. (setq D2 (+ L_THK1 LUM_GAP))
  332. (cond
  333.    ((= TOG_MTYPE 2)
  334.     (command "._copy"
  335.       EL1
  336.       EL2
  337.       EL3
  338.       ""
  339.       PT1
  340.       (polar PT1 (+ ANG (D90)) D2)
  341.     )
  342.    )
  343.    ((= TOG_MTYPE 3)
  344.     (command "._copy"
  345.       EL1
  346.       EL2
  347.       EL3
  348.       ""
  349.       PT1
  350.       (polar PT1 (+ ANG (D90)) D2)
  351.     )
  352.     (command "._copy"
  353.       EL1
  354.       EL2
  355.       EL3
  356.       ""
  357.       PT1
  358.       (polar PT1 (+ ANG (D90)) (* D2 2))
  359.     )
  360.    )
  361.    ((= TOG_MTYPE 4)
  362.     (command "._copy"
  363.       EL1
  364.       EL2
  365.       EL3
  366.       ""
  367.       PT1
  368.       (polar PT1 (+ ANG (D90)) D2)
  369.     )
  370.     (command "._copy"
  371.       EL1
  372.       EL2
  373.       EL3
  374.       ""
  375.       PT1
  376.       (polar PT1 (+ ANG (D90)) (* D2 2))
  377.     )
  378.     (command "._copy"
  379.       EL1
  380.       EL2
  381.       EL3
  382.       ""
  383.       PT1
  384.       (polar PT1 (+ ANG (D90)) (* D2 3))
  385.     )
  386.    )
  387. )
  388. )
  389. ;;; Section Double Line w/Ledgers
  390. (defun LMB:SECT2L (/ PT1 PT2 PT3 PT4 D2)
  391. (setq PT1 (getpoint "\nLower Left Placement Point: "))
  392. (setq ANG 0.0)
  393. (setq PT2 (polar PT1 ANG LL_THK1))
  394. (setq PT3 (polar PT2 (+ ANG (D90)) LL_DEP1))
  395. (setq PT4 (polar PT1 (+ ANG (D90)) LL_DEP1))
  396. (command "._pline" PT1 "w" 0 0 PT2 PT3 PT4 "c")
  397. (command "._line" PT1 PT3 "")
  398. (setq EL2 (entlast))
  399. (command "._line" PT2 PT4 "")
  400. (setq EL3 (entlast))
  401. (command "._change" EL2 EL3 "" "p" "c" "1" "")
  402. (setq PT1 PT2)
  403. (setq PT2 (polar PT1 ANG L_THK1)
  404. PT3 (polar PT2 (+ ANG (D90)) L_DEP1)
  405. PT4 (polar PT1 (+ ANG (D90)) L_DEP1)
  406. )
  407. (command "._pline" PT1 PT2 PT3 PT4 "c")
  408. (setq EL1 (entlast))
  409. (command "._line" PT1 PT3 "")
  410. (setq EL2 (entlast))
  411. (command "._line" PT2 PT4 "")
  412. (setq EL3 (entlast))
  413. (command "._change" EL2 EL3 "" "p" "c" "1" "")
  414. (setq D2 (+ L_THK1 LUM_GAP))
  415. (cond
  416.    ((= TOG_MTYPE 2)
  417.     (command "._copy" EL1 EL2 EL3 "" PT1 (polar PT1 ANG D2))
  418.     (setq PT1 (polar PT2 ANG D2))
  419.    )
  420.    ((= TOG_MTYPE 3)
  421.     (command "._copy" EL1 EL2 EL3 "" PT1 (polar PT1 ANG D2))
  422.     (command "._copy"
  423.       EL1
  424.       EL2
  425.       EL3
  426.       ""
  427.       PT1
  428.       (polar PT1 ANG (* D2 2))
  429.     )
  430.     (setq PT1 (polar PT2 ANG (* D2 2)))
  431.    )
  432.    ((= TOG_MTYPE 4)
  433.     (command "._copy" EL1 EL2 EL3 "" PT1 (polar PT1 ANG D2))
  434.     (command "._copy"
  435.       EL1
  436.       EL2
  437.       EL3
  438.       ""
  439.       PT1
  440.       (polar PT1 ANG (* D2 2))
  441.     )
  442.     (command "._copy"
  443.       EL1
  444.       EL2
  445.       EL3
  446.       ""
  447.       PT1
  448.       (polar PT1 ANG (* D2 3))
  449.     )
  450.     (setq PT1 (polar PT2 ANG (* D2 3)))
  451.    )
  452. )
  453. (setq PT2 (polar PT1 ANG LR_THK1))
  454. (setq PT3 (polar PT2 (+ ANG (D90)) LR_DEP1))
  455. (setq PT4 (polar PT1 (+ ANG (D90)) LR_DEP1))
  456. (command "._pline" PT1 "w" 0 0 PT2 PT3 PT4 "c")
  457. (command "._line" PT1 PT3 "")
  458. (setq EL2 (entlast))
  459. (command "._line" PT2 PT4 "")
  460. (setq EL3 (entlast))
  461. (command "._change" EL2 EL3 "" "p" "c" "1" "")
  462. )
  463. ;;; Double Line on Depth
  464. (defun LMB:DEPTH2 (/ PT1 PT2 PT3 PT4)
  465. (setq PT1 (getpoint "\nLower Left Placement Point: "))
  466. (setq PT2 (getpoint PT1 "\nLumber Length-Angle: "))
  467. (setq ANG (angle PT1 PT2))
  468. (setq PT3 (polar PT2 (+ ANG (D90)) L_DEP1)
  469. PT4 (polar PT1 (+ ANG (D90)) L_DEP1)
  470. )
  471. (command "._pline" PT1 "w" 0 0 PT2 PT3 PT4 "c")
  472. (setq EL1 (entlast))
  473. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:09:29 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:20:25 | 显示全部楼层
消息就是$start不存在,它可能存在于您的acaddoc中。lsp等,并在启动autocad时加载。你需要找到它。尝试($start)然后看看会发生什么
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 20:29:06 | 显示全部楼层
 
SLW210也许这应该是一个粘性?
 
似乎几乎每一个这种类型的第一个帖子,你或其他管理员,或成员
需要提供此链接或澄清此说明。
当我最近想建议一个新手这一点时,我找不到它的链接。
回复

使用道具 举报

8

主题

1647

帖子

1647

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-5 20:30:12 | 显示全部楼层
这已经是一个棘手的问题:http://www.cadtutor.net/forum/forumdisplay.php?21-AutoLISP Visual LISP amp DCL
 
此外,lisp问题应张贴在论坛的Autolisp部分,这是该线程被移动的地方。
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 20:38:41 | 显示全部楼层
 
Cad64,对了,现在我看到了,下次我会记得在哪里找到它的,谢谢。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:52:09 | 显示全部楼层
 
我错过了,它在哪里?
 
通常,当我通过线程时首先检查。
 
所以我为你们修正了这个问题,wipo,添加代码标签并不是那么困难,只是[NOPARSE]
  1. "YOUR CODE HERE"
[/NOPARSE]
 
编辑时,您也可以使用回复框右下角的“Go Advanced”,您将获得自动添加[NOPARSE]的#
然后复制并粘贴代码。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:53:02 | 显示全部楼层
也不确定这条线(defun C:木材()木材v(defun C:木材()
 
嘿,现在轮到你了。
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 21:05:42 | 显示全部楼层
还有,你有这个文件:“lumber.dcl”吗?例程也需要它来运行。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 01:03 , Processed in 1.091437 second(s), 70 queries .

© 2020-2025 乐筑天下

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