(defun _SetClipBoardText ( text / htmlfile result )
(setq result
(vlax-invoke
(vlax-get
(vlax-get (setq htmlfile (vlax-create-object "htmlfile")) 'ParentWindow)
'ClipBoardData
)
'SetData "Text" text)
)
(vlax-release-object htmlfile)
text
)
(defun c:blkupd()
(setq e (entsel "Select block to update")
elist (entget (car e))
ename (car e)
blname (cdr (assoc 2 elist))
)
(princ (strcat "\nReplace " blname " with:"))
(_SetClipBoardText blname)
(princ "\n")
(command "insert" (strcat blname "=~"))
(command)
(entupd ename)
(princ)
)
(defun c:blkrep( / *error*)
(setq e1 (entsel "Select replacement block"))
(princ "\n")
(while (= 1 1)
(setq e (entsel "\nSelect block to replace")
elist (entget (car e))
ename (car e)
blname (cdr (assoc 2 elist))
pt (car (cdr e))
an (cdr (assoc 50 elist))
elist1 (entget (car e1))
ename1 (car e1)
blname1 (cdr (assoc 2 elist1))
os (getvar "osmode")
)
(command "ucs" "ob" pt)
(setvar "osmode" 0)
(command "-insert" blname1 "ins" "0,0,0" "1" "" "0")
(command "erase" e "")
(command "ucs" "p")
(command)
(setvar "osmode" os)
(princ)
)
)
(defun c:blkrot()
(setq osm (getvar "osmode"))
(setq sset (ssget '((0 . "INSERT"))))
(setq pt1 (getpoint "\nSelect point on first line: "))
(setvar "osmode" 64)
(setq pt2 (getpoint "\nSelect intersection point: "))
(setvar "orthomode" 1)
(SETVAR "OSMODE" 0)
(setq pt3 (getpoint pt2 "\nSelect point on second line: ")
ang1 (angle pt1 pt2)
ang2 (angle pt3 pt2)
ang3 (angle pt2 pt3)
ang (rtd (- ang2 ang1)))
(PROMPT (strcat "\nAngle = " (rtos ang 2) "°"))
(setvar "osmode" osm)
(setq ea (ssname sset 0))
(setq obj (vlax-ename->vla-object ea))
(vla-put-rotation obj (+ (dtr ang) (vla-get-rotation obj)))
(princ)
)