AutoCAD 2022 killed lisp routine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I just installed AutoCAD 2022 today & found a lisp routine that I've been using since the mid 90's has been broken. It's a revision cloud routine that works similarly to the freehand routine now built into AutoCAD. The main difference is that if the cloud is drawn anticlockwise it creates a "humpy" revision cloud, & if it is drawn clockwise it creates a "spikey" hold cloud. Basically, the routine still works, but the cloud is not displayed dynamically as it is created, but is only visible when finished. As the bulk of my work involves very busy P&IDs, revision clouds are often quite complex. I've played with the revcloud command built into AutoCAD, but I've found it inferior to the old routine that I've been using, & the "reverse" prompt does not appear if using the freehand option. I am not a lisp programmer so I have no idea what might need editing in the routine in order to resurrect it. Here is the routine pasted from a text editor. I hope some kind member here with god powers can bring it back to life for me.
;; CLOUD1.LSP
;;
;; TSC 6/10/93
;; Draws clouds
;; if type is "R" draw Rev. clouds (ie. arcs "outwards")
;; else draw Hold clouds (ie. arcs "inwards")
;; Hold clouds have (eg.) "HOLD #1" associated with them
;;
;; Doesn't matter if you start clockwise or anticlockwise
;; Maintains current ortho setting
(defun c:CLOUD1()
(command "LINETYPE" "s" "continuous" "")
(command "COLOR" "1")
; save current orthomode
(setq omode (getvar "orthomode"))
(setvar "orthomode" 0)
(setq pt1 (getpoint "\nFrom point: "))
(command "pline" pt1 "w" 0 0 "a")
(setq pt2 (getpoint pt1 "\nnext point: "))
; determine ang (+120 if anticlockwise, else -120)
; by testing x values of pt1 and pt2
; assumes type is rev. cloud
; check for hold cloud follows
(setq ang 120)
; convert ang to string
(setq ang (itoa ang))
(while (/= pt2 nil)
(command "a" ang pt2)
(setq pt2 (getpoint pt2 "\nnext point: "))
)
(command "a" ang pt1 "cl")
;reset orthomode
(setvar "orthomode" omode)
(princ)
)