乐筑天下

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

[编程交流] 块插入点不正确

[复制链接]

3

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 22:55:23 | 显示全部楼层 |阅读模式
你好
 
我有一些代码可以获取块的插入点,以确保它在0,0,0处插入。在Autocad中列出块时,插入点为0,0,0(即使单位设置为8个小数点)。当我在vba中获得块的插入点时,它显示插入点(0)=-2.05182e-009。
 
为什么插入点的值与autocad中显示的值不同?
回复

使用道具 举报

1

主题

597

帖子

599

银币

初来乍到

Rank: 1

铜币
2
发表于 2022-7-6 23:02:32 | 显示全部楼层
检查块(编辑器),查看其中是否包含硬插入点。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:12:37 | 显示全部楼层
返回的坐标是UCS还是WCS?
回复

使用道具 举报

3

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 23:14:12 | 显示全部楼层
UCS设置为“世界”,块的插入点为0,0,0。
回复

使用道具 举报

1

主题

597

帖子

599

银币

初来乍到

Rank: 1

铜币
2
发表于 2022-7-6 23:19:33 | 显示全部楼层
这是纸面空间中的标题栏/边界吗?如果是这样,偏移可能与打印偏移有关。有人把这个从0,0中去掉了吗?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:28:39 | 显示全部楼层
请张贴您的密码,并封锁。
回复

使用道具 举报

3

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 23:34:03 | 显示全部楼层
我已连接了该块。当我检查块的扩展数据时,我可以看到不正确的插入点(10-2.05182e-009 0.0 0.0)。当我列出块时,插入点是0,0,0。
 
以下是检查块以确保其在0,0,0处插入的代码:
  1. Private Sub checkTitleBlockInsertionPoint()
  2.    Dim temp1 As AcadBlockReference
  3.    If strDrawingType = "iso" Then
  4.        grpCode(0) = 2
  5.        dataVal(0) = strIsoBorderBlockName
  6.    Else
  7.        grpCode(0) = 2
  8.        dataVal(0) = strGABorderBlockName
  9.    End If
  10.    'Problem found with iso border insertion point not reading properly.
  11.    'Temporarily remove the check for insertion point.
  12.    If strDrawingType <> "iso" Then
  13.        Set ssetobj = AddSelectionSet("SS01")
  14.        mode = acSelectionSetAll
  15.        ssetobj.Select mode, , , grpCode, dataVal
  16.        Set temp1 = ssetobj.Item(i)
  17.        i = 0
  18.        For i = 0 To 2
  19.            If temp1.InsertionPoint(i) <> 0 Then
  20.                errorType (2)
  21.                Exit For
  22.            End If
  23.            i = i + 1
  24.        Next
  25.    End If
  26. End Sub
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:41:30 | 显示全部楼层
我主要使用Visual LISP(ActiveX)编程,所以请原谅我需要澄清。。。
 
在VBAIDE的“对象浏览器”下,InsertionPoint属性是一个变量,它应该返回(x y z),而不是像DXF代码那样返回(10 x y z),对吗?
回复

使用道具 举报

3

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 23:48:22 | 显示全部楼层
是的,你说得对。插入点是一个变体(我的代码中的Insertionpnt(i))。我刚刚加入了dxf组码10,以显示vba中为插入点返回的内容。当我调试代码时,x显示的值是-2.05182e-009,当我列出块时,它实际上是0。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 23:55:01 | 显示全部楼层
符号-2.05182e-009等于-0.00000000205182。这在只有8位小数的读数中不会显示。然而,从更大的角度来看,该值应被视为0。
 
请参阅此网页,列出程序员在处理十进制/二进制转换时应考虑的准则。
http://support.microsoft.com/kb/125056
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-28 17:45 , Processed in 0.828053 second(s), 73 queries .

© 2020-2025 乐筑天下

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