乐筑天下

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

[编程交流] 初级lisp代码问题

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:54:51 | 显示全部楼层 |阅读模式
我正在尝试使用lisp生成函数。我想做两条偏移线,它们与中心线等距分布。
 
所以我把这个函数命名为testpipe。
管径和管道长度由用户输入,线将通过极坐标计算创建。
但此功能可以加载到Autocad,但无法运行并显示“错误输入”
 
 
你能告诉我这个lisp文件有什么问题吗?
 
 
 
  1. ;pipe outerline function
  2. (defun c:testpipe ()
  3. ;get user input
  4. ;get pipe diameter, and starting and ending point
  5. (setq pd (getdist "\nPipe diameter:"))
  6. (setq a (getdist "\nPipe distance:"))
  7. ;get insertion point
  8. (setq ip (getpoint "\nInsertion point"))
  9. ;start polar calculation
  10. (setq p2 (polar ip (dtr 90) (/ pd 2)))
  11. (setq p3 (polar p2 (dtr 0) a))
  12. (setq p4 (polar p3 (dtr 270) pd))
  13. (setq p5 (polar p4 (dtr 180) a))
  14. (setq p6 (polar p5 (dtr 90) (-(/ pd 2)))
  15. ;command
  16. (command "line" ip p2 p3 p4 p5 p6 "c"
  17. )
  18. (princ)
  19.    ;finish cleanly
  20. )    ;end of defun
  21. ;define function dtr
  22. (defun dtr (x)
  23.    ;define degrees to radians function
  24.    (* pi (/ x 180.0))
  25.    ;divide the angle by 180 then
  26.    ;multiply the result by the constant PI
  27. )    ;end of function
  28. (princ)    ;load cleanly
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 18:07:14 | 显示全部楼层
(命令“_.PLINE”“\u non“p2”\u non“p3”\u non“p4”\u non“p5”\u C”“))
 
[编辑:它看起来很愚蠢,但我认为结尾“”是问题所在,但我错了…]
 
这是正确的:
(命令“_.PLINE”“\u non“p2”\u non“p3”\u non“p4”\u non“p5”\u C”)
 
对不起,M.R。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:21:38 | 显示全部楼层
有几个建议我在我的库中使用d90 d180 d270,这些是转换为数字的DTR值,这样可以节省一些输入。
 
  1. ;in library
  2. (setq d0 0.0) ; note dtr 0 is 0.0
  3. (setq d90 (dtr 90.0))
  4. (setq d180 (dtr 180.0))
  5. (setq d270 (dtr 270.0))
  6. ; in code
  7. (setq pt2 (polar pt1 d270 pd))
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:40:15 | 显示全部楼层
有很多不同的方法来解决这个问题。
 
这将从4个点创建一个4行矩形
 
  1. [b][color=BLACK]([/color][/b]defun c:testpipe [b][color=FUCHSIA]([/color][/b]/ pd a ip hd ha vl ll lr ur ul[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]initget 7[b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]setq pd [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nPipe Diameter:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]initget 7[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setq a [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nPipe Distance:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]setq ip [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nInsertion Point:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  8. [b][color=FUCHSIA]([/color][/b]setq hd [b][color=NAVY]([/color][/b]* pd 0.5[b][color=NAVY])[/color][/b]
  9.        ha [b][color=NAVY]([/color][/b]*  a 0.5[b][color=NAVY])[/color][/b]
  10.        vl [b][color=NAVY]([/color][/b]distance '[b][color=MAROON]([/color][/b]0 0[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]list ha hd[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  11.        ll [b][color=NAVY]([/color][/b]polar ip [b][color=MAROON]([/color][/b]angle '[b][color=GREEN]([/color][/b]0 0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- ha[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] vl[b][color=NAVY])[/color][/b]
  12.        lr [b][color=NAVY]([/color][/b]polar ip [b][color=MAROON]([/color][/b]angle '[b][color=GREEN]([/color][/b]0 0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ ha[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]- hd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] vl[b][color=NAVY])[/color][/b]
  13.        ur [b][color=NAVY]([/color][/b]polar ip [b][color=MAROON]([/color][/b]angle '[b][color=GREEN]([/color][/b]0 0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]+ ha[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] vl[b][color=NAVY])[/color][/b]
  14.        ul [b][color=NAVY]([/color][/b]polar ip [b][color=MAROON]([/color][/b]angle '[b][color=GREEN]([/color][/b]0 0[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]- ha[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]+ hd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] vl[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  15. [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.LINE"[/color] ll lr ur ul [color=#2f4f4f]"_CL"[/color][b][color=FUCHSIA])[/color][/b]
  16. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
查看(initget)。它可以防止您输入错误的值
 
再看看[noparse]
论坛中发布的标签。
 
玩得开心-大卫
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:53:08 | 显示全部楼层
谢谢大家
我会比较你和我的密码,这样我就可以自己学习了。
顺便问一下,有什么好的材料或网站来学习lisp吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 19:03:45 | 显示全部楼层
http://www.afralisp.net/index.php
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 01:09 , Processed in 0.492379 second(s), 64 queries .

© 2020-2025 乐筑天下

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