我正在学习我们公司的旧LISP例程。虽然大多数lisp都是通过单个lisp load命令作为单独的文件加载的,但这段代码只是被塞进了lisp load命令中,没有任何注释。有人能告诉我这个代码是做什么的,以及如何使用它,这样我就可以决定它是否值得保留?非常感谢。
- (defun C:WC (/ INGET FPT GETD GETDTEMP ENAME ENAME1 ENT1 ENT2 SS1 SS2 SS3 SS4)
- (setq V1 (getvar "osmode"))
- (setq V2 (getvar "cmdecho"))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (initget "Horizontal Vertical")
- (setq INGET (getkword "\nType of break [Horizontal/Vertical]: "))
- (if (= GETDTEMP1 nil)
- (setq GETDTEMP1 (getreal "\nBreak Length: "))
- (setq GETDTEMP1 (getreal (strcat "\nBreak Length <" (rtos GETDTEMP2) ">: ")))
- )
- (if (or (= GETDTEMP1 "")(= GETDTEMP1 nil))(setq GETDTEMP1 GETDTEMP2))
- (setq GETDTEMP2 GETDTEMP1)
- (setq GETD GETDTEMP1)
- (prompt "\nNow move Crosshairs near each intersection to break <press Enter to stop> :")
- (setq ENAME "LINE")
- (setq ENAME1 "LINE")
- (while GETD
- (setq FPT (osnap (cadr (grread 1)) "int"))
- (if (/= FPT NIL)
- (progn
- (setq SS1 (nentselp (polar FPT 0.00 GETD)))
- (setq SS2 (nentselp (polar FPT 3.14 GETD)))
- (setq SS3 (nentselp (polar FPT 1.57 GETD)))
- (setq SS4 (nentselp (polar FPT 4.71 GETD)))
- (setq ENT1 (ssget (polar FPT 0.00 GETD)))
- (setq ENT2 (ssget (polar FPT 1.57 GETD)))
- )
- )
- (if (and (/= ENT1 NIL)(/= ENT2 NIL))
- (progn
- (setq ENAME (cdr (assoc 0 (entget (ssname ENT1 0)))))
- (setq ENAME1 (cdr (assoc 0 (entget (ssname ENT2 0)))))
- )
- )
- (if (and (/= ENAME "LINE")(/= ENAME "LWPOLYLINE")(or (= INGET "Horizontal")(= INGET NIL)))
- (progn
- (print "Entity is not a Line or Polyline")
- (setq FPT NIL)
- )
- )
- (if (and (/= ENAME1 "LINE")(/= ENAME1 "LWPOLYLINE")(= INGET "Vertical"))
- (progn
- (print "Entity is not a Line or Polyline")
- (setq FPT NIL)
- )
- )
- (if (and (/= FPT NIL)(/= SS1 NIL)(/= SS2 NIL)(/= SS3 NIL)(/= SS4 NIL)(or (= INGET "Horizontal")(= INGET NIL)))
- (command ".BREAK" (cadr SS1)(cadr SS2))
- )
- (if (and (/= FPT NIL)(= INGET "Vertical")(/= SS1 NIL)(/= SS2 NIL)(/= SS3 NIL)(/= SS4 NIL))
- (command ".BREAK" (cadr SS3)(cadr SS4))
- )
- )
- (setvar "osmode" V1)
- (setvar "cmdecho" V2)
- (princ)
- ) ;wc
|