| lisp中的一件事是READ-CHAR,这样你就可以读取文件的开头并查看acad?会有一个游戏。 有一个谷歌
 
 (DEFUN rb (/ buffer char fh)
(setq buffer '())
  (SETQ        fh (OPEN "d:\\ACADTEMP\\TEST1.dwg"
                 "r"
           )
        n  -1
  )
  (WHILE ((defun mp-get-dwg-ver ( dwg / handle stream )
 
    ;;  Return the specified drawing's version as a string representing
    ;;  the AutoCAD versions that create and support the version natively,
    ;;  e.g. "2018/2019/2020/2021". Of course drawings saved by Civil3D
    ;;  enjoy a special versioning hell that doesn't precisely follow this
    ;;  schema. Thanks Autodesk.
 
    (cond
        ((null (setq handle (open dwg "r"))) nil) ;; could not open drawing, return nil
        ((progn (setq stream (substr (read-line handle) 1 6))(close handle)))
        ((eq "AC1032" stream) "2018/2019/2020/2021")
        ((eq "AC1027" stream) "2013/2014/2015/2016/2017")
        ((eq "AC1024" stream) "2010/2011/2012")
        ((eq "AC1021" stream) "2007/2008/2009")
        ((eq "AC1018" stream) "2004/2005/2006")
        ((eq "AC1015" stream) "2000/2000I/2002") ;; was 2000i, forced uppercase
        ((eq "AC1014" stream) "R14")
        ((eq "AC1012" stream) "13")
        ((eq "AC1009" stream) "11,12")
        ((eq "AC1006" stream) "10")
        ((eq "AC1004" stream) "9")
        ((eq "AC1003" stream) "2.6")
        ((eq "AC1002" stream) "2.5")
        ((eq "AC2.10" stream) "2.10")
        ((eq "AC1.50" stream) "2.0")
        ((eq "AC1.4" (setq stream (substr stream 1 5))) "1.4")
        ((eq "AC1.2" stream) "1.2")
        ((eq "MC0.0" stream) "1.1")
        ("Doesn't appear to be an AutoCAD dwg, cue sad trombone.")
    )
)
 
干杯。
 |