Dadgad 发表于 2022-7-6 08:32:06

谢天谢地,时间不会成为问题。有没有可能在86400秒内就掌握不了的话题?
我当然希望不会,因为我已经为周五早上预约了手术室,那时我将在自己身上第一次尝试额叶切除术。
什么是肺叶?
 
就像那个男人说的,“我宁愿面前有一瓶酒,也不要额叶切除术”。
 
我钦佩你的信念,衷心祝愿你一切顺利!

Dadgad 发表于 2022-7-6 08:35:50

做得好,MSasu,你将帮助OP大显身手!

SLW210 发表于 2022-7-6 08:38:14

亚历克斯306,
 
请阅读代码发布指南并编辑您的帖子。

MSasu 发表于 2022-7-6 08:43:57

如承诺的那样,请在下面找到评论代码;我试着给你解释每一行的意思;也对其他人可能同意或不同意的解决方案发表了一些评论。
如果您先学习一些AutoLISP教程,就会更好地理解这段代码。
[颜色=蓝色];定义一个新的AutoCAD命令,括号中的项目是代码中使用的变量;这被称为变量的定位,并防止与其他例程发生冲突(defun c:垫片(/c CI CMDE D ENT INPL K L MPL N OSM OUTPL P1 P12F P14F P2 P21F P23F P3 P32F P34F P41F P43F QAF R1 R2 SS SSCIS SSMPL W)[颜色=蓝色];保留OSMODE系统变量(setq osm(getvar'OSMODE))[颜色=蓝色]的当前值;禁用所有OSNAP模式,以避免拾取或添加点时的干扰;可以在代码中移动到下面,因为可能有助于输入(setvar“osmode 0);保留CMDECHO系统变量(setq cmde(getvar'CMDECHO))[颜色=蓝色]的当前值;禁用提示器上的命令回声(主要是美观的)(setvar'cmdecho 0);询问用户在屏幕上选择一个点;将这些坐标存储在名为“C”(setq C(getpoint“\n垫片中心:”)[颜色=蓝色]的变量中;要求用户输入距离,存储在名为“L”的变量中;作为值输入或从插入点动态输入(setq L(getdist C“\n内半边长:);要求用户输入距离,存储在名为“W”的变量中;作为值或在两点之间动态输入(setq W(getdist“\n恒定壁厚:)[颜色=蓝色];禁用输入O(位1)或负值(位2)进行下一次询问(初始化获取6);要求用户输入整数,存储在名为“N”的变量中;重复问题,直到满足特定条件(应大于3);(由于滤波器在第一次错误输入后丢失,因此写得很差)(而(

CyberAngel 发表于 2022-7-6 08:46:50

对不起,亚历克斯,你不可能一夜之间学会AutoLISP。当我第一次接触它时,我已经对标准LISP和AutoCAD有了很好的了解,这仍然是一个挑战。如果你真的认真想学,你就得卷起袖子去做实验。选择任务并将其自动化。此外,还有很多优秀代码的示例可供挑选。祝你好运

alex306 发表于 2022-7-6 08:47:33

伙计们,你们的帮助真是太棒了,我太感谢你们了,我会尽我所能地学习所有的教程,直到我的头脑清醒为止。有我可以买的书吗?很多教程告诉我要参考autocad参考指南或其他什么?我试过找这个,但找不到。。。关于锻炼,你们有什么建议吗?从基础开始,进入更高级的绘图。。。。我从这里开始,一路努力,所以希望戴上眼镜,继续努力,变得更有知识。http://www.afralisp.net/autolisp/tutorials/the-basics-part-1.php
 
我真的很感谢你们抽出时间来帮助我理解,并感谢你们告诉我哪里可以得到教程。
 
在编码方面,你能做一些测试,然后做更多的事情,看看会发生什么(如果你理解我的意思),或者你必须做整个事情,然后检查它吗?我觉得我更像一个视觉学习者,所以这就是我如何掌握任何设计软件。
 
感谢大家在今晚和本周剩余的时间里所做的一切。

BIGAL 发表于 2022-7-6 08:53:36

暂时不要加载Autocad帮助,但键入help选择所有文档自定义Lisp,这将有助于解释。
 
你的测试!阅读Getpoint Getreal&Polar,然后在第一次尝试提示时绘制矩形,使用命令行pt1 pt2 pt3“c”,而不是entmake对新手来说更简单。在帮助中有一个页面,每个命令都按字母顺序列出,并有示例。
 
和其他人一样,我已经写了30年的代码并且还在学习。

MSasu 发表于 2022-7-6 08:55:25

那么,您已经开始学习AutoLISP课程了。这是个好消息!
在AfraLISP上完成教程后,我建议您留出一些时间,分析有关VLEditor的帮助,这将在以后调试代码时对您有很大帮助。
你们只需在论坛上搜索就可以找到其他学习资源。帮助也写得很好,非常有用;每当你遇到一个新函数时,花一些时间阅读他的帮助页面,理解它并在VLEditor的控制台上进行一些测试。
 
关于编写代码的方法,这些被称为最佳实践;阅读本变量命名指南(专用于.Net,但原则是通用的)。
尝试将每个例程分成几个小单元,并确保每个例程在继续之前都正常工作(称为单元测试)。
 
 
最后,我建议您在完成AfraLISP的基本教程后做这个练习:绘制下图,让用户分别指出左下角的插入点和水平、垂直尺寸。在此处发布代码以进行验证。
 

BIGAL 发表于 2022-7-6 08:58:24

谢谢Msasu的图片,非常快速,非常有用
 
Ps Alex 306使用提示!

MSasu 发表于 2022-7-6 09:01:12

@BIGAL刚刚注意到我们提出了类似的练习。如果alex306能尽快发布他/她的解决方案,我将不胜感激。
 
如果主持人将此线程移动到AutoLISP部分,可能会更好。
页: 1 [2]
查看完整版本: 了解这一点。。。