0 Members and 1 Guest are viewing this topic.
(setq *D1* 10)(setq *D2* 15)(setq L1 (entsel "\n>>>Pick First line :"))(setq L2 (entsel "\n>>>Pick Second line :"))......
(vl-load-com)(setq *D1* 10)(setq *D2* 15)(setq L1(entsel "\n>>>Pick First Line:"))(setq L2(entsel "\n>>>Pick Second Line:"))(setq pt1(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L1))(cadr L1)nil))(setq pt2(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L2))(cadr L2)nil))(setq interpoint (inters pt1(polar pt1(+(angle(cadr L1)pt1)(* 0.5 pi)) 5.0) pt2(polar pt2(+(angle(cadr L2)pt2)(* 0.5 pi)) 5.0) nil ))(setq pt1-1 (polar pt1(angle interpoint pt2) *D1*))(setq pt2-1 (polar pt2(angle interpoint pt1) *D2*))(setq p (inters pt1-1(polar pt1-1(+ (angle pt1-1 pt1) (* 0.5 pi)) 5) pt2-1(polar pt2-1(+ (angle pt2-1 pt2) (* 0.5 pi)) 5) nil ))
(setq *D1* 10)(setq *D2* 15)(setq L1(entsel "\n>>>Pick First Line:"))(setq L2(entsel "\n>>>Pick Second Line:"))(setq pt1(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L1))(cadr L1)nil))(setq pt2(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L2))(cadr L2)nil))(setq interpoint (inters pt1(polar pt1(+(angle(cadr L1)pt1)(* 0.5 pi)) 5.0) pt2(polar pt2(+(angle(cadr L2)pt2)(* 0.5 pi)) 5.0) nil ))(setq pt1-1 (polar pt1(angle interpoint pt2) *D1*))(setq pt2-1 (polar pt2(angle interpoint pt1) *D2*))(setq p (inters pt1-1(polar pt1-1(+ (angle pt1-1 pt1) (* 0.5 pi)) 5) pt2-1(polar pt2-1(+ (angle pt2-1 pt2) (* 0.5 pi)) 5) nil ))(defun Circle (cen rad) (entmakex (list (cons 0 "CIRCLE") (cons 10 cen) (cons 40 rad))))(Circle p 1)
At with it goes. Bei mit geht es.Code: [Select](setq *D1* 10)(setq *D2* 15)(setq L1(entsel "\n>>>Pick First Line:"))(setq L2(entsel "\n>>>Pick Second Line:"))(setq pt1(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L1))(cadr L1)nil))(setq pt2(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L2))(cadr L2)nil))(setq interpoint (inters pt1(polar pt1(+(angle(cadr L1)pt1)(* 0.5 pi)) 5.0) pt2(polar pt2(+(angle(cadr L2)pt2)(* 0.5 pi)) 5.0) nil ))(setq pt1-1 (polar pt1(angle interpoint pt2) *D1*))(setq pt2-1 (polar pt2(angle interpoint pt1) *D2*))(setq p (inters pt1-1(polar pt1-1(+ (angle pt1-1 pt1) (* 0.5 pi)) 5) pt2-1(polar pt2-1(+ (angle pt2-1 pt2) (* 0.5 pi)) 5) nil ))(defun Circle (cen rad) (entmakex (list (cons 0 "CIRCLE") (cons 10 cen) (cons 40 rad))))(Circle p 1)
Obtain the endpoints of each selected lineCalculate the line intersection point (using inters with the end points)Calculate a unit vector from the intersection point to the opposite end point of each lineScale each vector by the require distance (d1 & d2)Add the vectors to obtain the required point.
(defun c:Test ( /) (vl-load-com) (setq *D1* (getreal "\nAbstand von Wand D1 eingeben: ")) (setq *D2* (getreal "\nAbstand von Wand D2 eingeben: ")) ;;(setq *D1* 10);;(setq *D2* 15)(setq L1(entsel "\n>>>Pick First Line:"))(setq L2(entsel "\n>>>Pick Second Line:"))(setq pt1(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L1))(cadr L1)nil))(setq pt2(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L2))(cadr L2)nil))(setq interpoint (inters pt1(polar pt1(+(angle(cadr L1)pt1)(* 0.5 pi)) 5.0) pt2(polar pt2(+(angle(cadr L2)pt2)(* 0.5 pi)) 5.0) nil ))(setq pt1-1 (polar pt1(angle interpoint pt2) *D1*))(setq pt2-1 (polar pt2(angle interpoint pt1) *D2*))(setq p (inters pt1-1(polar pt1-1(+ (angle pt1-1 pt1) (* 0.5 pi)) 5) pt2-1(polar pt2-1(+ (angle pt2-1 pt2) (* 0.5 pi)) 5) nil ))(Circle p 10));defun(defun Circle (cen rad) (entmakex (list (cons 0 "CIRCLE") (cons 10 cen) (cons 40 rad))))
Q kdub
Here my testCode: [Select](defun c:Test ( /) (vl-load-com) (setq *D1* (getreal "\nAbstand von Wand D1 eingeben: ")) (setq *D2* (getreal "\nAbstand von Wand D2 eingeben: ")) ;;(setq *D1* 10);;(setq *D2* 15)(setq L1(entsel "\n>>>Pick First Line:"))(setq L2(entsel "\n>>>Pick Second Line:"))(setq pt1(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L1))(cadr L1)nil))(setq pt2(vlax-curve-getClosestPointTo(vlax-ename->vla-object(car L2))(cadr L2)nil))(setq interpoint (inters pt1(polar pt1(+(angle(cadr L1)pt1)(* 0.5 pi)) 5.0) pt2(polar pt2(+(angle(cadr L2)pt2)(* 0.5 pi)) 5.0) nil ))(setq pt1-1 (polar pt1(angle interpoint pt2) *D1*))(setq pt2-1 (polar pt2(angle interpoint pt1) *D2*))(setq p (inters pt1-1(polar pt1-1(+ (angle pt1-1 pt1) (* 0.5 pi)) 5) pt2-1(polar pt2-1(+ (angle pt2-1 pt2) (* 0.5 pi)) 5) nil ))(Circle p 10));defun(defun Circle (cen rad) (entmakex (list (cons 0 "CIRCLE") (cons 10 cen) (cons 40 rad))))
Hier
If you consider a vector has a distance and a direction, the direcrion can be expressed by an X distance and a Y distance, and the hypotenuse of the triangle formed is the vector distance.A unit vector has the triangle hypotenuse reduced to one unit with the X and Y distances modified accordingly.This may help :https://www.khanacademy.org/math/precalculus/vectors-precalc/unit-vectors/v/unit-vector-intro
I can't understand No.3. what is unit vector?
... my math is so bad.
Yep ... a party hat.