乐筑天下

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

最不可思议的奇迹!!!!!!请使用CAD2004版本的朋友进来看!

[复制链接]

7

主题

51

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2006-6-14 16:11:00 | 显示全部楼层 |阅读模式
直接开门见山
今天写了一个超简短的VBA程序 先请大家过目
Sub Unbelievable()
Dim LinePoints(0 To 7) As Double
Dim Lineobj As AcadLWPolyline
Dim OutLineObj As Variant
    LinePoints(0) = 518272.6283
    LinePoints(1) = 3181584.5378
    LinePoints(2) = 518265.3245
    LinePoints(3) = 3186202.672
    LinePoints(4) = 524367.6342
    LinePoints(5) = 3186213.9028
    LinePoints(6) = 524377.3628
    LinePoints(7) = 3181595.7583
    Set Lineobj = ThisDrawing.ModelSpace.AddLightWeightPolyline(LinePoints)
    Lineobj.Closed = True
    OutLineObj = Lineobj.Offset(-85)
End Sub

相信代码应该是超简单的了吧
程序先定义了4个点的XY坐标 由这4个点 构成一个4边形 然后使这个4边形闭合
最后 将这个4边形 偏移85     仅此而已 !!!
请使用CAD2004版本的朋友运行一下我这个程序
结果会让你大跌眼镜!!!!!
偏移的框 位置完全正确
原先画的内框 居然被移动到十万八千米外!!!!!!! 不可思议。。。。。
而在2006 2007版本中 代码完全没有问题
2个框 完全符合要求
不知道为什么2004版本中 会这样!?!?!?
回复

使用道具 举报

7

主题

51

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2006-6-14 18:06:00 | 显示全部楼层
经过反复测试
问题出在 OutLineObj = Lineobj.Offset(-85)
这一行 如果去掉这一行 那程序是正确的
会在指定的4个点上 画出一个框
但是 一偏移  刚画的这个框(由4个点组成的框) 就被莫名其妙的移动到十万八千里外去了 ,而偏移出来的外框 坐标是正确的。
真是超奇怪 思来想去 没弄明白。。。。
有人能帮忙解决吗?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2006-6-15 10:33:00 | 显示全部楼层
这老早3年前就讨论过了。
可以解决的方法就是偏移前记住位置,偏移后查看位置是否变了,如果变了就移回去。
回复

使用道具 举报

7

主题

51

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2006-6-15 14:15:00 | 显示全部楼层
o  谢谢明总。
那怎么样的特定条件下 进行偏移 原线会移动呢?
我画了一个1000X1000的框 貌似又对的。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 19:44 , Processed in 0.934544 second(s), 60 queries .

© 2020-2025 乐筑天下

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