乐筑天下

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

[编程交流] plz chk计划和建议m

[复制链接]

18

主题

58

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2022-7-6 10:36:17 | 显示全部楼层 |阅读模式
尊敬的各位
plz chk计划和建议我如何改进
程序仅运行mm drg
系统变量无法恢复问题所在
 
 
  1. (DEFUN C:dr2 (/ lu a b c d e f g pt pp pt1 pt2 p ang1 tz wl ds wt sw ang2
  2. pt3 pt4 ang3 pl2 pl3 pl4 pl5 pl6 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt13 pt14 pt15)
  3. ;--------------------------------------------
  4. (setq oldCM (getvar "CMDECHO")
  5. oldos (getvar "OSMODE")
  6. )
  7. (defun *error* (msg)
  8. (if oldCM (setvar "CMDECHO" oldCM))
  9. (if oldos (setvar "OSMODE" oldos))
  10. (princ msg)
  11. (princ)
  12. )
  13. (setvar "CMDECHO" 0)
  14. (setvar "osmode" 0)
  15. ;|(setq bmode (getvar "BLIPMODE")
  16. omode (getvar "OSMODE"))
  17. (mapcar 'setvar '("BLIPMODE" "OSMODE") (list (BMODE OMODE))|;
  18. ;---------------------------------------
  19. (setq lu (getvar "lunits"))
  20. (if (= lu 2) (setq a 75 b 82 c 15 d 38 e 60 f 120 g 150)
  21. (setq a 3 b 3.5 c 0.5 d 1.5 e 2.5 f 5 g 6))
  22. (if (null DRlay)
  23. (progn
  24. (setq DRlay "DR")
  25. (setq DRlayer (tblsearch "layer" DRlay))
  26. (if (null DRlayer)
  27. (progn
  28. (setq DRlay (getstring "\nLayer name for TEXT : "))
  29. (setq DRclr (getstring (strcat "\nColor for " DRlay " layer: ")))
  30. (command "layer" "m" DRlay "c" DRclr "" "")
  31. )
  32. (prompt "\nDOOR ON DR LAYER")
  33. )
  34. )
  35. )
  36. (SETQ PT (entsel "\nPICK WALL LINE:"))
  37. (setq pp (CDR (ASSOC 11 (ENTGET (CAR PT)))))
  38. (setvar "osmode" 128 )
  39. (SETQ PT1 (GETPOINT PP "\nEnter Insertion Point:"))
  40. (SETQ PT2 (GETPOINT PT1 "\nPick Opposite Wall Line:"))
  41. (SETVAR "OSMODE" 512)
  42. (SETQ p (GETpoint PT2 "\nPICK THE SIDE FOR OPENING:"))
  43. (setq ang1 (angle pt2 p))
  44. (IF (null DZ) (SETQ DZ "900"))
  45. (SETQ TZ (STRCASE (GETSTRING (STRCAT "\nENTER SIZE OF OPENING <" DZ ">: ")) t))
  46. (IF (/= TZ "") (SETQ DZ TZ))
  47. (SETVAR "BLIPMODE" 0)
  48. ;---------------------------------------------
  49. (setq wl (cdr (assoc 8 (entget (car pt))))
  50. DS (Atof DZ)
  51. WT (DISTANCE PT1 PT2)
  52. SW (- DS f)
  53. ANG2 (ANGLE PT1 PT2)
  54. PT3 (POLAR PT1 ANG1 DS)
  55. PT4 (POLAR PT3 ANG2 WT)
  56. ANG3 (ANGLE PT3 PT1)
  57. PL2 (POLAR PT1 ANG1 a)
  58. PL3 (POLAR PL2 ANG2 b)
  59. PL4 (POLAR PL3 ANG3 c)
  60. PL5 (POLAR PL4 ANG2 d)
  61. PL6 (POLAR PL5 ANG3 e)
  62. PT5 (POLAR PT1 ANG1 (/ DS 2))
  63. PT6 (POLAR PT5 ANG2 f)
  64. PT7 (POLAR PL5 ANG1 SW)
  65. PT12 PT7 PT13 PL5)
  66. ;-------------------------------------------
  67. (SETVAR "OSMODE" 0)
  68. (COMMAND "BREAK" Pt "F" PT1 PT3)
  69. (COMMAND "BREAK" P "F" PT2 PT4)
  70. (COMMAND "LAYER" "s" WL "")
  71. (COMMAND "LINE" PT1 PT2 "")
  72. (COMMAND "LINE" PT3 PT4 "")
  73. (COMMAND "COLOR" "BYLAYER")
  74. (COMMAND "LAYER" "t" drlay "on" drlay "s" drlay "")
  75. (COMMAND "PLINE" PT1 PL2 PL3 PL4 PL5 PL6 "")
  76. (COMMAND "MIRROR" PL2 "" PT5 PT6 "")
  77. (SETVAR "ORTHOMODE" 0)
  78. (SETQ PT11 (GETPOINT PT5 "\nPICK THE SIDE FOR SHUTTER:"))
  79. (IF (> (DISTANCE PT11 PL5)(DISTANCE PT7 PT11)) (SETQ PL5 PT7 PT12 PT13))
  80. (SETQ PT8 (POLAR PL5 (ANGLE PL5 PT6) d))
  81. (SETQ PT9 (POLAR PT8 ANG2 SW))
  82. (SETQ PT10 (POLAR PT9 (ANGLE PT6 PL5) d))
  83. (COMMAND "PLINE" PL5 PT8 PT9 PT10 PL5 "")
  84. (COMMAND "ARC" PT12 PT9 PT10)
  85. (COMMAND "CHPROP" "L" "" "LT" "HIDDEN2" "")
  86. (setq pt14 (polar pl3 ang1 (- ds g)))
  87. (setq pt15 (polar pl2 ang1 (- ds g)))
  88. (if (and (>= ds 100) (<= ds 750)) (command "line" pl3 pt14 ""))
  89. (if (>= ds 910) (command "line" pl2 pt15 ""))
  90. (if (<= ds 32) (command "line" pl3 pt14 ""))
  91. (if (and (>= ds 37) (< ds 100)) (command "line" pl2 pt15 ""))
  92. )
  93. ;; Reset System Variables:
  94. (setvar "cmdecho" oldCM)
  95. (setvar "osmode" oldos)
  96. (princ)
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 11:18:02 | 显示全部楼层
仔细检查括号。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 11:42:23 | 显示全部楼层
这是一个很好但很古老的运行lisp chkbrk文件名你的lisp程序,它将它复制回“wow.lsp”,但看看最后它会告诉你有多少barcket丢失它还写了多少是开放的,这样你就可以找到开放和关闭对
 
  1. (defun c:chkbrk (/ opf bkt chekdfile rdctl wkfile currentln wln ltr ncln)
  2. (setvar "cmdecho" 0)
  3. (prompt "\nlook at end of line")
  4. ;(setq chekdfile (getstring "enter name of file :"))
  5. (SETQ chekdfile (getfiled "Enter file name:" " " "LSP" 4))
  6. (setq opf (open chekdfile "r"))
  7. (setq bkt 0)
  8. (setq blkl 0)
  9. (setq rdctl 1)
  10. (setq wkfile (open "c:/wow.lsp" "w"))
  11. (setq currentln "a")
  12. (while (/= blkl 6)
  13. (setq currentln (read-line opf))
  14. (if (= currentln nil)(setq currentln ""))
  15. (if (= currentln "")(setq blkl (+ 1 blkl))(setq blkl 1))
  16. (setq wln currentln)                                                        
  17. (while (/= wln "")
  18.        (setq ltr (substr wln 1 1))
  19.        (setq wln (substr wln 2))
  20.        (cond ((= (ascii ltr) 34) (if (= rdctl 0)(setq rdctl 1)(setq rdctl 0)))
  21.                ((and (= ltr "(")(= rdctl 1))(setq bkt (+ bkt 1)))
  22.                ((and (= ltr ")")(= rdctl 1))(setq bkt (- bkt 1)))
  23.                ((and (= ltr ";")(= rdctl 1))(setq wln ""))
  24.                ;(t (prompt ltr))
  25.        )
  26. )
  27. (setq ncln (strcat currentln ";" (itoa bkt)
  28. (princ (itoa bkt))
  29. (if (= rdctl 0) "string open" "")))
  30. (if (/= currentln "")(write-line ncln wkfile))
  31. )
  32. (close wkfile)
  33. (close opf)
  34. (prompt (strcat "open brakets= " (itoa bkt) "."))
  35. )
  36. (setq ang1 nil
  37.      pt1 nil
  38.      pt2 nil
  39.      pt3 nil
  40.      pt4 nil
  41.      pt5 nil)
  42. (princ)

 
不确定,但我认为这是你的setq wl
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:05 , Processed in 0.569097 second(s), 58 queries .

© 2020-2025 乐筑天下

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