乐筑天下

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

[编程交流] 条件语句

[复制链接]

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:06:29 | 显示全部楼层 |阅读模式
我在试着弄明白什么是简单的事情。我想创建一个lisp,我可以告诉它画3条线,然后我可以指定它是向左还是向右。这是我目前掌握的基本知识。
 
  1. (defun c:ju()
  2. (setq oldosmode (getvar "osmode"))
  3. (setq oldlayer (getvar "clayer"))
  4. (setq        p1  (getpoint "\nPick Top Point:")
  5. p2  (getpoint "\nPick Bottom Point:")
  6. lvl (getint "\nJumper Level: (1,2,3,4...)")
  7. )
  8. (setq        p3 (list (+ (car p1) (* lvl 0.09375))
  9.          (- (cadr p1) (* lvl 0.03125))
  10.    )
  11. )
  12. (setq        p4 (list (+ (car p2) (* lvl 0.09375))
  13.          (+ (cadr p2) (* lvl 0.03125))
  14.    )
  15. )
  16. (setvar "clayer" "text0")
  17. (command "line" p1 p3 "")
  18. (command "line" p2 p4 "")
  19. (command "line" p3 p4 "")
  20. (setvar "clayer" oldlayer)
  21. (setvar "osmode" oldosmode)
  22. )

 
这就是它所创造的
 
080630gkf44wrzbp4lv6nb.png
 
现在,这很好,我需要指定我希望跳投到两条白线的右边或左边。我需要一些帮助。
回复

使用道具 举报

0

主题

4

帖子

4

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 07:30:01 | 显示全部楼层
你想链接这个吗??
 
  1. (defun c:ju()
  2. (setq oldosmode (getvar "osmode"))
  3. (setq oldlayer (getvar "clayer"))
  4. (setq        p1  (getpoint "\nPick Top Point:")
  5.              p2  (getpoint "\nPick Bottom Point:")
  6.       lvl (getint "\nJumper Level: (1,2,3,4...)")
  7. )
  8. (setq q (strcase (getstring "\nLeft/Right[Enter:R]:")))
  9. (if (eq "" q) (setq q "R"))
  10. (cond
  11.   ((eq q "R") (setq opt "+"))
  12.   ((eq q "L") (setq opt "-"))
  13. )
  14. (setq        p3 (list ((eval (read opt)) (car p1) (* lvl 0.09375))
  15.          (- (cadr p1) (* lvl 0.03125))
  16.    )
  17. )
  18. (setq        p4 (list ((eval (read opt)) (car p2) (* lvl 0.09375))
  19.          (+ (cadr p2) (* lvl 0.03125))
  20.    )
  21. )
  22. (setvar "clayer" "text0")
  23. (command "line" p1 p3 "")
  24. (command "line" p2 p4 "")
  25. (command "line" p3 p4 "")
  26. (setvar "clayer" oldlayer)
  27. (setvar "osmode" oldosmode)
  28. )[/color]

 
 
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:32:27 | 显示全部楼层
最简单的方法是不必键入答案添加选择左或右,因为使用鼠标的第三个getpoint更快,然后执行一个例程,只需要对左或右进行交换端点测试。
 
  1. (setq pt1 (getpoint "\npick 1st point to place pit : "))
  2. (setq pt2 (getpoint "\nPick 2nd point for orientation"))
  3. (setvar "osmode" 0)
  4. (setq pt7 (getpoint "\Pick pt on pit side : "))
  5. (setq ang (angle pt1 pt2))
  6. (setq ang5 (angle pt2 pt7))
  7. (setq diffang (- ang ang5))
  8. (if (> diffang 1.5707)
  9. (setq ang2 (- ang 1.570796))
  10. (setq ang2 (+ ang 1.570796))
  11. )

 
ps不要打扰版主把代码放在标签里
回复

使用道具 举报

0

主题

4

帖子

4

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 07:43:05 | 显示全部楼层
你想要比键入“L”或“R”更快吗?
然后,指向p1的左侧或右侧
  1. (defun c:ju()
  2. (setq oldosmode (getvar "osmode"))
  3. (setq oldlayer (getvar "clayer"))
  4. (setq        p1 (getpoint "\nPick Top Point:")
  5. p2 (getpoint "\nPick Bottom Point:")
  6. lvl (getint "\nJumper Level: (1,2,3,4...)")
  7. )
  8. (setq q (getpoint p1 "\nDirection:"))
  9. (if (>= (car q) (car p1))
  10. (setq opt "+")
  11. (setq opt "-")
  12. )
  13. (setq        p3 (list ((eval (read opt)) (car p1) (* lvl 0.09375))
  14. (- (cadr p1) (* lvl 0.03125))
  15. )
  16. )
  17. (setq        p4 (list ((eval (read opt)) (car p2) (* lvl 0.09375))
  18. (+ (cadr p2) (* lvl 0.03125))
  19. )
  20. )
  21. (setvar "clayer" "text0")
  22. (command "line" p1 p3 "")
  23. (command "line" p2 p4 "")
  24. (command "line" p3 p4 "")
  25. (setvar "clayer" oldlayer)
  26. (setvar "osmode" oldosmode)
  27. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 08:06:21 | 显示全部楼层
克拉兹,
 
请阅读代码发布指南,并编辑您的帖子以包含代码标签。
回复

使用道具 举报

0

主题

4

帖子

4

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 08:16:42 | 显示全部楼层
谢谢SLW210。
我不知道那件事。
我所有的回复都是固定的。
再次感谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 09:55 , Processed in 0.555956 second(s), 78 queries .

© 2020-2025 乐筑天下

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