liu_kunlun 发表于 2006-3-16 19:14:00

怎样构造stretch命令?

怎样在autolisp 内部完成stretch命令?

liu_kunlun 发表于 2006-3-20 09:53:00

解释一下

在autolisp内部,构造stretch(拉伸)命令,使该命令在autolisp程序内部完成。比如画线命令可以这样构造:(command "line" pt1 pt2 ""),但stretch命令包含拉伸的实体选择集、拉伸框、拉伸向量(或拉伸的起点、止点),试验了很多组合,都没有成功,望高手执教,非常感谢!

ljpnb 发表于 2006-3-20 11:27:00

(defun c:test ()<BR>&nbsp; (command "stretch"<BR>&nbsp;&nbsp;&nbsp; "c"<BR>&nbsp;&nbsp;&nbsp; (setq p0 (getpoint))<BR>&nbsp;&nbsp;&nbsp; (getcorner p0)<BR>&nbsp;&nbsp;&nbsp; ""<BR>&nbsp;&nbsp;&nbsp; (setq p1 (getpoint))<BR>&nbsp;&nbsp;&nbsp; (getpoint p1)<BR>&nbsp; )<BR>)

liu_kunlun 发表于 2006-3-20 13:17:00

如此又怎样控制选择集

谢谢楼上的指点。问题是:在autolisp内部完成stretch的目的,是要在autolisp内部能控制该命令中包括选择集在内的参数,如果控制不了,构造这个命令的意义就不大。

ljpnb 发表于 2006-3-20 13:28:00

<P>3楼的样例中,如果程序直接提供需要的点,那么就可以直接由程序来完成操作了。至于参数那么看你需要什么才加什么,选择集也是一样,你需要添加什么就加什么。</P>

liu_kunlun 发表于 2006-3-20 16:47:00

<P>谢谢楼上对这个问题的讨论。我想这样解决:</P>
<P>(command "_STRETCH" "C" pt1 pt2 "R" "C" pt1 pt2 "A" ss "" pt3 pt4)</P>
<P>其中,pt1 pt2 为拉伸窗的2点;用"R" "C" pt1 pt2 去掉拉伸窗选到的实体;再用"A" ss 添加需要拉伸的实体,ss是一个选择集;pt3 pt4为拉伸向量参数,这样程序对所有参数都可控。</P>

尘缘一生 发表于 2020-3-23 17:35:36

liu_kunlun 发表于 2006-3-20 16:47
谢谢楼上对这个问题的讨论。我想这样解决:
(command "_STRETCH" "C" pt1 pt2 "R" "C" pt1 pt2 "A" ss ""...

这个不错,实现没有?
页: [1]
查看完整版本: 怎样构造stretch命令?