明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2159|回复: 4

求使DWG或DXF文件中所有的东东的Z坐标变为零的工具

[复制链接]
发表于 2002-8-3 20:17:00 | 显示全部楼层 |阅读模式
发表于 2002-8-4 11:16:00 | 显示全部楼层

有一个

(defun C:FLATTEN ()
(command "_.UCS" "")
(command "_.move" "_all" "" '(0 0 1e99) "" "_.move" "_p" "" '(0 0 -1e99) "")
(princ)
)  


别人写的,没看懂,但很好用。
谁知道(command "_.move" "_all" "" '(0 0 1e99) "" "_.move" "_p" "" '(0 0 -1e99) "")这句什么意思请告诉一下。
发表于 2002-8-4 13:00:00 | 显示全部楼层

是这样的,我来告诉你

1e99就是它的Z坐标平移了10的99次幂,具体这个值有多大?你自己算一算就知道了,总之,按常理这个数值应该比你图挡中所有图元的Z坐标都要大上很多很多........这样,相对于10的99次幂来说,图元的Z坐标也就被忽略为“0”了,最恰当的比喻就类似数学中的趋于无穷小了,经过第一次平移后,所有图元的Z坐标就是一个统一的值,即都到10的99次幂高度了,再经过第二次平移Z坐标又被平移了-10的99次幂了,从而所有图元Z坐标也就都变为“0”了,罗嗦这些,不知明白没?这是一个很巧妙的技巧,我也很佩服!大家继续努力吧!
发表于 2002-8-4 13:48:00 | 显示全部楼层

明白了,3QS

发表于 2002-8-4 17:23:00 | 显示全部楼层

这样更好

(defun C:che()  
(setq a (ssget "x"))
(command "change" a "" "p" "e" 0 "" "")  
(princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:42 , Processed in 0.169653 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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