ly8zx2109 发表于 2013-4-16 08:00:32

求批量写块,

本帖最后由 ly8zx2109 于 2013-4-16 08:02 编辑

求批量写块(WBLOCK),CAD图中块名不同,但是有有一定规律,可编缉 写出文件名,求各位高手给个程序。谢谢。

Gu_xl 发表于 2013-4-16 08:00:33

本帖最后由 Gu_xl 于 2013-4-23 16:16 编辑

(defun c:tt (/ *error* cmdecho filename name path i)
(defun *error* (s)
    (princ s)
    (setvar 'cmdecho cmdecho)
    )
(setq cmdecho (getvar 'cmdecho))
(setvar 'cmdecho 0)
(cond
    ((not (setq filename (getfiled "保存文件名" "" "dwg" 1))))
    (t
   (setq name (VL-FILENAME-BASE filename)
         path (strcat (VL-STRING-RIGHT-TRIM
                        "\\"
                        (VL-FILENAME-DIRECTORY filename)
                        )
                        "\\"
                        )
         i    0
         )
   (princ "\n选择写块物体:")
   (while (setq ss (ssget))
       (command "wblock"
                (strcat path name (itoa (setq i (1+ i))) ".dwg")
                ""
                "0,0,0"
                ss
                ""
                )
       (command "oops")
       (princ "\n继续选择写块物体<右键结束>:")
       )
   )
    )
(setvar 'cmdecho cmdecho)
(princ)
)

zyhandw 发表于 2013-4-16 09:14:47

有一定规律,是什么规律?还是上传测试用的附件再说吧

Gu_xl 发表于 2013-4-16 09:15:23


;c:blk 批量块输出到指定文件夹文件 By Gu_xl
(defun c:blk (/ WINSHELL SHFOLDER CATCHIT PATH BLL XL K KN BL N B expert cmdecho)
(setq expert (getvar 'expert)
        cmdecho (getvar 'cmdecho)
        )
(setvar 'expert 5)
(setvar 'cmdecho 0)
    (setq winshell (vlax-create-object "Shell.Application"))
(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 "选择文件夹" 1))
(setq
    catchit (vl-catch-all-apply
              '(lambda ()
               (setq shFolder (vlax-get-property shFolder 'self))
               (setq path (vlax-get-property shFolder 'path))
             )
          )
)
(if (not (vl-catch-all-error-p catchit))
   (progn
(setq blL '() xl '(0 0) k 0 kn 0)
(setq bl (tblnext "BLOCK" T))
(setq bll (cons (cdr (assoc 2 bl)) blL))
(while (setq bl (tblnext "block"))
       (setq bll (cons (cdr (assoc 2 bl)) blL))
   )

(setq bll (acad_strLSort bll))
(foreach b bll
    (command "wblock" (strcat path "\\" b) b)
    )
)
    )
(vlax-release-object winshell)
(setvar 'expert expert)
(setvar 'cmdecho cmdecho)
(princ)
)

zyhandw 发表于 2013-4-16 17:31:32

向G版学习了

ly8zx2109 发表于 2013-4-17 18:07:50

就是把附件中的图分为四张图。不是把每个块分出去。谢谢版主。

ly8zx2109 发表于 2013-4-17 18:09:20

就是这个附件

ly8zx2109 发表于 2013-4-17 18:10:10

谢谢

ly8zx2109 发表于 2013-4-25 15:55:33

AutoCAD Batchplot 批量打印程序 这个程序就可做到这些功能,后来才发现的,谢谢版主了。

幸福是真 发表于 2013-9-21 15:46:27

Gu_xl 发表于 2013-4-16 09:15 static/image/common/back.gif


块多了会导至CAD卡死
页: [1] 2
查看完整版本: 求批量写块,