乐筑天下

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

[编程交流] 寻求一些帮助

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:35:00 | 显示全部楼层 |阅读模式
希望我来到了正确的地方,我一直在学习lisp,做得很好,非常基本的简单的东西,并决定提高一点,尝试更复杂的绘图。。。至少对我来说!,有人能告诉我我的分数、变量、数学是否正确吗?我不确定我做错了什么,我得到了一个零错误
我认为这与数学有关,无论如何autolisp都会在编辑器中单步执行代码,并在出现错误或不起作用时告诉您。我上传了我试图用lisp绘制的图形以及lisp文件。。。非常感谢您的帮助
门图纸
门LSP
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:48:47 | 显示全部楼层
也许是这样?
 
只需遵循您的方法:
 
  1. ;;;; door maker.lsp
  2. ;;; starting the program
  3. (defun c:door (/ *error* Line BR HGT IPT LR P1 P2 P3 P4 P5 P6 RR SP SPT TR WID)
  4. (defun *error* (msg)
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ))
  8. (defun Line (p1 p2)
  9.    (entmakex (list (cons 0 "LINE")
  10.                    (cons 10 p1)
  11.                    (cons 11 p2))))
  12. (if (and (setq sPt (getpoint "\nPlease Pick Your Starting Point: "))
  13.           (setq wid (getdist "\nDoor Width: " spt))
  14.           (setq hgt (getdist "\nDoor Height: " spt))
  15.           (setq lr  (getdist "\nLeft Revel: "))
  16.           (setq rr  (getdist "\nRight Revel: "))
  17.           (setq tr  (getdist "\nTop Revel: "))
  18.           (setq br  (getdist "\nBottom Revel: ")))
  19.    (progn
  20.      (setq p1  (list    (car sPt)             (+ (cadr sPt) hgt))
  21.            p2  (list (+ (car sPt) wid)           (cadr sPt))
  22.            p3  (list (+ (car sPt) wid)        (+ (cadr sPt) hgt)))
  23.      (setq iPt (list (+ (car sPt) lr)         (+ (cadr sPt) br))
  24.            p4  (list    (car iPt)             (+ (cadr sPt) (- Hgt tr)))
  25.            p5  (list (+ (car sPt) (- wid rr))    (cadr iPt))
  26.            p6  (list    (car p5)                 (cadr p4)))
  27.      (mapcar 'line (list sPt sPt p1 p3 iPt iPt p4 p6)
  28.                    (list  p1  p2 p3 p2  p4  p5 p6 p5))))
  29. (princ))

 
我不确定使用getcorner是否更直观?也许可以考虑使用polar
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:57:50 | 显示全部楼层
玩得很开心
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:door [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* LINE BR CP GR L1 L2 LR P1 P2 P3 P4 P5 P6 PT RR TR[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  4.    [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#a52a2a]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b]
  5.        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\n** Error: "[/color][/b] msg [b][color=#a52a2a]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] Line [b][color=RED]([/color][/b]p1 p2[b][color=RED])[/color][/b]
  8.    [b][color=RED]([/color][/b][b][color=BLUE]entmake[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#a52a2a]"LINE"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]10[/color][/b] p1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]11[/color][/b] p2[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lr [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#a52a2a]"\nSpecify Left Revel: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] rr [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#a52a2a]"\nSpecify Right Revel: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tr [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#a52a2a]"\nSpecify Top Revel: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] br [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#a52a2a]"\nSpecify Bottom Revel: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nPick Corner Point: "[/color][/b] [b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  15.      [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]5[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] gr [b][color=RED]([/color][/b][b][color=BLUE]grread[/color][/b] [b][color=DARKRED]'[/color][color=Blue]t[/color][/b] [b][color=#009900]13[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  16.                  [b][color=RED]([/color][/b][b][color=BLUE]listp[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cP [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] gr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.        [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b][b][color=RED])[/color][/b]
  18.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cP [b][color=RED]([/color][/b][b][color=BLUE]trans[/color][/b] cP [b][color=#009900]1[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] p1 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] cP[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  20.              p2 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] cP[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21.              p3 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b]  pt[b][color=RED])[/color][/b] lr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] br[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  22.              p4 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b]  pt[b][color=RED])[/color][/b]     [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b]  cP[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b]  pt[b][color=RED])[/color][/b] rr[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  23.                       [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b]     [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] cP[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] tr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  24.              p5 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] p3[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] p4[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.              p6 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] p4[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] p3[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.        [b][color=RED]([/color][/b][b][color=BLUE]grvecs[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-3[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] l1 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] pt p1 pt p2 p1 cP p2 cP[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  27.                                 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] l2 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] p3 p5 p3 p6 p5 p4 p6 p4[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  28.      [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] l1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] l2[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  29.        [b][color=RED]([/color][/b]line [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] l1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] l1[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  30.        [b][color=RED]([/color][/b]line [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] l2[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] l2[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] l1 [b][color=RED]([/color][/b][b][color=BLUE]cddr[/color][/b] l1[b][color=RED])[/color][/b] l2 [b][color=RED]([/color][/b][b][color=BLUE]cddr[/color][/b] l2[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  31. [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  32.                           
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:14:37 | 显示全部楼层
我非常感谢你,你的编码比我现在所做的要先进得多,但我确实理解你所做的一半。。我工作得很好,我学到了更多。。。我会说任何教你编码方法的好书。。你的男人
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:18:28 | 显示全部楼层
嗯,老实说,第二个只是在炫耀一点——这不是一个实际的例子,因为OSnap和大多数其他AutoCAD功能在grread循环中被禁用(这就是它使用的)。
 
至于学习,我从论坛上学到了几乎所有的知识(当然,我从一些教程网站上学到了最基本的知识),但一旦你开始学习,你想问的大多数问题都已经在论坛上得到了回答,如果没有,你可以直接问他们——这让学习语言变得更快。
 
我给你们的一个提示是,开始研究entmake/entmakex函数和实体的DXF组码。这给了您修改和创建实体的强大能力,事实上,这是最快的方式。
 
这里可以找到DXF代码的参考,我在这里创建了一个关于如何使用entmake/entmakex创建实体的线程。此外,这里和这里还解释了如何通过DXF操作实体。
 
祝你玩得开心,如果有什么你不喜欢的,尽管问。
 
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:30:47 | 显示全部楼层
非常感谢我会调查这一切的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:35:29 | 显示全部楼层
 
不客气,巴特
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:35 , Processed in 0.678029 second(s), 66 queries .

© 2020-2025 乐筑天下

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