AfraLisp Blog

The AutoLisp/Visual Lisp/VBA Resource Website

AfraLisp Blog

Home Newsletter Utter Rubbish Coding Tips AutoCAD Tips Contact Downloads WAUN

I don't know if you can help me. I am after a lisp routine to break a dimension line.

Here's the coding :

;CODING STARTS HERE

;This routine breaks dimension lines that are crossing.
;The break gap is 5 units both sides of the intersection point.
;Adjust to suit.
;This routine only works on non-associative dimensions.

(defun C:LCR ( / AR LN OL OS IN P1 P2 P3 P4 LINE1 LINE2 ENT1 ENT2 AN)
(setq AR 0.5)
(setvar "osmode" 0)
(setq ENT1 (car (entsel "\nSelect crossing line to break: "))
LINE1 (entget ENT1)
LN (cdr (assoc 8 LINE1))
P1 (cdr (assoc 10 LINE1))
P2 (cdr (assoc 11 LINE1))
AN (angle P1 P2)
ENT2 (car (entsel "\nSelect line to cross over: "))
LINE2 (entget ENT2)
P3 (cdr (assoc 10 LINE2))
P4 (cdr (assoc 11 LINE2))
IN (inters P1 P2 P3 P4)
BPT1 (polar IN AN (* AR (getvar "ltscale")))
BPT2 (polar IN (+ AN pi) (* AR (getvar "ltscale")))
);setq
(command "break" ENT1 BPT1 BPT2)
(princ)
);defun
;;;*==========================================================
(princ)

;CODING ENDS HERE

This routine uses the value of the system variable "Ltscale" to scale the break
value. Just substitute this with your scaling variable.

The AutoLisp/Visual Lisp/VBA Resource Website

Copyright 1999-Perpetuity by AfraLisp

All rights reserved.
Information in this document is subject to change without notice.
Site created and maintained by Kenny Ramage

The AutoLisp/Visual Lisp/VBA Resource Website