本帖最后由 shalei021647 于 2011-11-16 20:26 编辑
xiaxiang 发表于 2011-11-16 11:24
经非严谨测试,如下代码似乎可行。请再测试
我现在改成这样的代码了:
- (setvar "cmdecho" 0);;暂时在命令函数运行时关闭回显提示和输入
- (command "ucs" "w");;把当前坐标系设为世界
- (setq dimscaley (getvar"dimscale") dimlfacy (getvar"dimlfac"));;获取原图当前使用的标注样式的全局比例因子和测量单位比例因子
- (setvar "dimscale" 1);;把当前标注样式的全局比例改为1
- (setvar "dimlfac" 1);;把当前标注样式的测量单位比例因子改为1
- (command "-purge" "a" "" "n")
- (command "zoom" "e")
- (command "base" (list (car (getvar"extmin")) (cadr (getvar "extmin")) 0.0000))
- (command "move" "all" "" (list (car (getvar"extmin")) (cadr (getvar "extmin")) 0.0000) (list 0.0000 0.0000 0.0000))
- (setvar "dimscale" dimscaley);;恢复原标注样式的全局比例
- (setvar "dimlfac" dimlfacy);;恢复原标注样式的测量单位比例因子
- (command "zoom" "e")
- (setvar "cmdecho" 1)
可是还是不太行,主要就是这两张图纸(我上面传的压缩包里面第二张和第三张),也就是这两个图,。在用上面的代码批处理的时候,除了这两张图都能成功的将左角点移到原点。而这两张,无论是我单独打开这两个文件用命令处理,还是批处理,都不能将左角点归到原点去。图框外面也没有啥东西啊,郁闷的很。
又经过半天的测试,突然发现,这两个图纸我先把里面的所有的图移动一下位置,然后,再用命令就能把左角点移动到原点了,费解啊
刚才又发现,这个先移动的位置必须是从原点方向往正x和正y方向移动后,再用命令才好使。真的很费解,难道是图形界限的问题?
|