 - ;; Design BY Ayungerstudio 2006.05.07
- ;;; Template: AutoCAD 2002 为浙江网友定制
- ;;;**************************************
- ;;; No.1 DWG对象输出到 *.dat 函数
- ;;;**************************************
- (defun CWGDAT(/ FLTR ss1 n i DATfile fp entName entData entType Pt0 Pt1 Pt2 R string aa cc ll)
- (setvar "CMDECHO" 0)
- (if (and (princ "请选择: ") (setq ss (ssget))) (progn
- (if (setq ss1 (ssget "P" '((0 . "*POLYLINE")))) (progn
- (setvar "QAFLAGS" 1)
- (command "_.EXPLODE" ss1 "")
- (setvar "QAFLAGS" 0)
- (setq ss1 (ssget "P"))
- ))
- (command "SELECT" ss ss1 "")
- (setq ss1 (ssget "P"))
- (setq fnm (if (= (type fnm) 'STR) fnm ""))
- (if (setq fnm (getfiled "输出*.DAT文件" fnm "DAT" 1)) (progn
- (setq fp (open fnm "W"))
- (setq oldDimZin (getvar "DIMZIN"))
- (setvar "DIMZIN" 1)
- (setq oldLupRec (getvar "LUPREC"))
- (setvar "LUPREC" 6)
- ;;output the "LINE" object information.
- (setq ll 1)
- (setq i 0)
- (repeat (sslength ss1)
- (setq entName (ssname ss1 i))
- (setq entData (entget entName))
- (setq entType (cdr (assoc 0 entData)))
- (if (= entType "LINE") (progn
- (setq Pt0 (cdr (assoc 10 entData)))
- (setq Pt1 (cdr (assoc 11 entData)))
- (setq string1
- (strcat (if (< ll 100) "L " "L")
- (itoa ll) "= " (rtos (car Pt0) 2) ", " (rtos (cadr Pt0) 2) ", "
- (rtos (car Pt1) 2) ", " (rtos (cadr Pt1) 2))
- )
- (setq ll (1+ ll))
- (write-line string1 fp)
- ));if
- (setq i (1+ i))
- );repeat
- ;;output the "CIRCLE" object information.
- (setq cc 1)
- (setq i 0)
- (repeat (sslength ss1)
- (setq entName (ssname ss1 i))
- (setq entData (entget entName))
- (setq entType (cdr (assoc 0 entData)))
- (if (= entType "CIRCLE") (progn
- (setq Pt0 (cdr (assoc 10 entData)))
- (setq R (cdr (assoc 40 entData)))
- (setq string1
- (strcat (if (< cc 100) "C " "C")
- (itoa cc) "= " (rtos (car Pt0) 2) ", " (rtos (cadr Pt0) 2) ", " (rtos R 2))
- )
- (setq cc (1+ cc))
- (write-line string1 fp)
- ));f
- (setq i (1+ i))
- );repeat
- ;;output the "ARC" object information.
- (setq aa 1)
- (setq i 0)
- (repeat (sslength ss1)
- (setq entName (ssname ss1 i))
- (setq entData (entget entName))
- (setq entType (cdr (assoc 0 entData)))
- (if (= entType "ARC") (progn
- (setq Pt0 (cdr (assoc 10 entData)))
- (setq R (cdr (assoc 40 entData)))
- (setq sAngle (cdr (assoc 50 entData)))
- (setq eAngle (cdr (assoc 51 entData)))
- (setq Pt1 (polar Pt0 sAngle R))
- (setq Pt2 (polar Pt0 eAngle R))
- (setq string1
- (strcat (if (< aa 100) "A " "A")
- (itoa aa) "= " (rtos (car Pt0) 2) ", " (rtos (cadr Pt0) 2) ", "
- (rtos (car Pt1) 2) ", " (rtos (cadr Pt1) 2) ", "
- (rtos (car Pt2) 2) ", " (rtos (cadr Pt2) 2) ", N")
- )
- (setq aa (1+ aa))
- (write-line string1 fp)
- ));if
- (setq i (1+ i))
- );repeat
- (close fp)
- (princ "/n DAT输出完成!")
- (setvar "DIMZIN" oldDimZin)
- (setvar "LUPREC" oldLupRec)
- ))
- ))
- (princ)
- )
|