Autolisp编程中,如果主函数里面要调用自己编写的指令,格式是什么样的?对于defun c:name(),这里面的参数

Autolisp编程中,如果主函数里面要调用自己编写的指令,格式是什么样的?对于defunc:name(),这里面的参数可以缺省吗?可不可以在自定义指令里面直接使用主函数... Autolisp编程中,如果主函数里面要调用自己编写的指令,格式是什么样的?对于defun c:name(),这里面的参数可以缺省吗?可不可以在自定义指令里面直接使用主函数里面的变量?主函数里面的变量怎样才能被自定义指令调用?有没有参数传递? 展开
 我来答
美妙又虔敬丶多宝鱼7603
推荐于2018-05-04 · TA获得超过266个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:199万
展开全部
调用自己写的指令,用(c:XX)格式,XX为自己定义的指令.
defun c:name() 参数的缺省?是默认值还是?是指指令函数里的变量的值么?
在自定义指令里可以使用主函数的变量,在主函数中的(defun XX (a b / c d)..)中,a b 为调用函数必须的变量,c d为主函数的内部变量,内部变量即只在本函数中使用,其它程序或函数无法取得该变量的值,若是你要用的自定义指令里的变量在c d的位置,则无法直接使用主函数的变量.
最后一个问题同上,只要需调用的变量不是函数的内部变量(即不在c d位置),都可以直接调用.无需传递.
追问
可不可以提供一个画立方体的autolisp代码呢?
追答
你的画立方体的问题我已在另一个问题上回答。
igz16qhi
2011-04-09 · TA获得超过382个赞
知道小有建树答主
回答量:609
采纳率:0%
帮助的人:424万
展开全部
的连线为轴会有无数个坐标系可以满足! 三点确定一个平面,同样要确定唯一坐标系也是需要三点的!
代码给你,如果第三点不确定,只能保证给定的两点转换后坐标是对的!
(defun c:ducs()
(setq os (getvar "osmode"))
(setq cm (getvar "cmdecho"))
(setvar "osmode" 9)
(setvar "cmdecho" 0)
(command "ucs" "w")
(setq p1 (getpoint "\n请选取第一点P1:"))
(setq p2 (getpoint "\n请选取第二点P2:"))
(setq p3 (getpoint "\n请选取第三点P3:"))
(setvar "osmode" 0)
(initget 1 )
(setq s1 (getpoint "\n请输入第一点P1实际坐标x1,y1,z1:"))
(initget 1 )
(setq s2 (getpoint "\n请输入第二点P2实际坐标x2,y2,z2:"))
(initget 1 )
(setq s3 (getpoint "\n请输入第三点P3实际坐标x3,y3,z3:"))
(setq l1 (distance p1 p2))
(setq l2 (distance s1 s2))
(setq x "Yes")
(if (> (abs (- l1 l2)) 1);误差控制
(progn
(alert "数据误差较大请点后选择是否继续")
(initget 1 "Yes No")
(setq x (getkword "\n是否继续? (Yes 或 No)"))
)
)
(IF (= "Yes" X)
(progn
(setq ltm (ssadd))
(command "line" "0,0,0" "1,0,0" "")
(ssadd (entlast) ltm)
(command "line" "0,0,0" "0,1,0" "")
(ssadd (entlast) ltm)
(command "align" ltm "" s1 p1 s2 p2 s3 p3)
(setq LINDAT (ssname ltm 0))
(setq LINdate (entget LINDAT))
(setq uc1 (cdr (assoc '10 LINdate)))
(setq uc2 (cdr (assoc '11 LINdate)))
(setq LINDAT (ssname ltm 1))
(setq LINdate (entget LINDAT))
(setq uc3 (cdr (assoc '11 LINdate)))
(command "erase" ltm "")
(command "ucs" "3" uc1 uc2 uc3)
)
)
(setvar "osmode" os)
(setvar "cmdecho" cm)
(princ)
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式