0 Members and 1 Guest are viewing this topic.
You can take a look with command (command "lengthen" "dy") but it works only with lines. I look for same for polylines
Quote from: cadplayer on May 21, 2012, 09:23:02 AMYou can take a look with command (command "lengthen" "dy") but it works only with lines. I look for same for polylinesWhich version ACad are you using? My Vanilla 2012 works fine with the Lengthen command on polylines.
Yep, I always see it as "Vanilla ... like in ice-cream". I.e. the plain without frills.
(defun sel (/;;; l1;;; l2;;; p1;;; p2;;; p3;;; p4;;; p5 ) (if (not c:cal)(arxload "geomcal")) (while (not (and (setq l1 (car (entsel "\nSelect line 1! ")) l2 (car (entsel "\nSelect line 2! ")) p1 (cdr (assoc 10 (entget l1))) p2 (cdr (assoc 11 (entget l1))) p3 (getpoint "\nSelect arc point! ") p4 (cdr (assoc 10 (entget l2))) p5 (cdr (assoc 11 (entget l2))) ) ) ) ) )(defun c:calc (/;;; a1;;; a2;;; a3;;; a4 ) (sel) (setq a1 (cal "ang (p1,p2)") a2 (cal "ang (p4,p5)") a3 (- 360 a1 a2) a4 (- 180 a3) ) )
You īre right !(defun c:test () (vl-cmdf "_circle" "_3p" "_tan" pause "_tan" pause pause)) is great but I donīt want a circle I need a arc between the lines. Marco I couldnīt find my case in your link.
(defun perp (pt1 pt2 pt3 /) (inters pt1 pt2 pt3 (polar pt3 (+ (angle pt1 pt2) (/ pi 2.)) 1000.) nil))(defun c:ArcTTP (/ l1 l2 pt l1a l1b l2a l2b ptC en ed) (if (and (setq l1 (entsel "\nPick first line: ")) (setq l2 (entsel "\nPick second line: ")) (setq pt (getpoint "\nPick point passing through circle: "))) (progn (command "._circle" "_3P" "_tan" (cadr l1) "_tan" (cadr l2) "_non" pt) (setq ed (entget (setq en (entlast)))) (entdel en) (setq ptC (cdr (assoc 10 ed)) l1a (vlax-curve-getClosestPointTo (car l1) (cadr l1)) l1b (vlax-curve-getPointAtParam (car l1) (fix (vlax-curve-getParamAtPoint (car l1) l1a))) l2a (vlax-curve-getClosestPointTo (car l2) (cadr l2)) l2b (vlax-curve-getPointAtParam (car l2) (fix (vlax-curve-getParamAtPoint (car l2) l2a)))) (command "._ARC" "_Non" (perp l1a l1b ptC) "_Non" pt "_Non" (perp l2a l2b ptC)))) (princ))
(defun perp (pt1 pt2 pt3 /) (inters pt1 pt2 pt3 (polar pt3 (+ (angle pt1 pt2) (/ pi 2.)) 1000.) nil))(defun c:ArcTTP (/ l1 l2 pt l1a l1b l2a l2b ptC en ed ) (if (and (setq l1 (entsel "\nPick first line: ")) (setq l2 (entsel "\nPick second line: ")) (setq pt (getpoint "\nPick point passing through circle: "))) (progn (command "._circle" "_3P" "_tan" (cadr l1) "_tan" (cadr l2) "_non" pt) (setq ed (entget (setq en (entlast)))) (entdel en) (setq ptC (cdr (assoc 10 ed)) l1a (vlax-curve-getClosestPointTo (car l1) (cadr l1)) l1b (vlax-curve-getPointAtParam (car l1) (fix (vlax-curve-getParamAtPoint (car l1) l1a))) l2a (vlax-curve-getClosestPointTo (car l2) (cadr l2)) l2b (vlax-curve-getPointAtParam (car l2) (fix (vlax-curve-getParamAtPoint (car l2) l2a)))) (command "._ARC" "_Non" (setq l1a (perp l1a l1b ptC)) "_Non" pt "_Non" (setq l2a (perp l2a l2b ptC))) (entdel (car l1)) (entmake (list (cons 0 "LINE") (cons 8 (getvar "clayer")) (cons 10 l1a) (cons 11 l1b) ) ) (entdel (car l2)) (entmake (list (cons 0 "LINE") (cons 8 (getvar "clayer")) (cons 10 l2a) (cons 11 l2b) ) ) ) ) (princ) )