明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1841|回复: 8

[讨论]批量处理一批图形是否要用脚本?

[复制链接]
发表于 2007-3-17 23:03 | 显示全部楼层 |阅读模式

如题,如果想要批量处理图形的话,普通的lsp能做到吗?

还有一事不明,如果用脚本的话,脚本是一个什么样的概念呢?是不是也像lsp一样编代码,最后保存成scr就可以执行呢?请主手明示,谢谢。

发表于 2007-3-18 11:55 | 显示全部楼层

LISP可以做到。编程序思路:

1、程序在新图中运行;

2、程序开始设UNDO开始点;

3、插入要处理的图形;

4、对图形处理;

5、将处理后的图样另存成你想要的文件(可以与插入文件同名);

6、设UNDO结束点;

7、UNDO;

8、从第2步开始新循环。

脚本文件就是ACAD的命令序列,也可以包含LISP代码。

 楼主| 发表于 2007-3-18 17:05 | 显示全部楼层
谢谢,我明白了。只是对于脚本还是一直迷茫中。
发表于 2007-3-19 09:46 | 显示全部楼层
用lisp打开图形,处理图形,关闭图形可以做到的.只是在MDI下全部要用Activex方法运行。
发表于 2011-10-8 15:07 | 显示全部楼层
byghbcx 发表于 2007-3-19 09:46
用lisp打开图形,处理图形,关闭图形可以做到的.只是在MDI下全部要用Activex方法运行。

您好,

能不能给个手上有个lisp,能打开图形,处理图形,关闭图形。
最近我自己写好了一个别的lisp,100张图纸都要运行这个lisp,我要一张张打开,然后运行,在command.如果不用手动打开,运行,程序自己一次处理就好了,谢谢。
发表于 2017-8-2 19:32 | 显示全部楼层
;给你个示例代码,不开图批量设置文件夹下dwg字体并清理
(defun c:puall( / cadobj file ob path vercad i styob styname docobj styles styhz txtob)
    (vl-load-com)
    ;出错处理
    (defun *error* (msg)
        (if (= nil cadobj)
            (princ "\n您已取消操作!")
            (progn
                (Vlax-Invoke-Method cadobj 'Quit)
                (princ "\n您已取消操作!")
            )
        )
        (princ)
    )
    (setq file nil)
    (setq path (strcat (qf_getFolder "请选取要清理的文件所在目录") "\\"))
    (setq cadobj (vlax-create-object "AUTOCAD.Application"))
    (setq n 0)
    (foreach file (vl-directory-files path "*.dwg" 1)
        (setq docobj (vla-open (vla-get-documents cadobj) (strcat path file)))
        (setq styles (Vlax-Get-property docobj 'textstyles))
        (setq styhz (vlax-invoke-method styles 'add "HZ"))
        (vlax-put-property styhz 'bigfontfile "hztxt.shx")
        (vlax-put-property styhz 'fontfile "simplexs.shx")
        (vlax-put-property styhz 'width 0.7)
        (Vlax-Put-Property docobj 'ActiveTextStyle styhz)
        (vlax-for txtob (Vlax-Get docobj 'ModelSpace)
            (cond
                ((= "AcDbText" (Vlax-Get txtob 'ObjectName ))(vlax-put-property txtob 'stylename "HZ"))
                ((= "AcDbMText" (Vlax-Get txtob 'ObjectName ))(vlax-put-property txtob 'stylename "HZ"))
            )
        )
        (vla-purgeall docobj)
        (prompt (strcat "\n" file " 已设置字体HZ,并清理完成"))
        (Vlax-Invoke-Method docobj 'SaveAs (strcat path file))
        (setq n (+ 1 n))
    )
    (Vlax-Invoke-Method cadobj 'Quit)
    (alert (strcat "共清理" (itoa n) "张图纸\n请逐一检查"))
    (princ)
)
;-----------------------------------------START-----------------------------
    ;取得目录
    (defun qf_getFolder (msg / WinShell shFolder path catchit)
      (vl-load-com)
      (setq winshell (vlax-create-object "Shell.Application"))
      (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
      (setq
        catchit (vl-catch-all-apply
          '(lambda () (setq shFolder (vlax-get-property shFolder 'self)) (setq path (vlax-get-property shFolder 'path))
        )
        )
      )
      (if (vl-catch-all-error-p catchit)
        nil
        path
      )
    )
;------------------------------------------OVER-----------------------------

(princ "\n调用命令:puall  用前请备份,用后请核对")
(princ)
发表于 2017-8-3 08:00 来自手机 | 显示全部楼层
这都能做到啊!
发表于 2020-8-30 14:00 | 显示全部楼层
学习了一下最近在研究批量问题
发表于 2020-9-2 13:19 来自手机 | 显示全部楼层
请问可以不开图打印吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 21:44 , Processed in 1.044524 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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