dcl1214 发表于 2025-11-6 22:31:17

Lisp去除教育版

本帖最后由 dcl1214 于 2025-11-10 12:20 编辑

很多前辈发过去教育版,我也发一个最简单的方法
使用方法:
1 将本代码加到启动项里面,任何图纸一旦打开,教育版就被去掉了
2 单独调用本代码,可以将当前图纸的教育版直接去掉
(DEFUN $dxf->dwg$ (dxf dwg lst / dwg-name-base dwgprefix dxf-old ss)
;调用示例:($dxf->dwg$nilnilnil)
(setq dxf-old dxf)      ;备份一下,下面需要判断
(setq dwg-name-base (vl-filename-base (getvar 'dwgname)))
          ;去掉扩展名后,保留文件名字
(setq dwgprefix (getvar 'dwgprefix));当前图纸的路径所在文件夹
(if (and dxf (findfile dxf))    ;如果传递了dxf路径并能找到
    ()          ;不管了
    (progn (setq dxf (strcat dwgprefix dwg-name-base ".dxf")
   )      ;根据当前图纸名字造一个dxf路径名字
   (if(SETQ SS (SSGET "X"));当前图纸的所有图元获取到
      (progn
   (vl-cmdf "DXFOUT" dxf "V" "2007" "O" SS "" 16) ;输出一个dxf
   (setq ss nil)    ;做空选择集
    ))
    )
)
(if (and dwg(vl-filename-directory dwg));如果传递了一个dwg路径进来
    ()          ;不管了
    (progn
      (setq dwg(strcat dwgprefix dwg-name-base ".dwg")
      )          ;用当前dwg的路径和dwg的名字构造一个新的dwg完整路径
    )
)
(if (and dxf (findfile dxf))    ;如果dxf能找到
    (progn      (SETQ SS (SSGET "X"))
      (VL-CMDF "ERASE" SS "")
      (SETQ SS NIL)
      (command "_.DXFIN" dxf)    ;加载dxf文件
      (while (= 1 (logand (getvar "CMDACTIVE") 1))
(command "")
      )          ;如果因为版本差异导致需要用户按下回车,这里帮用户按下回车键
      (command "_.SAVEAS" "2004" dwg)
      (while (= 1 (logand (getvar "CMDACTIVE") 1))
(command "Y")
      )          ;如果因为版本差异导致需要用户按下回车(这里遇到最多的应该是目标dwg存在导致重复了,cad会提示是否覆盖),这里帮用户按下Y键
      (if dxf-old      ;如果有传入路径
()      ;不做任何操作
(vl-catch-all-apply 'vl-file-delete (list dxf))
          ;如果是当前图纸另存为出去的dxf,这里强制删除
      )
    )
)dwg
)



429014673 发表于 2025-11-6 23:22:36

自从用了中望或高版ACAD都没见过“教育版”了

自贡黄明儒 发表于 2025-11-7 07:15:11

"DXFOUT" 有时会失败的,效果不佳

tranque 发表于 2025-11-7 09:29:38

刚毕业那年公司前辈们都用CAD2014还说2014好,以讹传讹,结果就是各种崩溃,各种卡,也被这个教育版折磨,打印完发现忘了去除教育版还得重新打印。后来终于在我偷摸装了一个高版本CAD之后崩溃也少了,也不用再折腾教育版了

下文没句号。 发表于 2025-11-6 23:25:42

来支持楼主啦。。。。。

dingweiyang111 发表于 2025-11-7 08:03:06

2025年了 还有去教育版本么- -

yanshengjiang 发表于 2025-11-7 09:16:05

dxfout会不会像wblock一样,丢失对象编组?

tryhi 发表于 2025-11-7 09:16:28

429014673 发表于 2025-11-6 23:22
自从用了中望或高版ACAD都没见过“教育版”了

只有2015-2018没有教育版,2019之后又有了

edata 发表于 2025-11-7 11:57:21

DXFOUT 局限性太大,并非良策.

你有种再说一遍 发表于 2025-11-7 15:27:39

本帖最后由 你有种再说一遍 于 2025-11-7 17:21 编辑

有天正图元的话,它是拒绝转DXF的,会致命错误.
一旦转T3再转DXF,就逆转不回来了,但是你不剔除教育版就一直传染...
所以才需要用指针方法把教育版标记改了.
页: [1] 2
查看完整版本: Lisp去除教育版