乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 3

Acad & VBA precision

[复制链接]

5

主题

21

帖子

1

银币

初来乍到

Rank: 1

铜币
41
发表于 2008-6-27 15:24:03 | 显示全部楼层 |阅读模式
我在AUGI上发布了这个,没有得到太多的回应。这里有人对我的问题有见解吗?
我正在从事一个由政府机构拥有和管理的机场项目,该项目在大都市地区拥有许多设施。可以理解的是,他们希望所有文件都有一个共同的原点。鉴于当地区域的规模,这涉及一些非常大的数字。使问题复杂化的是,他们以工程单位维护他们的数据库,即一英尺的小数。我们都知道,这在Acad术语中的真正含义是一英寸的小数。但作为建筑师,我们使用英尺和英寸。从一个系统反复切换到另一个系统而不引入累积舍入误差是一场噩梦。
如果这还不够,还有更多。原始CAD数据被绘制到该机构决定放弃的原点,以支持NAD83。这意味着从A点到B点只需在180英里内转换一次数据!!!!!
我的方法是编写一个VBA程序,该程序使用旧的插入点,从点转换,转换为点和最终的休息点,并根据需要向上和向下扩展12和1/12。所有数字都以双精度捕获到最大。我很清楚浮点算术的复杂性。我开始怀疑我是否找到了Acad单位的极限。
一旦数据以英尺的小数点数转换为最终静息位置,坐标的工程单位为1044943.91129001,173435.132338795,0。然后,我必须将此工程数据向上扩展12,更改单位并将数据移动到1044943'-10.935480132“,17345'-1.58806554”,0.0000。将数据移动到这些坐标并列出结果后,我得到X = 1.2539E + 07 Y = 17345'-1 9/16“ Z = 0'-0” x以英寸为单位,y以FTIN为单位。
谁能解释一下这里发生了什么?有趣的是,VBA 似乎比 Acad 应用程序更好地处理大量数字。
我有没有提到轮换?它是-28d58'6.4289”

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

7

主题

42

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2008-6-27 17:29:12 | 显示全部楼层
>>一旦数据被转换到以一英尺的小数为单位的最终静止位置,坐标为1044943.91129001,173435.132338795,0,以工程单位表示。然后我必须将工程数据放大12,更改单位并将数据移动到1044943'-10.935480132",17345'-1.58806554",0.0000。在我将数据移动到这些坐标并列出结果后,我得到X=1.2539E+07 Y=17345'-1 9/16"Z=0'-0"x以英寸为单位,y以FTIN为单位。
>>有人能解释一下这里发生了什么吗?
你需要解释什么?你似乎很清楚你的“挑战”是什么。如果您熟悉浮点,那么您了解“1.2539E+07”是什么吗?如果不是,那是正确X位置的四舍五入版本-(1044943.91129001*12=12539326.93548012),即1.2539,您的小数点向左移动了“E+”7位。
您可能已经看到舍入错误。由于您需要固定数量的数字字符来表示您的位置,因此我会限制转换单位之间的来回。每次除以12时,您都在考虑在小数点右侧至少添加另一个数字的可能性;每次乘以12时,您都在小数点的左侧添加一个字符,这意味着从右侧删除另一个字符......
为了达到最大的精度,我首先将所有内容转换为一种类型的单位。我可能会将较小的单位相乘,而不是将较大的单位除以;这样您只会在左侧添加一个字符,但除以可以在右侧添加多个小数......
我会最后完成所有的转换。
回复

使用道具 举报

1

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
11
发表于 2008-6-28 11:11:49 | 显示全部楼层
我预计机场已经建立了当地的测量控制点,并与NAD83进行了协调,因为早在90年代就需要它。
至于将基数从英尺十进制更改为英尺和英寸。 看起来你会引入错误而不是减少错误。 绘图单元是绘图单位。10 英尺是英尺十进制系统中的 10 个单位,以英尺英寸为单位的 120 个单位。AcGeTolerance 类具有默认函数 equalPoint 和 equalVector,容差设置为 1.e-10。 通过将一切乘以十二,你将拥有相等的点和不存在的向量。 图形文件只是矢量和点的数据库。
除大多数地理信息系统外,调查和土木工程也以十进制单位进行。 0.01 英尺仍为 1/8“ (+/-),本克标记的基准面设置为 0.005 英尺精度。 提供比获得原始数据更高的精度级别并不能提供更精确的数据。
最好的问候,
MJG
回复

使用道具 举报

5

主题

21

帖子

1

银币

初来乍到

Rank: 1

铜币
41
发表于 2008-6-30 16:22:37 | 显示全部楼层
我同意改变单位会在计算中引入错误。机场现有条件的土木工程图纸(加油消防栓和无数其他公用事业)都是以十进制一英尺为单位。另一方面,建筑设计以英尺和英寸为单位。由于这个机场拥挤的基础设施,我们将不得不将一些主要服务线与我们的新建筑连接起来。冲突检测的准确性是一个问题。要将建筑图纸与工程图纸进行比较,需要翻译其中之一。随着项目的进展,我们将召开协调会议,这将需要叠加。
也许这就是哀叹Acad对单位的整体处理的地方。这也不仅仅是工程单位。我们做了很多公制建筑工作。那里的比例因子是25.4。我接受的训练是,物理对象不会因为用于测量它的尺子而改变大小。但这正是Acad所做的。整个过程是一个解决问题的方法,即Acad 1.0从未预料到全球主导地位和对世界单位的需求。
然后还有像Revit这样的程序在内部进行所有转换............
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 08:57 , Processed in 0.403972 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表