明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2134|回复: 9

批量写块,求助。。。

[复制链接]
发表于 2010-6-23 16:26:00 | 显示全部楼层 |阅读模式
  

 

如上图:

   有一排这样的块(几千个),需要批量把他们分割成一个一个的文件

   文件名以图中的宗地编号命名,附件有样本图式

   各位高手指点下,谢谢。

本帖子中包含更多资源

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

x
发表于 2010-6-24 12:25:00 | 显示全部楼层
  1. (defun c:test (/    BLOCK_NAME  FILED    FILE_PATH
  2.         MAXPOINT    MINPOINT    OBJ    OBJ_10
  3.         OBJ_DATA    OBJ_I       OBJ_NAME    OBJ_WBLOCK
  4.         OLDMCDECHO  SEAR_ZDH_PT SEAR_ZDH_PT1
  5.         ZDH    ZDH_T
  6.        )
  7. ;;;调用系统选择文件夹对话框  来源于明经通道
  8.   (defun qf_getFolder (msg / WinShell shFolder path catchit)
  9.     (vl-load-com)
  10.     (setq winshell (vlax-create-object "Shell.Application"))
  11.     (setq
  12.       shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1)
  13.     )
  14.     (setq
  15.       catchit (vl-catch-all-apply
  16.   '(lambda ()
  17.      (setq shFolder (vlax-get-property shFolder 'self))
  18.      (setq path (vlax-get-property shFolder 'path))
  19.    )
  20.        )
  21.     )
  22.     (if (vl-catch-all-error-p catchit)
  23.       nil
  24.       path
  25.     )
  26.   )
  27.   (setq block_name "gddjtk4")
  28.   (setq obj (ssget (list (cons 0 "insert") (cons 2 block_name))))
  29.   (if obj
  30.     (progn
  31.       (setq filed (qf_getFolder "选择保存的路径:"))
  32.       (if filed
  33. (progn
  34.    (setq oldmcdecho (getvar "cmdecho"))
  35.    (setvar "cmdecho" 0)
  36.    (setq obj_i -1)
  37.    (repeat (sslength obj)
  38.      (setq obj_name (ssname obj (setq obj_i (1+ obj_i))))
  39.      (vla-GetBoundingBox
  40.        (vlax-ename->vla-object obj_name)
  41.        'minpoint
  42.        'maxpoint
  43.      ) ;_取得包容图元的最大点和最小点
  44.      (setq minpoint (vlax-safearray->list minpoint)) ;_左下角
  45.      (setq maxpoint (vlax-safearray->list maxpoint)) ;_右上角
  46.      (command "..zoom" minpoint maxpoint)
  47.      (setq obj_data (entget obj_name))
  48.      (setq obj_10 (cdr (assoc 10 obj_data))) ;_块的插入点,用于找到宗地编号
  49.      (setq sear_zdh_pt1 (polar obj_10 (/ pi 2) 76))
  50.      (setq sear_zdh_pt (polar sear_zdh_pt1 0 15))
  51.      (setq zdh_t (ssname (ssget "f"
  52.            (list sear_zdh_pt sear_zdh_pt1)
  53.            '((0 . "text"))
  54.     )
  55.     0
  56.    )
  57.      )
  58.      (setq zdh (cdr (assoc 1 (entget zdh_t))))
  59.      (setq file_path (strcat filed "\" zdh ".dwg"))
  60.      (setq obj_wblock (ssget "c" minpoint maxpoint))
  61.      (command "-wblock" file_path "" obj_10 obj_wblock "" "oops")
  62.    )
  63.    (setvar "cmdecho" oldmcdecho)
  64.    (princ "\n完成")
  65. )
  66.       )
  67.     )
  68.   )
  69.   (princ)
  70. )
 楼主| 发表于 2010-6-25 17:53:00 | 显示全部楼层

 谢谢,很好用

发表于 2010-6-27 13:36:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-12-17 11:27:04 | 显示全部楼层
跟我遇到问题类似,借用一下,谢谢高手
 楼主| 发表于 2011-6-5 22:09:29 | 显示全部楼层
     上面的程序很好用,但后面的图框和样式有些改变,程序就不能使用了
   请帮忙修改下好不,
   修改后图和坐标表单独保存为一个文件。
   应该是要修改下选择的范围,可我不会
   那位大侠帮帮忙吧
   这是样本

本帖子中包含更多资源

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

x
发表于 2011-8-3 18:18:02 | 显示全部楼层
强大,要好好学一下liap
发表于 2011-8-3 20:25:22 | 显示全部楼层
回复 malianxnkj 的帖子

本帖子中包含更多资源

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

x
发表于 2011-8-9 17:56:00 | 显示全部楼层
太强了,牛人
发表于 2011-8-15 20:47:30 | 显示全部楼层
什么东西这么牛逼啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 09:33 , Processed in 0.177938 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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