我认为很多人都能写这样的代码,一个简单、无聊的代码。
没有人希望它写下来,花15分钟。。。试试看,你会发现*。与图形位于文件夹中的同名csv文件。在MS Excel中打开它。。。
- (defun c:bord(/ oldI cBl cDxf iPt rAn cStr fVar
- pt1 pt2 pt3 pt4 *error*)
-
- (defun *error*(msg)
- (if fVar(close fVar))
- (princ)
- ); end of *error*
-
- (if(not bord:i)(setq bord:i 1))
- (setq oldI bord:i
- bord:i(getint
- (strcat "\nSpecify first number <"
- (itoa bord:i) ">: "))
- fVar(open(strcase(strcat(getvar "DWGPREFIX")
- (getvar "DWGNAME") ".csv")) "a")
- ); end setq
- (if(null bord:i)(setq bord:i oldI))
- (while T
- (if
- (and
- (setq cBl(entsel(strcat "\nPick foot <"
- (itoa bord:i) "> or Esc to Quit > ")))
- (equal(cons 2 "FOOTING TYPE-1")
- (assoc 2(setq cDxf(entget(car cBl)))))
- ); end and
- (progn
- (setq iPt(cdr(assoc 10 cDxf))
- rAn(cdr(assoc 50 cDxf))
- pt1(polar iPt(+ rAn(angtof "120.4655449167164" 0)) 0.9861541463877346)
- pt2(polar iPt(+ rAn(angtof "59.53445509597224" 0)) 0.9861541463877346)
- pt3(polar iPt(+ rAn(angtof "300.4655449294050" 0)) 0.9861541463877346)
- pt4(polar iPt(+ rAn(angtof "239.5344550891135" 0)) 0.9861541463877346)
- cStr(strcat(itoa bord:i)
- ";" (rtos(car iPt)2 4) ";" (rtos(cadr iPt)2 4)
- ";" (rtos(car pt1)2 4) ";" (rtos(cadr pt1)2 4)
- ";" (rtos(car pt2)2 4) ";" (rtos(cadr pt2)2 4)
- ";" (rtos(car pt3)2 4) ";" (rtos(cadr pt3)2 4)
- ";" (rtos(car pt4)2 4) ";" (rtos(cadr pt4)2 4)
- ); end strcat
- bord:i(1+ bord:i)
- ); end setq
- (write-line cStr fVar)
- ); end progn
- (princ "\n<!>This isn't 'FOOTING TYPE-1' block <!> ")
- ); end if
- ); end while
- (princ)
- ); end of c:bord
|