Wall Poche口齿不清
我知道这是怎么回事,只是无法编写代码。我想知道是否有人可以帮忙。基本上,你会选择3分。前2个决定宽度,第3个决定长度。然后,它将使用宽度和长度创建一个多边形。我知道这听起来很奇怪,但这真的会有帮助。谢谢 像这样的?
;;; 3 Points Polygon (11-VII-2012)
(defun c:3PP( / point1st point2nd point3rd)
(while (and (setq point1st (getpoint "\nPick insertion point: "))
(setq point2nd (getpoint point1st "\nIndicate width: "))
(setq point3rd (getpoint point1st "\nIndicate length ")))
(command "_RECTANGLE" "_non" point1st
"_non" (list (+ (carpoint1st) (distance point1st point3rd))
(+ (cadr point1st) (distance point1st point2nd))))
)
(princ)
) 有点。它绘制了一个矩形。我需要的是一条折线。 上传一张显示你需要的图片。 矩形只不过是一个多段线实体。 这有帮助吗?
所以你实际上是在寻找一条宽度不同于0的单段多段线? 对的宽度将由选择的前2个点确定。
我知道图像看起来与我解释的有点不同,但老实说,我所需要的只是创建它的基本代码。我可以调整它,让它看起来像我想要的那样。 这
(defun c:Test (/ p1 p2 vl gr) (vl-load-com)
(if (and (setq p1 (getpoint "\n Specify first point :"))
(setq p2 (getpoint p1 "\n Next point :"))
)
(progn
(vl-cmdf "_.pline" "_non" p1 "_non" p2 "")
(setq vl (vlax-ename->vla-object (entlast)))
(while (eq (car (setq gr (grread t 15 0))) 5)
(redraw)
(grdraw p1 (polar p1 (+ (angle p1 p2) (/ pi 2.)) (distance p1 (cadr gr))) 1 0)
(vla-put-constantwidth vl (distance p1 (cadr gr)))
)
)
(princ)
)
(redraw)
(princ)
)
这是一种有趣的方式。似乎这两个点定义了长度,然后它有一个橡胶带效应,它决定了宽度。如果有一种方法可以输入宽度或为宽度选择2个点,那就太好了。
页:
[1]
2