明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 860|回复: 11

[提问] 跪求大神!批量导出所有图块,并自动定位在XY坐标原点上

[复制链接]
发表于 2020-4-15 22:47 | 显示全部楼层 |阅读模式
本帖最后由 wutao8282 于 2020-4-21 11:09 编辑

  • 插件为CAD图块批量导出功能,加载之后输入kdc命令输入导出路径可自动将所有块导出生成DWG格式的文件
  • 希望实力大神能帮忙改一下每个块导出生成的自动定位在XY坐标系原点
  • 要求X轴为块的最长边重合,Y轴为块最左边的顶点,如下截图
  • 简单说就是要把图块定位到坐标系原点,X轴与图形的最长边重合,图形不能超出Y轴边界(就是Y轴与块的最左边顶点重合)

就是我想批量导出CAD里面的块参照,将导出的块全部另存为dwg文件,并且导出的的文件在坐标原点XY轴90度夹角上
  • (defun c:kdc ()
  • (setq cmdecho (getvar "CMDECHO"))
  • (setvar "CMDECHO" 0)
  • ;
  • (if (not dos_getdir)
  • (setq path (getstring "\nDS> Target Folder: " T))
  • (setq path (dos_getdir "Target Folder" (getvar "DXFPREFIX")))
  • )
  • (if (/= path nil)
  • (progn
  • (if (= (substr path (strlen path) 1) "\\")
  • (setq path (substr path 1 (1- (strlen path))))
  • )
  • (princ "\nDS> Building List of Blocks ... ")
  • (setq lst nil)
  • (setq itm (tblnext "BLOCK" T))
  • (while (/= itm nil)
  • (setq nam (cdr (assoc 2 itm)))
  • (setq pass T)
  • (if (/= (cdr (assoc 1 itm)) nil)
  • (setq pass nil)
  • (progn
  • (setq ctr 1)
  • (repeat (strlen nam)
  • (setq chk (substr nam ctr 1))
  • (if (or (= chk "*")(= chk "|"))
  • (setq pass nil)
  • )
  • (setq ctr (1+ ctr))
  • )
  • )
  • )
  • (if (= pass T)
  • (setq lst (cons nam lst))
  • )
  • (setq itm (tblnext "BLOCK"))
  • )
  • (setq lst (acad_strlsort lst))
  • (princ "Done.")
  • ;
  • (foreach blk lst
  • (setq fn (strcat path (chr 92) blk))
  • (if (findfile (strcat fn ".dxf"))
  • (command "_.WBLOCK" fn "_Y" blk)
  • (command "_.WBLOCK" fn blk)
  • )
  • )
  • )
  • )
  • ;
  • (setvar "CMDECHO" cmdecho)
  • (princ)
  • )

本帖子中包含更多资源

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

x
发表于 2020-4-16 11:32 | 显示全部楼层
真没看懂你说什么
 楼主| 发表于 2020-4-16 12:26 | 显示全部楼层
start4444 发表于 2020-4-16 11:32
真没看懂你说什么

就是我CAD文件里面有很多块,每个块批量导出为单独到dwg文件,导出我已经做好了,但是我要导出的图形定位在CAD坐标点XY轴中心点

点评

你只要在做Bblock的时候注意确定好这个0,0点,也就没有后面需要去调整的事了。 如果你之前没做好,那你需要的是调整block原点工具,这个工具 Gu版发过的,你搜一下本版。  发表于 2020-4-16 12:40
这个不叫“XY轴中心点”,这个叫做“坐标系原点”,七年级就学过的哟!  发表于 2020-4-16 12:37
发表于 2020-4-16 12:40 来自手机 | 显示全部楼层
本帖最后由 kwok 于 2020-4-16 12:43 编辑

估计楼主是想以块的左下角作基点对到0,0,0原点后wblock导出猜的.
 楼主| 发表于 2020-4-16 12:40 | 显示全部楼层
wutao8282 发表于 2020-4-16 12:26
就是我CAD文件里面有很多块,每个块批量导出为单独到dwg文件,导出我已经做好了,但是我要导出的图形定位 ...

我是小白,不好意思,不知道能不能改
 楼主| 发表于 2020-4-16 12:52 | 显示全部楼层
wutao8282 发表于 2020-4-16 12:26
就是我CAD文件里面有很多块,每个块批量导出为单独到dwg文件,导出我已经做好了,但是我要导出的图形定位 ...

这些块上别人做好的。只能选择导出的时候再定位
发表于 2020-4-16 13:24 | 显示全部楼层
wutao8282 发表于 2020-4-16 12:26
就是我CAD文件里面有很多块,每个块批量导出为单独到dwg文件,导出我已经做好了,但是我要导出的图形定位 ...

这种问题如果你没信心把问题清晰描述干脆就把你最终达到的效果说出来,往往达到目的是有很多方法的,比如这里的问题你是不是想以后插入这些图块的时候能以左下角为插入点。
 楼主| 发表于 2020-4-16 14:15 | 显示全部楼层
start4444 发表于 2020-4-16 13:24
这种问题如果你没信心把问题清晰描述干脆就把你最终达到的效果说出来,往往达到目的是有很多方法的,比如 ...

我想批量导出CAD里面的块参照,将导出的块全部另存为dwg文件,并且导出的的文件中块图形必须在XY原点上
 楼主| 发表于 2020-4-16 14:16 | 显示全部楼层
start4444 发表于 2020-4-16 13:24
这种问题如果你没信心把问题清晰描述干脆就把你最终达到的效果说出来,往往达到目的是有很多方法的,比如 ...

我想批量导出CAD里面的块参照,将导出的块全部另存为dwg文件,并且导出的的文件中块图形必须在XY原点上
 楼主| 发表于 2020-4-16 14:16 | 显示全部楼层
start4444 发表于 2020-4-16 13:24
这种问题如果你没信心把问题清晰描述干脆就把你最终达到的效果说出来,往往达到目的是有很多方法的,比如 ...

我想批量导出CAD里面的块参照,将导出的块全部另存为dwg文件,并且导出的的文件中块图形必须在XY原点上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-1 17:58 , Processed in 0.205017 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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