Reverse function
I noticed that in Bricscad you have to convert lines to polylines to reverse them so to save doing that I added this function to the on_doc_load,lsp
;;function to reverse lines and polylines in Bricscad
(defun c:rev () (breverse))
(defun c:reverse ( / ss)(breverse))
(defun breverse (/ ss cnt tot entname entdetails entype spt ept new_ent)
(prompt "\nSelect Lines or Polylines : ")
(setq ss (ssget '((0 . "*LINE"))))
(if ss
(progn
(setq cnt 0
tot (sslength ss)
)
(while (< cnt tot)
(setq entname (ssname ss cnt)
entdetails (entget entname)
entype (cdr (assoc 0 entdetails))
cnt (1+ cnt)
)
(if (= entype "LINE")
(progn
(setq spt (cdr (assoc 10 entdetails))
ept (cdr (assoc 11 entdetails))
) ;_ end of setq
(setq new_ent (subst (cons 10 ept)
(assoc 10 entdetails)
entdetails
) ;_ end of subst
new_ent (subst (cons 11 spt)
(assoc 11 entdetails)
new_ent
) ;_ end of subst
) ;_ end of setq
(entmod new_ent)
(entupd entname)
)
(command "pedit" "m" entname "" "y" "r" "")
)
) ;_ end of while
)
)
(princ)
)
;;;-------------------------------------------------------------------------
(DEFUN rev_error_setup ()
(SETVAR "cmdecho" 0)
(SETQ olderr *error*
*error* custom_error
)
(if (and (not (> (getvar "cmdactive") 0)) ; no command active and
(/= (getvar "undoctl") 13)
) ; not in a group undo already
(command "_.undo" "_begin")
) ;_end if
)
(DEFUN rev_error_restore ()
(SETQ error olderr)
(command-s "_.undo" "end")
(princ)
)
(defun rev_error (errmsg)
(rev_error_restore)
(terpri)
(prompt errmsg)
(princ)
)
Comments
-
Sorry - you'll need to remove the "y" from the line in the above code with the pedit command.
0