又快又脏。可以修改以满足您的需要
- (defun c:test (/ oldecho oldlayer ent p1 entlst layname blkname)
- (vl-load-com)
- ;======ERROR TRAP=======
- (setq temperr *error* ;store *error*
- *error* errortrap ;re-assign *error*
- oldecho (getvar "cmdecho") ;store variables as needed
- oldlayer (getvar "clayer")
- )
- ;======ERROR TRAP=======
-
- (setq oldlayer (getvar "clayer")
- oldecho (getvar "cmdecho")
- ent (entsel "\nPick insert point on line for block: ")
- p1 (vlax-curve-getclosestpointto (car ent) (cadr ent))
- entlst (entget (car ent))
- layname (cdr (assoc 8 entlst))
- blkname (getstring "\nEnter block name: ")
- );setq
- (setvar "clayer" layname)
- (initdia)
- (command "-insert" blkname p1 "" "")
- ;(while (> (getvar 'CmdActive) 0) (command pause))
- (setvar "clayer" oldlayer)
- (setvar "cmdecho" oldecho)
- (princ)
- );defun
- ;======ERROR TRAP=======
- (defun errortrap (msg)
- (setvar "cmdecho" oldecho) ;restore variables
- (setvar "clayer" oldlayer)
- (setq *error* temperr) ;restore *error*
- (prompt "\nError or break encountered...Resetting System Variables ") ;inform user
- (princ)
- );defun
- ;======ERROR TRAP=======
-
-
|