不过您可以试一下下面的程序,看能否满足您的要求。 - (DEFUN C:DIMCHANGE ()
- (SETVAR "CMDECHO" 0)
- (SETQ OLDOS (GETVAR "OSMODE"))
- (SETQ SB (ENTSEL "\nSelect Block(s) 选择图块:"))
- (SETQ SB-DXF (ENTGET (CAR SB)))
- (WHILE (NOT (WCMATCH (CDR (ASSOC 0 SB-DXF)) "*INS*"))
- (SETQ SB (ENTSEL "\nSelect Block(s) 选择图块:"))
- (SETQ SB-DXF (ENTGET (CAR SB)))
- )
- (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
- (SETQ SD-DXF (ENTGET (CAR SD)))
- (WHILE (NOT (WCMATCH (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
- (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
- (SETQ SD-DXF (ENTGET (CAR SD)))
- )
- (IF (AND SB SD) (PROGN
- (SETQ SP (CDR (ASSOC 13 SD-DXF))
- EP (CDR (ASSOC 14 SD-DXF))
- ANG (CDR (ASSOC 50 SD-DXF)))
- (IF (OR (EQUAL ANG 0.0 0.00001) (EQUAL ANG PI 0.00001))
- (SETQ L (ABS (- (CAR SP) (CAR EP))))
- (SETQ L (ABS (- (CADR SP) (CADR EP))))
- )
- (PRINC "\nEnter New Distance 新的长度<") (PRINC L)
- (SETQ NEWL (GETDIST ">:"))
- (WHILE (EQ NEWL nil)
- (PRINC "\nEnter New Distance 新的长度<") (PRINC L)
- (SETQ NEWL (GETDIST ">:"))
- )
- (SETQ BSB (- NEWL L))
- (SETQ SS1 (SSGET "C" SP SP))
- (SETQ SS2 (SSGET "C" EP EP))
- (IF (SSDEL (CAR SB) SS1)
- (SETQ SSP SP)
- (SETQ SSP EP ANG (+ ANG PI) BSB (* BSB -1))
- )
- (SETQ N-SP (POLAR SSP ANG BSB))
- (SETVAR "OSMODE" 0)
- (COMMAND "_.UNDO" "_GROUP")
- (COMMAND "MOVE" (CAR SB) "" SSP N-SP "STRETCH" "C" SSP SSP "" SSP N-SP)
- (COMMAND "_.UNDO" "_END")
- (SETVAR "OSMODE" OLDOS)
- ))
- (SETVAR "CMDECHO" 1)
- (princ)
- )
|