各位大侠,帮帮忙。
以下程序为zzxxqq大侠为本人写的,我想再加些功能。就是在执行中程序能记住上次输入的数值,如果不输入就用默认值来运行。谢谢!!!
(DEFUN C:GTT () (SETvar "CMDECHO" 0) (vl-cmdf "_.undo" "_group") (SETQ OLDOS (GETvar "OSMODE")) (SETvar "OSMODE" 0) (command "ucs" "w") (setq LANGLST '(("CHS" "\n输入挂台距离<17.95>:" "\n输入挂台宽<3.05>:" "\n输入挂台深<1.0>:" "\n选择一条边:" "\n起始点:" "\n哪一边?:" ) ("CHT" "\n块珽禯瞒 <17.95> :" "\n块珽糴 <3.05> :" "\n块珽瞏 <1.0> :" "\n匡拒兵娩 :" "\n癣﹍翴:" "\n娩?:" ) ) ) (setq LST (cdr (assoc (getvar "LOCALE") LANGLST))) (SETQ AL1 (/ PI 2) GTL (GETDIST (nth 0 LST)) GTL (IF (= GTL nil) 17.95 GTL ) GTW (GETDIST (nth 1 LST)) GTW (IF (= GTW nil) 3.05 GTW ) GTD (GETDIST (nth 2 LST)) GTD (IF (= GTD nil) 1.0 GTD ) ) (SETvar "BLIPMODE" 0) (WHILE (SETQ S1 (ENTSEL (nth 3 LST))) (SETvar "OSMODE" 1) (IF (SETQ P1 (GETPOINT (nth 4 LST))) (PROGN (SETvar "OSMODE" 0) (SETQ DL (ENTGET (CAR S1)) PT1 (CDR (ASSOC 10 DL)) PT2 (CDR (ASSOC 11 DL)) P2 (IF (> (DISTANCE PT1 P1) (DISTANCE PT2 P1)) PT1 PT2 ) ANG (ANGLE P1 P2) PT (GETPOINT P1 (nth 5 LST)) AN1 (ANGLE P1 PT) A1 (- AN1 ANG) A1 (IF (AND (> A1 0) (> A1 PI)) (- A1 PI PI) A1 ) A1 (IF (AND (< A1 0) (< A1 (- PI))) (+ A1 PI PI) A1 ) A1 (IF (> A1 0) (+ ANG AL1) (- ANG AL1) ) P3 (POLAR P1 ANG GTL) P4 (POLAR P3 A1 GTD) P5 (POLAR P3 ANG GTW) P6 (POLAR P5 A1 GTD) ) (COMMAND "ERASE" (CAR S1) "") (COMMAND "LINE" P1 P3 P4 P6 P5 P2 "") ) ) ) (command "ucs" "p") (SETvar "OSMODE" OLDOS) (vl-cmdf "_.undo" "_end") (SETvar "CMDECHO" 1) (PRINC) ) |