线路定位在限制范围内
如图所示:我如何在lisp的帮助下做到这一点?试图在AutoCAD上定位它,但不知道如何在没有尝试和错误的情况下定位。脑死亡阶段。请帮忙。
轴0X和0Y是极限。
你好,Marek
我前一段时间试图解决这个问题,但我无法使用lisp找到精确的数学解,而只是一个(好的)近似值。
如果你感兴趣的话,我会发布它,尽管它的排列略有不同:从已知点H开始的线垂直于线段AB的中点。
无论如何,您可以使用约束或动态块来实现相同的结果。
括号。图纸 Stefan,任何解决这个问题的方法都是非常必要的。请把它寄出去。
我确实尝试过约束。只是想知道AutoCAD函数“grread”可以让对象沿直线滑动(?)把它和约束结合起来可能会奏效,这对我来说仍然很神奇。 我的尝试(x和y正)。
(defun c:test ( / p ab p1 p2 d )
(setq p (getpoint "Pick a point "))
(setq ab (getdist "\nLength Line"))
(if (< ab (cadr p))
(progn
(setq p1 (list 0.0 ab))
(setq d ab)
(while (not (equal (cadr p2) 0.0 1e-12))
(setq p2 (polar p1 (- (angle p1 p) (* pi 0.5)) ab))
(if (> (car p2) 0.0)
(cond
( (< (cadr p2) 0.0) (setq p1 (polar p1 (* pi 0.5) (setq d (* d 0.5)))) )
( (> (cadr p2) 0.0) (setq p1 (polar p1 (* pi 1.5) (setq d (* d 0.5)))) )
)
)
)
(setq p1 (list 0.0 (cadr p1)))
(setq p2 (list (car p2) 0.0))
(entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2)))
(grdraw p p1 1 1)
(princ (strcat "\nDistance = " (rtos (distance p p1))))
)
(alert (strcat "Out of range" "\nLength max = " (rtos (cadr p))))
)
(princ)
)
令人惊叹的非常感谢。
我们快到了。
那个么实际上选择x和y呢,因为它总是远离标准的0,0坐标,并且去掉了拾取第一个点的位置限制?
类似于:
拾取点:
拾取x线:(水平)
拾取y线:(垂直)
输入线条长度: 经过几次化妆操作(移动、旋转、与0,0对齐)后,我实现了我所需要的。
情人节的大吻。非常感谢。
页:
[1]