选择的转换cad文件列表时,最好根据dwg文件版本过滤掉高于当前cad版本的dwg文件!
下列函数可提取DWG、DXF文件的版本号!
- (defun gxl-DWGVer (filename / fh cnt dv inp)
- (setq cnt 10
- dv "")
- (if (setq fh (open filename "r"))
- (progn
- (cond ((= ".DWG" (strcase (VL-FILENAME-EXTENSION filename)))
- (while
- (and
- (> (setq cnt (1- cnt)) 0)
- (setq inp (read-char fh))
- (> inp 0)
- )
- (setq dv (strcat dv (chr inp)))
- )
- )
- ((= ".DXF" (strcase (VL-FILENAME-EXTENSION filename)))
- (repeat 8
- (setq dv (READ-LINE fh))
- )
- )
- )
- (close fh)
- )
- )
- (if (and (> cnt 0) (> (strlen dv) 0))
- dv)
- )
返回的版本号与CAD版本对应关系如下:
- (("AC1.50" "AutoCAD R2.05")
- ("AC1002" "AutoCAD R2.6")
- ("AC1004" "AutoCAD R9")
- ("AC1006" "AutoCAD R10")
- ("AC1009" "AutoCAD R11 or R12")
- ("AC1012" "AutoCAD R13")
- ("AC1014" "AutoCAD R14")
- ("AC1015" "AutoCAD 2000 or 2000i or 2002")
- ("AC1018" "AutoCAD 2004 or 2005 or 2006")
- ("AC1021" "AutoCAD 2007 or 2008 or 2009")
- ("AC1024" "AutoCAD 2010")
- )
|