Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Help with BreakM lisp modify

3 REPLIES 3
SOLVED
Reply
Message 1 of 4
Anonymous
301 Views, 3 Replies

Help with BreakM lisp modify

Old lisp routine from David Harrington that worked with Non-Annotative drawings and would read the DimScale variable.  But with Annotative setups, this routine won't work properly.  Wondering if any of you can help me modify it to read the "cannoscale" variable now.  Thanks

 

;;;Breakm Lsp
;;;
;;;
;;; by David Harrington
;;;
;;;
(defun c:breakm (/ ds pt1 pt2 ang bpt dist mpt mkpt mkang p1 p2 p3 p4
laycol $mark olay old_osmode olecho $error
)
(defun $error (msg)
(if (or (= msg "Function cancelled") (/= msg "quit / exit abort"))
(princ (strcat "Error: " msg))
)
;(setvar "clayer" olay) <------on error restore old layer
(setvar "osmode" old_osmode)
(setvar "cmdecho" olecho)
(setq *error* old_err)
(princ)
)
(setq olecho (getvar "cmdecho")
old_osmode (getvar "osmode")
)
(setvar "cmdecho" 0)
(setq old_err *error*
*error* $error
)
(prompt "\n BREAKM")
(setq old_osmode (getvar "osmode"))
(defun $mark (mkpt ang / mktmpt tmp)
(setq p1 (polar mkpt (+ ang pi) (* ds 0.05))
p2 (polar p1 (- ang 1.3258) (* ds 0.10307764))
p4 (setq mktmpt (polar mkpt ang (* ds 0.05)))
p3 (polar mktmpt (- (- ang pi) 1.3258) (* ds 0.10307764)))
(if (> (distance pt1 p1) (distance pt1 p4))
(setq p1 tmp
p1 p4
p4 tmp)
)
)
;(setq olay (getvar "clayer")) ;;<------Save current layer to variable
;(setvar "clayer" layername) ;<-----set new current layer name
(initget 1)
(setq ds (getvar "dimscale")
pt1 (getpoint "\nPick beginning point of break: "))
(initget 1)
(setq pt2 (getpoint pt1 "\nPick other end point: ")
ang (angle pt1 pt2)
pt1 (polar pt1 (+ ang pi) (* ds 0.1))
pt2 (polar pt2 ang (* ds 0.1))
)
(setvar "osmode" 0)
(setvar "osmode" OLD_OSMODE)
(setq mpt (polar pt1 ang (/ (distance pt1 pt2) 2.0)))
(setvar "osmode" 0)
(command ".pline" pt1 "w" "0" "0")
($mark mpt ang)
(command p1 p2 p3 p4 pt2 "")
(command ".redraw")
;(setvar "clayer" olay) <-------restore old current layer
(setvar "osmode" old_osmode)
(setvar "cmdecho" olecho)
(setq *error* old_err)
(princ)
)

 

3 REPLIES 3
Message 2 of 4
alanjt_
in reply to: Anonymous

Replace: (getvar "dimscale")

with:      (/ 1. (getvar 'CANNOSCALEVALUE))

Message 3 of 4
Anonymous
in reply to: alanjt_

Worked great!

Thanks for your help - really appreciate it.

 

 

-tc

Message 4 of 4
alanjt_
in reply to: Anonymous

You're very welcome. BTW, don't forget to mark the thread solved.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost