0 Members and 1 Guest are viewing this topic.
(defun c:bv ( / brkdist osmode entpt ename ang pt pt1 pt2 )(setq brkdist (* (getvar "dimscale") 0.03125))(setq osmode (getvar "osmode"))(setvar "osmode" 512)(setq entpt (getpoint "\nSelect Line "))(setq ename (ssname (ssget "c" entpt entpt) 0))(if(or(= (cdr (assoc 0 (entget ename))) "LWPOLYLINE")(= (cdr (assoc 0 (entget ename))) "POLYLINE")(= (cdr (assoc 0 (entget ename))) "LINE"))(progn(redraw ename 3)(setvar "osmode" 32)(setqpt (getpoint "\nSelect Intersection ")ang (angle entpt pt)pt1 (polar pt (+ pi ang) brkdist)pt2 (polar pt1 ang (* 2 brkdist)))(redraw ename 4)(command "break" ename pt1 pt2));end progn(progn(alert "Object selected is not a Line or Polyline")(exit));end progn);end if(setvar "osmode" osmode)(princ))
(defun c:bv (/ d ent obj pt2 pt3) (vl-load-com) (while (and (setq ent (entsel "\n Select intersection to break: ")) (/= (cdr (assoc 0 (entget (car ent)))) "INSERT") ) (progn (setq obj (vlax-ename->vla-object (car ent)) d (vlax-curve-getDistAtPoint obj (vlax-curve-getClosestPointTo obj (cadr ent)) ) pt2 (vlax-curve-getPointAtDist obj (+ d (* (getvar 'dimscale) 0.03125)) ) pt3 (vlax-curve-getPointAtDist obj (- d (* (getvar 'dimscale) 0.03125)) ) ) (if (and pt2 pt3) (if (member (cdr (assoc 0 (entget (car ent)))) '("LWPOLYLINE" "POLYLINE" "LINE") ) (command ".break" ent "f" pt2 pt3) ) ) ) ))
(defun c:bv (/ d ent obj pt2 pt3) (while (and (setq ent (entsel "\n Select intersection to break: ")) (/= (cdr (assoc 0 (entget (car ent)))) "INSERT") ) (progn (setq obj (vlax-ename->vla-object (car ent)) d (vlax-curve-getDistAtPoint obj (vlax-curve-getClosestPointTo obj (cadr ent)) ) pt2 (vlax-curve-getPointAtDist obj (+ d (* (getvar 'dimscale) 0.03125)) ) pt3 (vlax-curve-getPointAtDist obj (- d (* (getvar 'dimscale) 0.03125)) ) ) (if (and pt2 pt3) (if (member (cdr (assoc 0 (entget (car ent)))) '("LWPOLYLINE" "POLYLINE" "LINE") ) (command ".break" ent "f" pt2 pt3) ) ) ) ))
(defun c:bv2 ( / brkdist osmode entpt ename ang pt pt1 pt2 )(setq brkdist (* (getvar "dimscale") 0.03125))(setq osmode (getvar "osmode"))(setvar "osmode" 512)(WHILE (setq entpt (getpoint "\nSelect Line ")) (setq ename (ssname (ssget "c" entpt entpt) 0)) (if (or (= (cdr (assoc 0 (entget ename))) "LWPOLYLINE") (= (cdr (assoc 0 (entget ename))) "POLYLINE") (= (cdr (assoc 0 (entget ename))) "LINE") ) (progn (redraw ename 3) (setvar "osmode" 32) (setq pt (getpoint "\nSelect Intersection ") ang (angle entpt pt) pt1 (polar pt (+ pi ang) brkdist) pt2 (polar pt1 ang (* 2 brkdist)) ) (redraw ename 4) (command "break" ename pt1 pt2) );end progn (progn (alert "Object selected is not a Line or Polyline") (exit) );end progn );end if (setvar "osmode" 512) )(setvar "osmode" osmode)(princ))
Give this a whirl....eliminates a few picks for you (if I understand what you are trying to achieve):Code: [Select](defun c:bv (/ d ent obj pt pt2 pt3) (while (and (setq ent (ent_sel "\n Select intersection to break: ")) (/= (cdr (assoc 0 (entget (car ent)))) "INSERT") ) (progn (setq obj (vlax-ename->vla-object (car ent)) pt (vlax-curve-getClosestPointTo obj (cadr ent)) d (vlax-curve-getDistAtPoint obj pt) pt2 (vlax-curve-getPointAtDist obj (+ d (* (getvar 'dimscale) 0.03125)) ) pt3 (vlax-curve-getPointAtDist obj (- d (* (getvar 'dimscale) 0.03125)) ) ) (if (and pt2 pt3) (progn (if (member (cdr (assoc 0 (entget (car ent)))) '("LWPOLYLINE" "POLYLINE" "LINE") ) (command "._break" ent "f" pt2 pt3) ) ) ) ) ))
(defun c:bv (/ d ent obj pt pt2 pt3) (while (and (setq ent (ent_sel "\n Select intersection to break: ")) (/= (cdr (assoc 0 (entget (car ent)))) "INSERT") ) (progn (setq obj (vlax-ename->vla-object (car ent)) pt (vlax-curve-getClosestPointTo obj (cadr ent)) d (vlax-curve-getDistAtPoint obj pt) pt2 (vlax-curve-getPointAtDist obj (+ d (* (getvar 'dimscale) 0.03125)) ) pt3 (vlax-curve-getPointAtDist obj (- d (* (getvar 'dimscale) 0.03125)) ) ) (if (and pt2 pt3) (progn (if (member (cdr (assoc 0 (entget (car ent)))) '("LWPOLYLINE" "POLYLINE" "LINE") ) (command "._break" ent "f" pt2 pt3) ) ) ) ) ))
(defun c:bv (/ d ent obj pt2 pt3 e) (vl-load-com) (while (and (setq ent (entsel "\n Select intersection to break: ")) (/= (cdr (assoc 0 (entget (car ent)))) "INSERT") ) (progn (setq obj (vlax-ename->vla-object (car ent)) e (entget (car ent)) d (vlax-curve-getDistAtPoint obj (vlax-curve-getClosestPointTo obj (cadr ent)) ) pt2 (vlax-curve-getPointAtDist obj (+ d (* (getvar 'dimscale) 0.03125)) ) pt3 (vlax-curve-getPointAtDist obj (- d (* (getvar 'dimscale) 0.03125)) ) ) (if (and pt2 pt3) (if (member (cdr (assoc 0 e)) '("LWPOLYLINE" "POLYLINE" "LINE") ) (progn (command "_.break" ent "f" pt2 pt3) (entmake (list '(0 . "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 8 (cdr (assoc 8 e))) (cons 100 "AcDbPolyline") (cons 90 2) (cons 43 (if (assoc 43 e) (cdr (assoc 43 e)) 0.0 ) ) (cons 10 pt2) (cons 42 1.0) (cons 10 pt3) ) ) ) ) ) ) ))