乐筑天下

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

[编程交流] 用ex列出轴承距离

[复制链接]

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:43:58 | 显示全部楼层 |阅读模式
大家好,大师们,有谁能帮助修改这个lisp以添加以下额外功能:
 
1.加载lisp后
装置设置为
-类型:十进制
-精度:3
-角度类型Deg/Min/Sec-精度0d00'00“
-顺时针方向
-北270d0'
 
2.角度(度/分/秒)可设置供选择
-汇总(如现有)
-不汇总
 
 
谢谢你的帮助。
列出轴承距离。LSP
回复

使用道具 举报

1

主题

64

帖子

69

银币

初来乍到

Rank: 1

铜币
2
发表于 2022-7-6 14:50:00 | 显示全部楼层
无意冒犯,杰森,但如果是英文的话会更容易理解。
 
这几乎就像老虎偷了我的Lisp程序,把它们转换成瑞典语,然后把它们还给我修改一样糟糕。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:56:27 | 显示全部楼层
哦,对不起,艾伦,我得把它换成英语。
我将更改它并再次发布。。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:59:19 | 显示全部楼层
Alan这里我把它改成英文,我试着编辑一下这个lisp,它得到了这个“错误:错误的参数类型:FILE nil”
最后。问题是什么?
 
 
  1. :; use to get bearing and distance of line/s
  2. (DEFUN C:BD ()
  3. (PROGN
  4. (COMMAND "OSNAP" "NONE")
  5. (Princ "List out Bearing Distances \n")
  6. (if (not (tblsearch "layer" "BEARING DISTANCES"))
  7.   (command  "layer" "m" "BEARING DISTANCES" "c" "3" "" "")
  8.   (if (/= (getvar "clayer") "BEARING DISTANCES")
  9. (command  "layer" "s" "BEARING DISTANCES" "" ))
  10. )
  11. (SETQ P (SSGET))
  12. (IF P (PROGN
  13. (SETQ SKF (GETREAL "\n1 UNITs on SCREEN = ? UNIT for plotting  "))
  14. (SETQ THT (GETDIST "\nSAIZ TULISAN ? "))
  15. (SETQ NODEC (GETINT "\nDistance decimal ? "))
  16. (SETQ YNBRG (STRCASE (GETSTRING Y "\nNeed bearing ? ")))
  17. (SETQ L 0 N (SSLENGTH P) THTV (RTOS THT 2 3) SCMDE (GETVAR "CMDECHO"))
  18. Ū(SETVAR "CMDECHO" 0)
  19. (WHILE (< L N)
  20. (SETQ E (ENTGET (SSNAME P L)))
  21. (IF (= "LINE" (CDR (ASSOC 0 E))) (PROGN
  22. (SETQ BL (CDR (ASSOC 10 E)) EL (CDR (ASSOC 11 E)))
  23. (SETQ BRG (ANGLE BL EL) JAR (DISTANCE BL EL))
  24. (SETQ JARL JAR)
  25. (SETQ ROT (ANGLE BL EL))
  26. (SETQ JARI (RTOS (* SKF JAR) 2 NODEC))
  27. (IF (= YNBRG "N")
  28. (PROGN
  29. (SETQ CTT (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) THT))
  30. (SETQ CT (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 1.75 THT)))
  31. (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  32. (PROGN
  33. (SETQ ROT (ANGTOS (+ ROT PI)))
  34. (COMMAND "TEXT" "C" CTT THTV ROT JARI))
  35. (PROGN
  36. (SETQ ROT (ANGTOS ROT))
  37. (COMMAND "TEXT" "C" CT THTV ROT JARI))))
  38. (PROGN
  39. (SETQ BRG (- 450 (* 180 (/ BRG PI))))
  40. (IF (<= 360 BRG)(SETQ BRG (- BRG 360)))
  41. (SETQ BR (FIX BRG) MS (* 60 (- BRG BR)) MN (FIX MS))
  42. (SETQ SE (* (FIX (+ (/ (* 60 (- MS MN)) 10) 0.5)) 10))
  43. (IF (< 55 SE) (PROGN (SETQ MN (+ 1 MN))(SETQ SE 0)))
  44. (IF (< 59 MN) (PROGN (SETQ BR (+ 1 BR))(SETQ MN 0)))
  45. (SETQ BR (ITOA BR) MN (ITOA MN) SE (ITOA SE))
  46. (IF (= 1 (STRLEN MN))(SETQ MN (STRCAT "0" MN)))
  47. (IF (= 1 (STRLEN SE))(SETQ SE (STRCAT "0" SE)))
  48. (SETQ BERING (STRCAT BR "%%D" MN (CHR 39) SE (CHR 34) ))
  49. (SETQ BGT (* THT (STRLEN BERING)) JART (* THT (+ 2 (STRLEN JARI))) BR "L")
  50. (IF (< JARL BGT) (PROGN
  51. (IF (< PI ROT)
  52. (PROGN
  53. (SETQ CT (POLAR (POLAR BL ROT (- (/ JAR 2) (/ THT 4))) (+ ROT (* 0.5 PI)) THT))
  54. (SETQ CTJ (POLAR (POLAR BL ROT (+ (/ JAR 2) (* 1.25 THT))) (+ ROT (* 0.5 PI)) THT))
  55. (SETQ ROT (ANGTOS (+ ROT (* 0.5 PI))))
  56. (COMMAND "TEXT" CT THTV ROT BERING)
  57. (COMMAND "TEXT" CTJ THTV ROT JARI))
  58. (PROGN
  59. (SETQ CT (POLAR (POLAR BL ROT (+ (/ THT 4) (/ JAR 2))) (+ ROT (* 0.5 PI)) THT))
  60. (SETQ CTJ (POLAR (POLAR BL ROT (- (/ JAR 2) (* 1.25 THT))) (+ ROT (* 0.5 PI)) THT))
  61. (SETQ ROT (ANGTOS (- ROT (* 0.5 PI))))
  62. Ū(COMMAND "TEXT" "R" CT THTV ROT BERING)
  63. (COMMAND "TEXT" "R" CTJ THTV ROT JARI))
  64. )
  65. (SETQ BR "S")))
  66. (IF (= BR "L") (PROGN
  67. (SETQ CTB (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 1.75 THT)))
  68. (SETQ CT (POLAR (POLAR BL ROT (/ JAR 2)) (+ ROT (* 0.5 PI)) (* 0.75 THT)))
  69. (SETQ CTC (POLAR (POLAR BL ROT (/ JAR 2)) (+ ROT (* 0.5 PI)) (* 1.75 THT)))
  70. (SETQ CTD (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 0.75 THT)))
  71. (IF (> JARL (+ BGT JART)) (PROGN
  72. (SETQ BERING (STRCAT BERING " " JARI))
  73. (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  74. (PROGN
  75. (SETQ ROT (ANGTOS (- ROT PI)))
  76. (COMMAND "TEXT" "C" CTC THTV ROT BERING))
  77. (PROGN
  78. (SETQ ROT (ANGTOS ROT))
  79. (COMMAND "TEXT" "C" CT THTV ROT BERING))))
  80. (PROGN
  81. (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  82. (PROGN
  83. (SETQ ROT (ANGTOS (- ROT PI)))
  84. (COMMAND "TEXT" "C" CTD THTV ROT JARI)
  85. (COMMAND "TEXT" "C" CTC THTV ROT BERING))
  86. (PROGN
  87. (SETQ ROT (ANGTOS ROT))
  88. (COMMAND "TEXT" "C" CT THTV ROT BERING)
  89. (COMMAND "TEXT" "C" CTB THTV ROT JARI))))))
  90. )))))
  91. (SETQ L (1+ L))
  92. )))
  93. (TERPRI)
  94. (SETVAR "CMDECHO" SCMDE))
  95. (SETQ WS (READ-CHAR WSE))
  96. (SETQ WS (READ-CHAR WSE))
  97. (SETQ WS (READ-CHAR WSE))
  98. (CLOSE WSE))
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:03:32 | 显示全部楼层
艾伦我不知道谁是这个Lisp程序的作者,因为我从我的上级那里得到的。
回复

使用道具 举报

1

主题

64

帖子

69

银币

初来乍到

Rank: 1

铜币
2
发表于 2022-7-6 15:05:57 | 显示全部楼层
好的,杰森,
 
有几件事。开始缩进代码。对于每个右括号,缩进一个空格。对于每个左括号,删除一个缩进空格。我马上过去做。(我现在把老虎叼起来了。)。
 
删除此行:
 
 
此外,我怀疑你可能在末尾缺少了一个左括号。
回复

使用道具 举报

1

主题

64

帖子

69

银币

初来乍到

Rank: 1

铜币
2
发表于 2022-7-6 15:10:28 | 显示全部楼层
对,杰森,我有机会经历了。试试这个,它只是为了显示缩进,我没有检查你的代码:
 
  1. :; use to get bearing and distance of line/s
  2. (DEFUN C:BD ()
  3. (PROGN
  4. (COMMAND "OSNAP" "NONE")
  5. (Princ "List out Bearing Distances \n")
  6. (if (not (tblsearch "layer" "BEARING DISTANCES"))
  7.   (command  "layer" "m" "BEARING DISTANCES" "c" "3" "" "")
  8.   (if (/= (getvar "clayer") "BEARING DISTANCES")
  9.    (command  "layer" "s" "BEARING DISTANCES" "" )
  10. ))
  11. (SETQ P (SSGET))
  12. (IF P
  13.   (PROGN
  14.    (SETQ SKF (GETREAL "\n1 UNITs on SCREEN = ? UNIT for plotting  "))
  15.    (SETQ THT (GETDIST "\nSAIZ TULISAN ? "))
  16.    (SETQ NODEC (GETINT "\nDistance decimal ? "))
  17.    (SETQ YNBRG (STRCASE (GETSTRING Y "\nNeed bearing ? ")))
  18.    (SETQ L 0 N (SSLENGTH P) THTV (RTOS THT 2 3) SCMDE (GETVAR "CMDECHO"))
  19.    (SETVAR "CMDECHO" 0)
  20.    (WHILE (< L N)
  21.     (SETQ E (ENTGET (SSNAME P L))
  22.    )
  23.    (IF (= "LINE" (CDR (ASSOC 0 E)))
  24.     (PROGN
  25.      (SETQ BL (CDR (ASSOC 10 E)) EL (CDR (ASSOC 11 E)))
  26.      (SETQ BRG (ANGLE BL EL) JAR (DISTANCE BL EL))
  27.      (SETQ JARL JAR)
  28.      (SETQ ROT (ANGLE BL EL))
  29.      (SETQ JARI (RTOS (* SKF JAR) 2 NODEC))
  30.      (IF (= YNBRG "N")
  31.       (PROGN
  32.        (SETQ CTT (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) THT))
  33.        (SETQ CT (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 1.75 THT)))
  34.        (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  35.         (PROGN
  36.          (SETQ ROT (ANGTOS (+ ROT PI)))
  37.          (COMMAND "TEXT" "C" CTT THTV ROT JARI)
  38.         )
  39.         (PROGN
  40.          (SETQ ROT (ANGTOS ROT))
  41.          (COMMAND "TEXT" "C" CT THTV ROT JARI)
  42.       )))
  43.       (PROGN
  44.        (SETQ BRG (- 450 (* 180 (/ BRG PI))))
  45.        (IF (<= 360 BRG)(SETQ BRG (- BRG 360)))
  46.        (SETQ BR (FIX BRG) MS (* 60 (- BRG BR)) MN (FIX MS))
  47.        (SETQ SE (* (FIX (+ (/ (* 60 (- MS MN)) 10) 0.5)) 10))
  48.        (IF (< 55 SE) (PROGN (SETQ MN (+ 1 MN))(SETQ SE 0)))
  49.        (IF (< 59 MN) (PROGN (SETQ BR (+ 1 BR))(SETQ MN 0)))
  50.        (SETQ BR (ITOA BR) MN (ITOA MN) SE (ITOA SE))
  51.        (IF (= 1 (STRLEN MN))(SETQ MN (STRCAT "0" MN)))
  52.        (IF (= 1 (STRLEN SE))(SETQ SE (STRCAT "0" SE)))
  53.        (SETQ BERING (STRCAT BR "%%D" MN (CHR 39) SE (CHR 34)))
  54.        (SETQ BGT (* THT (STRLEN BERING)) JART (* THT (+ 2 (STRLEN JARI))) BR "L")
  55.        (IF (< JARL BGT)
  56.         (PROGN
  57.          (IF (< PI ROT)
  58.           (PROGN
  59.            (SETQ CT (POLAR (POLAR BL ROT (- (/ JAR 2) (/ THT 4))) (+ ROT (* 0.5 PI)) THT))
  60.            (SETQ CTJ (POLAR (POLAR BL ROT (+ (/ JAR 2) (* 1.25 THT))) (+ ROT (* 0.5 PI)) THT))
  61.            (SETQ ROT (ANGTOS (+ ROT (* 0.5 PI))))
  62.            (COMMAND "TEXT" CT THTV ROT BERING)
  63.            (COMMAND "TEXT" CTJ THTV ROT JARI)
  64.           )
  65.           (PROGN
  66.            (SETQ CT (POLAR (POLAR BL ROT (+ (/ THT 4) (/ JAR 2))) (+ ROT (* 0.5 PI)) THT))
  67.            (SETQ CTJ (POLAR (POLAR BL ROT (- (/ JAR 2) (* 1.25 THT))) (+ ROT (* 0.5 PI)) THT))
  68.            (SETQ ROT (ANGTOS (- ROT (* 0.5 PI))))
  69.            (COMMAND "TEXT" "R" CT THTV ROT BERING)
  70.            (COMMAND "TEXT" "R" CTJ THTV ROT JARI)
  71.          ))
  72.          (SETQ BR "S")
  73.        ))
  74.        (IF (= BR "L")
  75.         (PROGN
  76.         (SETQ CTB (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 1.75 THT)))
  77.         (SETQ CT (POLAR (POLAR BL ROT (/ JAR 2)) (+ ROT (* 0.5 PI)) (* 0.75 THT)))
  78.         (SETQ CTC (POLAR (POLAR BL ROT (/ JAR 2)) (+ ROT (* 0.5 PI)) (* 1.75 THT)))
  79.         (SETQ CTD (POLAR (POLAR BL ROT (/ JAR 2)) (- ROT (* 0.5 PI)) (* 0.75 THT)))
  80.         (IF (> JARL (+ BGT JART))
  81.          (PROGN
  82.           (SETQ BERING (STRCAT BERING " " JARI))
  83.           (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  84.            (PROGN
  85.             (SETQ ROT (ANGTOS (- ROT PI)))
  86.             (COMMAND "TEXT" "C" CTC THTV ROT BERING)
  87.            )
  88.            (PROGN
  89.             (SETQ ROT (ANGTOS ROT))
  90.             (COMMAND "TEXT" "C" CT THTV ROT BERING)
  91.          )))
  92.          (PROGN
  93.           (IF (< (* 0.5 PI) ROT (* 1.5 PI))
  94.            (PROGN
  95.             (SETQ ROT (ANGTOS (- ROT PI)))
  96.             (COMMAND "TEXT" "C" CTD THTV ROT JARI)
  97.             (COMMAND "TEXT" "C" CTC THTV ROT BERING)
  98.            )
  99.            (PROGN
  100.             (SETQ ROT (ANGTOS ROT))
  101.             (COMMAND "TEXT" "C" CT THTV ROT BERING)
  102.             (COMMAND "TEXT" "C" CTB THTV ROT JARI)
  103.   ))))))))))
  104.   (SETQ L (1+ L))
  105. ))
  106. (TERPRI)
  107. (SETVAR "CMDECHO" SCMDE))
  108. (SETQ WS (READ-CHAR WSE))
  109. (SETQ WS (READ-CHAR WSE))
  110. (SETQ WS (READ-CHAR WSE))
  111. (CLOSE WSE)
  112. )

 
现在,有几件事,我在那里找到了几个随机的“U”,并删除了它们。
 
括号的平衡是正确的,但正确的缩进只会使控制该区域更容易。
 
把我之前发的那句话去掉。
 
我无法理解最后5行代码。它们指的是从名为“WSE”的文件或其他文件中读取文本行上的一个字符,但您并没有对它们做任何操作,只是每次将下一个字符分配给同一个变量。然后关闭一个尚未打开的文件。我建议删除最后5行,甚至可能是最后6行。
 
正如我所说,我还没有检查你的代码。希望这对开始有所帮助,然后我们可以根据您的要求进一步了解进展情况。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:15:43 | 显示全部楼层
尊敬的Alan:,
我删除了最后5行代码并尝试加载代码,但
这出现了;错误:输入列表格式不正确
实际上对它有什么影响?
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 15:19:25 | 显示全部楼层
不要删除最后一行“)”,否则会导致括号不平衡,从而产生错误消息。艾伦指的是上面的几行。
回复

使用道具 举报

5

主题

49

帖子

44

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:26:09 | 显示全部楼层
卡尔布,
当我试图打印并检查时,仍然无法修复:哎呀:,
对我来说是一段很长的路要走。
这是学习lisp表单的好方法吗?像我现在尝试的那样修改它?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:29 , Processed in 0.481664 second(s), 72 queries .

© 2020-2025 乐筑天下

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