Insener07 发表于 2022-7-6 10:55:58

snapang sys变量


我找到了这个lisp例程

(while (not (setq ent (entsel "\nChoose an object: "))));
(setq obj_curv (vlax-ename->vla-object (car ent)))
(cond
((member
(vlax-get-property obj_curv 'ObjectName)
'("AcDbPolyline" "AcDb2dPolyline" "AcDbLine"
"AcDbArc" "AcDbCircle" "AcDbEllipse"
"AcDbSpline" "AcDbRay" "AcDbXline"
)
)
(setq
pt_sel (vlax-curve-getClosestPointTo
obj_curv
(trans (cadr ent) 1 0)
)
param (vlax-curve-getparamatpoint obj_curv pt_sel); how do understand this line
deriv (vlax-curve-getfirstderiv obj_curv param);how do understand this line
)
(setvar "snapang"
(+ (atan (cadr deriv) (car deriv)) (/ pi 2))
)
据我所知,它应该改变垂直于所选对象的十字线的角度。我把一些线改成了红色,似乎这就是原因。但我不明白为什么会这样?。这个param和deriv变量有什么重要意义?
谁能给我解释一下!
谢谢
M

alanjt 发表于 2022-7-6 11:14:48

首先:
http://www.cadtutor.net/forum/showthread.php?t=9184
同样重要的是:
http://www.cadtutor.net/forum/showthread.php?t=9184

alanjt 发表于 2022-7-6 11:22:02

将代码放入VLIDE(内置于AutoCAD中的Visual LISP编辑器),高亮显示有问题的函数,单击问号按钮,将显示帮助。
 
如。
 

Insener07 发表于 2022-7-6 11:34:51

我是ALISP的初学者。。。所以

alanjt 发表于 2022-7-6 11:51:03

我刚刚注意到,你在运行LT吗,因为LISP不能在LT上运行。

Lee Mac 发表于 2022-7-6 11:59:12

艾伦,
 
快速提问:你知道在VLIDE中锁定工具栏的方法吗?他们让我很紧张。。。
 
我不知道你是怎么想的,但是我更喜欢Lucida控制台(10pt,常规)的字体来编写我的代码——看起来“更干净”
页: [1]
查看完整版本: snapang sys变量