明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9599|回复: 54

批量将一个文件夹内的所有dwg文件的图框左下角设为原点

  [复制链接]
发表于 2011-11-15 01:03:38 | 显示全部楼层 |阅读模式
本帖最后由 shalei021647 于 2011-11-15 01:26 编辑

请求高手帮忙编一个批量一个文件夹内所有文件图框的左下角定为原点的程序。下面是高手 xiaxiang 做的将一个文件的图框左下角定为原点的源码。,请高手帮忙加一个批量啊,是不然似乎没有啥意义啊

(defun c:Move00()
(princ "nMove all from extmin to 0,0")
(setvar "cmdecho" 0)
(command "zoom" "e")
(command "move" "all" "" (list (car (getvar "extmin"))(cadr (getvar "extmin")) 0.0) "0,0,0")
(command "zoom" "e")
(setvar "cmdecho" 1)
(princ)
)




求助啊,各位高手


发表于 2020-9-1 17:49:09 | 显示全部楼层

很好用,能否加一个右上角的功能?
发表于 2019-1-20 18:27:27 来自手机 | 显示全部楼层
做个标记回去试下
发表于 2020-9-15 12:12:07 | 显示全部楼层
学习了一下批量
发表于 2011-11-15 07:30:45 来自手机 | 显示全部楼层
SCRiPT命令!
 楼主| 发表于 2011-11-15 09:46:54 | 显示全部楼层
Gu_xl 发表于 2011-11-15 07:30
SCRiPT命令!

版主,我不会用这个命令啊。另外,上面的那个程序为什么对图框是多段线的没办法真正把左下角点设为原点啊,总是差一些距离。而如果把多段线炸开的话,就可以啊。
发表于 2011-11-15 10:19:06 | 显示全部楼层
shalei021647 发表于 2011-11-15 09:46
版主,我不会用这个命令啊。另外,上面的那个程序为什么对图框是多段线的没办法真正把左下角点设为原点啊 ...

上传样图并详细说明操作目的!
 楼主| 发表于 2011-11-15 10:23:27 | 显示全部楼层
Gu_xl 发表于 2011-11-15 10:19
上传样图并详细说明操作目的!

昨天我试了一晚上都不能正确使用,今天早上再试竟然行了,郁闷啊。多谢版主的热心回复
 楼主| 发表于 2011-11-15 10:40:45 | 显示全部楼层
Gu_xl 发表于 2011-11-15 10:19
上传样图并详细说明操作目的!

版主,刚才测试终于发现是为什么出问题了。当我在图中进行过手动设置坐标原点为某一点之后,再用move00这个程序,就无论如何也不能把左下角移到坐标原点了。求解。下面是这个图,求老大帮忙测试。

急盼原因啊

本帖子中包含更多资源

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

x
发表于 2011-11-15 10:48:14 | 显示全部楼层
shalei021647 发表于 2011-11-15 10:40
版主,刚才测试终于发现是为什么出问题了。当我在图中进行过手动设置坐标原点为某一点之后,再用move00这 ...

zoom之前加一句(command "base" "0,0")试试!

点评

老大,是哪个zoom之前啊,具体加在什么位置啊  发表于 2011-11-15 11:08
 楼主| 发表于 2011-11-15 11:02:19 | 显示全部楼层
Gu_xl 发表于 2011-11-15 10:48
zoom之前加一句(command "base" "0,0")试试!

我先试一下,大侠。
另外,我发现,我用网上的那个cad批处理程序2.5,然后选择多个文件,再用move00命令的话,也会出现不能真正把左下角定位到原点。老大,能否帮个忙用lisp给写一个批改多个文件图框左下角为原点啊!谢谢了先1
 楼主| 发表于 2011-11-15 11:27:51 | 显示全部楼层
Gu_xl 发表于 2011-11-15 10:48
zoom之前加一句(command "base" "0,0")试试!

版主,刚才测试发现,当新设置了坐标原点后,再用move00命令,出错的原因可能是由于坐标系在我设置新坐标原点时候被改变了。当我把坐标系切回世界坐标系后,再用move00命令就正确了,求解决方法。并恳请楼主帮忙写个批处理n个文件的方法。不是我不想自己写,只是我真的不会啊。昨晚为这个问题,我从八点多一直熬到今天早上六点多。郁闷死我了。到现在还解决不了啊。
 楼主| 发表于 2011-11-15 11:39:00 | 显示全部楼层
本帖最后由 shalei021647 于 2011-11-15 11:39 编辑
Gu_xl 发表于 2011-11-15 10:48
zoom之前加一句(command "base" "0,0")试试!

老大,我加了一句返回坐标系的命令就好了,但是不能批量做用多个dwg文件啊,求救
改成下面这样的了

(defun c:Move00()
(princ "nMove all from extmin to 0,0")
(setvar "cmdecho" 0)
(command "zoom" "e")
(command "move" "all" "" (list (car (getvar "extmin"))(cadr (getvar
"extmin")) 0.0) "0,0,0")
(command "ucs" "w")
(command "zoom" "e")
(setvar "cmdecho" 1)
(princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 23:56 , Processed in 0.200982 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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