经过调试的程序: - (DEFUN C:DIMCHANGE ()
- (SETvar "CMDECHO" 0)
- (SETQ OLDOS (GETvar "OSMODE"))
- (IF (SETQ SB (SSGET)) (PROGN
- (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)))
- )
- (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 ">:")
- NEWL (IF NEWL NEWL L))
- (SETQ BSB (- L NEWL))
- (SETQ SS1 (SSGET "C" SP SP))
- (SETQ SL (SSLENGTH SB) I 0 J -1)
- (REPEAT SL
- (IF (SSDEL (SSNAME SB I) SS1) (SETQ J I))
- (SETQ I (1+ I))
- )
- (IF (>= J 0)
- (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" SB "" SSP N-SP "STRETCH" "C" SSP SSP "" SSP N-SP)
- (COMMAND "_.UNDO" "_END")
- (SETvar "OSMODE" OLDOS)
- ))
- (SETvar "CMDECHO" 1)
- (princ)
- )
|