乐筑天下

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

[编程交流] 绘制线条的Lisp

[复制链接]

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:57:03 | 显示全部楼层
好的,我完全理解。我真的很想理解你的Lisp程序,但这对我来说很难。如果你不在乎45个角度,你能在各个方向做同样的工作吗?只是直线?
回复

使用道具 举报

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:59:17 | 显示全部楼层
  1. (defun c:vv15 (/ pt)
  2.    (command "TEXT" "S" "ISO" "0,25,0" "125" "0" "KV5-15")
  3.      (command "TEXT" "S" "ISO" "0,-150,0" "125" "0" "VV5-15")
  4.        (command "LINE" "0,0,0" "540,0,0" "")
  5.      (command "-BLOCK" "v15" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  6. (princ)
  7. )
  8. (defun c:vv18 (/ pt)
  9.    (command "TEXT" "S" "ISO" "0,25,0" "125" "0" "KV5-15")
  10.      (command "TEXT" "S" "ISO" "0,-150,0" "125" "0" "VV5-15")
  11.        (command "LINE" "0,0,0" "540,0,0" "")
  12.      (command "-BLOCK" "v18" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  13. (princ)
  14.   
  15. )
  16. (defun c:ss50 (/ pt)
  17.    (command "TEXT" "S" "ISO" "0,25" "125" "0" "S1-50")
  18.      
  19.        (command "LINE" "0,0,0" "540,0" "")
  20.      (command "-BLOCK" "ss50" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  21. (princ)
  22. )
  23. (defun c:ss75 (/ pt)
  24.    (command "TEXT" "S" "ISO" "0,25" "125" "0" "S1-75")
  25.      
  26.        (command "LINE" "0,0,0" "540,0" "")
  27.      (command "-BLOCK" "ss50" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  28. (princ)
  29. )
  30. (defun c:ss110 (/ pt)
  31.    (command "TEXT" "S" "ISO" "0,25" "125" "0" "S1-110")
  32.      
  33.        (command "LINE" "0,0,0" "540,0" "")
  34.      (command "-BLOCK" "ss50" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  35. (princ)
  36. )
  37. (defun c:dd110 (/ pt)
  38.    (command "TEXT" "S" "ISO" "0,25" "125" "0" "D2-110")
  39.      
  40.        (command "LINE" "0,0,0" "540,0" "")
  41.      (command "-BLOCK" "ss50" "270,0" "BOX" "700,700,0" "-700,-700,0" "")
  42. (princ)
  43. )
  44. (defun c:skapablock (/ pt)
  45.    (command "vv15" "vv18" "ss50" "ss75" "ss110" "dd110")
  46.      
  47.       
  48. (princ)
  49. )

 
劫持我自己的线程以获取其他信息:
 
除了最后一个应该调用所有其他函数的函数外,所有函数都工作。我该怎么做?它只是说他们都有未知的命令。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:02:54 | 显示全部楼层
(VV15)(VV1)等
回复

使用道具 举报

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:06:27 | 显示全部楼层
非常感谢。有人可以发布垂直而不是水平的线条脚本吗?我不知道怎么做。如果有人这么做,我会非常感激。
 
再次感谢您的帮助。意味着很多
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:10:11 | 显示全部楼层
只需将使用0.0角度的代码更改为(/pi 2.0)
回复

使用道具 举报

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:14:27 | 显示全部楼层
 
原始代码:
  1. ; lisp to draw hor lines plus 45's between 2 points
  2. ; By BIGAL Jan 2012
  3. (defun c:horbend ()
  4. (setq pt1 (getpoint "\npick 1st point on terminal bar"))
  5. (setq pt2 (getpoint "\npick 2nd point "))
  6. ; ang2 is horiz lines ang3 is 45 lines
  7. (setq ang1 (angle pt1 pt2))
  8. (cond
  9. ((> ang1 4.412388)(setq ang2 0.0)(setq ang3 (* 0.75 pi)))
  10. ((> ang1 pi)(setq ang2 pi)(setq ang3 (* 0.25 pi)))
  11. ((> ang1 (/ pi 2.0))(setq ang2 PI)(setq ang3 (* 0.75 pi)))
  12. ((> ang1 0.0)(setq ang2 0.0)(setq ang3 (* 0.25 pi)))
  13. )
  14. (setq pt3 (polar pt1 ang2 20.0))
  15. (setq pt4 (polar pt2 ang3 20.0))
  16. (setq pt5 (inters pt1 pt3 pt2 pt4 nil))
  17. (command "line" pt1 pt5 pt2 "")
  18. )
  19. (princ)

 
 
我的编辑:
 
  1. ; lisp to draw hor lines plus 45's between 2 points
  2. ; By BIGAL Jan 2012
  3. (defun c:hg ()
  4. (setq pt1 (getpoint "\npick 1st point on terminal bar"))
  5. (setq pt2 (getpoint "\npick 2nd point "))
  6. ; ang2 is horiz lines ang3 is 45 lines
  7. (setq ang1 (angle pt1 pt2))
  8. (cond
  9. ((> ang1 4.412388)(setq ang2 (/ pi 2.0))(setq ang3 (* 0.75 pi)))
  10. ((> ang1 pi)(setq ang2 pi)(setq ang3 (* 0.25 pi)))
  11. ((> ang1 (/ pi 2.0))(setq ang2 PI)(setq ang3 (* 0.75 pi)))
  12. ((> ang1 (/ pi 2.0))(setq ang2 (/ pi 2.0))(setq ang3 (* 0.25 pi)))
  13. )
  14. (setq pt3 (polar pt1 ang2 20.0))
  15. (setq pt4 (polar pt2 ang3 20.0))
  16. (setq pt5 (inters pt1 pt3 pt2 pt4 nil))
  17. (command "line" pt1 pt5 pt2 "")
  18. )
  19. (princ)

 
 
我一定很愚蠢,但我做不到。
 
 
只能在一个方向上工作,并且向下和向右。
 
截图:
 
 

                               
登录/注册后可看大图
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:18:19 | 显示全部楼层
(setq ang2(/pi 2.0))我建议您阅读一下LISP编程,这样您就可以理解代码行在做什么,而不仅仅是让人们编写代码。
回复

使用道具 举报

16

主题

40

帖子

24

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 09:19:25 | 显示全部楼层
你好
我喜欢第二个代码,但我想有可能
以度为单位输入角度
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 07:53 , Processed in 0.696723 second(s), 80 queries .

© 2020-2025 乐筑天下

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