乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: dkeran

[编程交流] 文件大小减小

[复制链接]

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 19:04:23 | 显示全部楼层
不久前,我还遇到了文件大小的问题。无论出于何种原因,虽然文件是dwg,但无法正确清除内容。一堆本应在清洗过程中移除的东西没有被移除。例如,某些层上没有任何内容,表示无法删除。
解决方案是,将文件另存为dxf,关闭它,重新打开dxf,清除所有文件(这次它实际上可以工作…),然后再次另存为dwg。这个过程很烦人,但似乎是我能让它工作的唯一途径。
最终能够将每个人在工作中使用的标准模板文件从8800kb减少到850kb
回复

使用道具 举报

3

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 19:05:10 | 显示全部楼层
有点麻烦,试图偷一点Lisp程序,并将其纳入我的整个Lisp程序例程。有谁能帮我修改下面的代码,使其能够在更大的例程中自动运行吗?我试过各种各样的东西,虽然我似乎无法把它分类。
 
  1. (defun dxf (e code)
  2. (cdr (assoc code e))
  3. )
  4. (defun dxfPt2D (e code / x)
  5. (setq x (dxf e code))
  6. (if (= d "3d")
  7. (list (car x)(cadr x)(caddr x))
  8. (list (car x)(cadr x))
  9. )
  10. )
  11. (defun cvt1face (e)
  12. (command "_LINE" (dxfPt2D e 10) (dxfPt2D e 11) (dxfPt2D e 12) )
  13. (if (equal (dxf e 12)(dxf e 13))
  14. (command "_CL")
  15. (command (dxfPt2D e 13) "_CL")
  16. )
  17. )
  18. (defun C:3DF2L (/ ss ssl i e d)
  19. (setvar "CMDECHO" 0)
  20. ; (prompt "\nVyberte objekty 3DFACE pro prevod na cary: ")
  21. (prompt "\nSelect 3DFACE objects to convert to lines: ")
  22. (command "_SELECT" "_AU" pause)
  23. (setq ss (ssget "_P" '((0 . "3DFACE")))) ; jen 3DFACE
  24. (if (or (not ss) (zerop (setq ssl (sslength ss)))) (progn (prompt "*None*")(exit)) )
  25. (initget "2d 3d")
  26. (setq d (getkword "\nConvert to [2d/3d] <3d>: "))
  27. (if (not d)(setq d "3d"))
  28. (setq i 0)
  29. (command "_UNDO" "_BE")
  30. (command "_LAYER" "_M" "3DF2L" "") ; do zvl.hladiny
  31. (setvar "OSMODE" (boole 7 (getvar "OSMODE") 16384))
  32. (while (< i ssl)
  33. (setq e (ssname ss i))
  34. (cvt1face (entget e)) ; prevod
  35. (setq i (1+ i))
  36. );while
  37. (setvar "OSMODE" (boole 2 (getvar "OSMODE") 16384))
  38. (command "_UNDO" "_EN")
  39. (prompt "\nLines created to the layer 3DF2L")
  40. ; (if (= d "2d")(prompt "\nNyni vymazte usecky krome obrysovych (_ERASE _CP)\na pak dejte _PEDIT _Yes _Join"))
  41. (if (= d "2d")(prompt "\nFor outline curve erase all lines except outline (_ERASE _CP)\nand type _PEDIT _Yes _Join"))
  42. (princ)
  43. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 00:18 , Processed in 0.523524 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表