如何在cad中画一个封闭的线,并添加一个注记!
小弟是新手,学习lsp才不过几天,现在想使用lsp在cad中画一条封闭的线(点由鼠标输入),不知道该怎么处理,那个高手帮帮我呀,给个思路就行!(我使用的(command "pline" ),然后由鼠标输入点数据。就不知道该怎么做了呀!),顶一下! "封闭的线"是什么意思?最后一点自动封闭吗?
“然后由鼠标输入点数据”,输入的是什么数据?总长?还是什么? ;这个是模拟ACAD命令的
(defun c:tt ()
(command ".PLINE")
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
(princ)
) 老大的程序不能自动闭合啊,看这个如何:
(defun c:tt ()
(setq p0 (getpoint)plist (list))
(while (/= p0 nil)
(setq plist (cons p0 plist ))
(setq p0 (getpoint))
)
(command ".pline")
(foreach n plist
(command n)
)
(command "C")
(princ)
)
请问1楼,需要加什么注记?
画线用 c 结束,然后增加 text 命令,就能标注了 回复 quanguang 的帖子
谢谢大虾,你的代码很好,我也学到了一些,
你的程序在使用时看不到交互操作的结果,只看到最后的结果, 回复 ZZXXQQ 的帖子
谢谢老大,你的代码达到了我的要求,下面是我在你的基础上修改的!
(defun c:tt ()
(command ".PLINE")
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
(command "text" (getpoint "输入注记的位置:") (getint "输入注记大小") 0 "棚房")
(princ)
)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不过我还是想问题两个问题
1.(.pline) 与 (_plie)有不有区别
2.while (> (getvar "CMDACTIVE") 0) (command PAUSE))
这个while语句能不能解释一下呀,不是很明白! 对不起,我点错了,我以为每一个帖子的评分是在上面,结果是在下面。下次一定注意
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
CMDACTIVE是一个系统变量。当程序(如line、pline……)还在运行时它是1,运行完了(比如line好了按右键结束)它变成0。这段的意思是你每点一下,它判断一下你到底画完了没有,没有就pause等你继续画,画完后再执行下边的语句。
页:
[1]
2