明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2053|回复: 4

[求助] 如何用lisp获得一个DWG文件的版本号

[复制链接]
发表于 2009-3-13 21:14 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-3-15 11:47:54 编辑

请问如何用lisp来获得一个DWG文件的版本号?
谢谢!!!
多谢Andyhon、luowy,同事也感谢phoenixdjq的回复!
下面是我写的代码:
  1. ;;; By 小李子 2009.3.14
  2. (defun Get-Dwg-Ver (filename / filehand filever)
  3.   (if (setq filehand (open filename "r"))
  4.     (progn
  5.       (setq filever "")
  6.       (repeat 6
  7. (setq filever (strcat filever (chr (read-char filehand))))
  8.       )
  9.       (close filehand)
  10.       (cond
  11. ((= filever "AC1024")
  12. (princ "\nDrawing File Version: R2010")
  13. )
  14. ((= filever "AC1021")
  15. (princ "\nDrawing File Version: R2007/2008/2009")
  16. ) ((= filever "AC1018")
  17.   (princ "\nDrawing File Version: R2004/2005/2006")
  18. )
  19. ((= filever "AC1015")
  20.   (princ "\nDrawing File Version: R2000/2000i/2002")
  21. )
  22. ((= filever "AC1014") (princ "\nDrawing File Version: R14"))
  23. ((= filever "AC1013")
  24.   (princ "\nDrawing Template File Version: R14")
  25. )
  26. ((= filever "AC1012") (princ "\nDrawing File Version: R13"))
  27. ((= filever "AC1009")
  28.   (princ "\nDrawing File Version: R12/R11")
  29. )
  30. ((= filever "AC1006") (princ "\nDrawing File Version: R10"))
  31. ((= filever "AC1004") (princ "\nDrawing File Version: R9"))
  32. (T
  33.   (princ (strcat "\nDrawing File Version Unknown: " filever))
  34. )
  35.       )
  36.     )
  37.   )
  38.   (princ)
  39. )
  40. (princ
  41.   "\nGet-Dwg-Ver loaded, type (Get-Dwg-Ver) to run."
  42. )
  43. (princ)
发表于 2009-3-13 23:40 | 显示全部楼层
提示,dwg文件里面有,就只有几个字符表示版本
发表于 2009-3-14 08:30 | 显示全部楼层

command ver)

command :  acadver

发表于 2009-3-14 08:38 | 显示全部楼层
  1.   
  2. ;;; By Vladimir Nesterovsky
  3. (defun dwg-ver (fn)
  4.   (if (setq f (open fn "r"))
  5.     (car
  6.       (list
  7.         (apply
  8.           'strcat
  9.           (mapcar
  10.             'chr
  11.             (mapcar
  12.               'read-char
  13.               (list f f f f f f)
  14.             )
  15.           )
  16.         )
  17.         (setq f (close f))
  18.       )
  19.     )
  20.   )
  21. )
  22.   
 楼主| 发表于 2009-3-14 09:37 | 显示全部楼层
本帖最后由 作者 于 2009-3-15 11:48:34 编辑

多谢Andyhon、luowy,同事也感谢phoenixdjq的回复!
下面是我写的代码:
  1. ;;; By 小李子 2009.3.14
  2. (defun Get-Dwg-Ver (filename / filehand filever)
  3.   (if (setq filehand (open filename "r"))
  4.     (progn
  5.       (setq filever "")
  6.       (repeat 6
  7. (setq filever (strcat filever (chr (read-char filehand))))
  8.       )
  9.       (close filehand)
  10.       (cond
  11. ((= filever "AC1024")
  12. (princ "\nDrawing File Version: R2010")
  13. )
  14. ((= filever "AC1021")
  15. (princ "\nDrawing File Version: R2007/2008/2009")
  16. )
  17. ((= filever "AC1018")
  18.   (princ "\nDrawing File Version: R2004/2005/2006")
  19. )
  20. ((= filever "AC1015")
  21.   (princ "\nDrawing File Version: R2000/2000i/2002")
  22. )
  23. ((= filever "AC1014") (princ "\nDrawing File Version: R14"))
  24. ((= filever "AC1013")
  25.   (princ "\nDrawing Template File Version: R14")
  26. )
  27. ((= filever "AC1012") (princ "\nDrawing File Version: R13"))
  28. ((= filever "AC1009")
  29.   (princ "\nDrawing File Version: R12/R11")
  30. )
  31. ((= filever "AC1006") (princ "\nDrawing File Version: R10"))
  32. ((= filever "AC1004") (princ "\nDrawing File Version: R9"))
  33. (T
  34.   (princ (strcat "\nDrawing File Version Unknown: " filever))
  35. )
  36.       )
  37.     )
  38.   )
  39.   (princ)
  40. )
  41. (princ
  42.   "\nGet-Dwg-Ver loaded, type (Get-Dwg-Ver) to run."
  43. )
  44. (princ)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-7 17:20 , Processed in 0.998835 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表