明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5621|回复: 17

求批量写块,

[复制链接]
发表于 2013-4-16 08:00 | 显示全部楼层 |阅读模式
3明经币
本帖最后由 ly8zx2109 于 2013-4-16 08:02 编辑

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

最佳答案

发表于 2013-4-16 08:00 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-4-23 16:16 编辑

  1. (defun c:tt (/ *error* cmdecho filename name path i)
  2.   (defun *error* (s)
  3.     (princ s)
  4.     (setvar 'cmdecho cmdecho)
  5.     )
  6.   (setq cmdecho (getvar 'cmdecho))
  7.   (setvar 'cmdecho 0)
  8.   (cond
  9.     ((not (setq filename (getfiled "保存文件名" "" "dwg" 1))))
  10.     (t
  11.      (setq name (VL-FILENAME-BASE filename)
  12.            path (strcat (VL-STRING-RIGHT-TRIM
  13.                           "\\"
  14.                           (VL-FILENAME-DIRECTORY filename)
  15.                           )
  16.                         "\\"
  17.                         )
  18.            i    0
  19.            )
  20.      (princ "\n选择写块物体:")
  21.      (while (setq ss (ssget))
  22.        (command "wblock"
  23.                 (strcat path name (itoa (setq i (1+ i))) ".dwg")
  24.                 ""
  25.                 "0,0,0"
  26.                 ss
  27.                 ""
  28.                 )
  29.        (command "oops")
  30.        (princ "\n继续选择写块物体<右键结束>:")
  31.        )
  32.      )
  33.     )
  34.   (setvar 'cmdecho cmdecho)
  35.   (princ)
  36.   )
回复

使用道具 举报

发表于 2013-4-16 09:14 | 显示全部楼层
有一定规律,是什么规律?还是上传测试用的附件再说吧
回复

使用道具 举报

发表于 2013-4-16 09:15 | 显示全部楼层
  1. ;c:blk 批量块输出到指定文件夹文件 By Gu_xl
  2. (defun c:blk (/ WINSHELL SHFOLDER CATCHIT PATH BLL XL K KN BL N B expert cmdecho)
  3.   (setq expert (getvar 'expert)
  4.         cmdecho (getvar 'cmdecho)
  5.         )
  6.   (setvar 'expert 5)
  7.   (setvar 'cmdecho 0)
  8.     (setq winshell (vlax-create-object "Shell.Application"))
  9.   (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 "选择文件夹" 1))
  10.   (setq
  11.     catchit (vl-catch-all-apply
  12.               '(lambda ()
  13.                  (setq shFolder (vlax-get-property shFolder 'self))
  14.                  (setq path (vlax-get-property shFolder 'path))
  15.                )
  16.             )
  17.   )
  18.   (if (not (vl-catch-all-error-p catchit))
  19.    (progn
  20.   (setq blL '() xl '(0 0) k 0 kn 0)
  21.   (setq bl (tblnext "BLOCK" T))
  22.   (setq bll (cons (cdr (assoc 2 bl)) blL))
  23.   (while (setq bl (tblnext "block"))
  24.          (setq bll (cons (cdr (assoc 2 bl)) blL))
  25.      )

  26.   (setq bll (acad_strLSort bll))
  27.   (foreach b bll
  28.     (command "wblock" (strcat path "\\" b) b)
  29.     )
  30.   )
  31.     )
  32.   (vlax-release-object winshell)
  33.   (setvar 'expert expert)
  34.   (setvar 'cmdecho cmdecho)
  35.   (princ)
  36. )
回复

使用道具 举报

发表于 2013-4-16 17:31 | 显示全部楼层
向G版学习了
回复

使用道具 举报

 楼主| 发表于 2013-4-17 18:07 | 显示全部楼层
就是把附件中的图分为四张图。不是把每个块分出去。谢谢版主。
回复

使用道具 举报

 楼主| 发表于 2013-4-17 18:09 | 显示全部楼层
就是这个附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2013-4-17 18:10 | 显示全部楼层
谢谢
回复

使用道具 举报

 楼主| 发表于 2013-4-25 15:55 | 显示全部楼层
AutoCAD Batchplot 批量打印程序 这个程序就可做到这些功能,后来才发现的,谢谢版主了。
回复

使用道具 举报

发表于 2013-9-21 15:46 | 显示全部楼层
Gu_xl 发表于 2013-4-16 09:15

块多了会导至CAD卡死
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 16:13 , Processed in 0.815438 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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