albroswift 发表于 2022-7-7 13:55:20

学习AutoLisp

问候语
这个周末的项目学习一两件事。lsp文件。
开始学习教程
http://www.cadtutor.net/tutorials/autolisp/quick-start.php
在阅读了教程后,我尝试了一些示例脚本,其中有很多是有意义的新语言。
CHLAYER按预期工作,将文件放入/脚本目录,加载的文件,工作得很好,正如预期的那样,是我可以经常使用的东西。
尝试了“更改十字线角度”脚本:
 
(defun c:perpdon (/ a bpntl pnt2 angl) (graphscr)
(setq a (entsel))
(setq b (entget (car a)))
(setq pntl (cdr (assoc 10 b)))
(setq pnt2 (cdr (assoc 11 b)))
(setq angl (angle pntl pnt2))
(setvar "snapang" ang1)
(princ)
)
(defun c:perpdoff (setvar "snapang" 0)
(princ)
)

脚本向右选择实体,我选择一行,然后什么也没发生。正交保持0/90
还尝试将脚本“PERPDON”和“PERPDOFF”分开。lsp文件
无论哪种方式,命令“PERPDOFF”总是返回“未知命令按F1寻求帮助”
ACAD 2014
谢谢--

BIGAL 发表于 2022-7-7 14:06:59

要修复()的简单错误,请使用#选项执行代码部分,或在开始时键入在结束时,版主将处理此问题。
 
(defun c:perpdoff () (setvar "snapang" 0)

albroswift 发表于 2022-7-7 14:17:39

感谢您提供关于邮寄代码的说明。尝试添加(),仍然没有乐趣。尝试了一些其他的脚本,他们工作了,想知道这里缺少了什么。


(defun c:perpdon (/ a b pntl pnt2 angl) (graphscr)
(setq a (entsel))
(setq b (entget (car a)))
(setq pntl (cdr (assoc 10 b)))
(setq pnt2 (cdr (assoc 11 b)))
(setq angl (angle pntl pnt2))
(setvar "snapang" ang1)
(princ)
)
(defun c:perpdoff () (setvar "snapang" 0)
(princ)
)

BKT 发表于 2022-7-7 14:21:05

 
代码似乎在“ang”变量中混合了数字“1”和小写“L”。如果您使它们保持一致,这应该可以解决问题(即,使用“ang1”或“angl”)。
 
为了避免混淆,最好将两个“pnt”变量设置为使用数字或字母,但不要使用其中一个。我会使用“pnt1”和“pnt2”。目前“pnt1”实际上是“pntl”,根据使用的字体,很难看出区别。

albroswift 发表于 2022-7-7 14:25:31

你完全正确。更改字体使其非常清晰。只需编辑脚本并重新加载,它就能按预期工作。
谢谢--

BKT 发表于 2022-7-7 14:37:55

很高兴我能帮忙!

BIGAL 发表于 2022-7-7 14:46:33

很好的拿起BKT错过了,你已经习惯了键入PT1,所以不要想寻找打字错误。

BKT 发表于 2022-7-7 14:48:28

 
谢谢你,比加尔-我不久前遇到了同样的拼写错误,我记得找到它花了多长时间!

albroswift 发表于 2022-7-7 14:56:00

自从Tandy 3000成为热门机器以来,他就一直在使用cad,而戈尔还没有发明网络。当然很高兴他这么做了,拥有像这些论坛这样的资源真的打败了早期的BBs。再次感谢您的帮助。
页: [1]
查看完整版本: 学习AutoLisp