Hi
As @mhupp mentioned, there are extra 'quotes' marks in your code. Also, as Mhupp suggested, you can use the filter "_+.:E:S" to select the object to be cropped in a single step, and then implement it within a 'while' loop to repeat the operation as many times as needed.
Putting all of this together, your code could look something like this:
(defun c:Br2ptReplDash (/ ss pt1 pt2 ent entdata newent entUlt)
(while (setq ss (SETVAR "NOMUTT" 1)
ss (princ "\nSelect object to trim (RIGH CLICK to EXIT)...")
ss (ssget "_+.:E:S" '((0 . "*LINE,POLYLINE,CIRCLE,ARC")))
)
(SETVAR "NOMUTT" 0)
(setq entUlt (entlast))
(princ "\nSelect the object to split: ")
(setq ent (ssname ss 0))
;; Entering the first break point
(setq pt1 (getpoint "\nSelect the first break point: "))
;; Entering the second break point
(setq pt2 (getpoint "\nSelect the second break point: "))
;; Checking the object type and performing the split
(cond
((= (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
;; break the LWPOLYLINE
(command "_.BREAK" ent pt1 pt2)
)
((= (cdr (assoc 0 (entget ent))) "LINE")
;; break the line
(command "_.BREAK" ent pt1 pt2)
)
((= (cdr (assoc 0 (entget ent))) "POLYLINE")
;; break polyline
(command "_.BREAK" ent pt1 pt2)
)
((= (cdr (assoc 0 (entget ent))) "CIRCLE")
;; break the circle
(command "_.BREAK" ent pt1 pt2)
)
((= (cdr (assoc 0 (entget ent))) "ARC")
;; break the arc
(command "_.BREAK" ent pt1 pt2)
)
(T
(prompt "An object of an unsupported type.")
)
)
(command "_.LINE" pt1 pt2 "")
(if (not (equal entUlt (entlast)))
(progn
(entmod (append (ENTGET (ENTLAST))
'((8 . "0") ; the default layer
(6 . "DASHED2") ; line type
;'(70 . 0)
;(40 . 0.25) ; thickness
;(47 . 20)
(62 . 84)
)
) ; LTSCALE
)
(princ "\nProcess completed for these objects")
(vlr-beep-reaction)
)
(princ "\n*** The operation could not be performed ***")
)
)
(if (not entUlt) (princ "\nObjects are not selected."))
(princ)
)