乐筑天下

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

奇怪的添加块参照问题

[复制链接]

34

主题

124

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2010-7-9 09:18:00 | 显示全部楼层 |阅读模式
我对已有的一个块添加相应一个块参照,插入点由提示PromptPointOptions获取,但是插入后并不显示在那个点位置,而是有很大偏差,高手们帮我看看啊,谢谢
Dim ed As Editor = AcadApp.DocumentManager.MdiActiveDocument.Editor
        Dim db As Database = AcadApp.DocumentManager.MdiActiveDocument.Database
        ' 普通的点交互操作.
        Dim optPoint As New PromptPointOptions(vbCrLf & "请指定放置点:")
        Dim resPoint As PromptPointResult = ed.GetPoint(optPoint)
        If resPoint.Status  PromptStatus.OK Then Return ObjectId.Null
        Dim obid As ObjectId
        Using trans As Transaction = db.TransactionManager.StartTransaction()
            ' 将块参照加入到图形数据库中.
            '以读的方式打开块表
            Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)
            '如果没有blockName表示的块,则程序返回
            If (bt.Has(blockname) = False) Then
                Return ObjectId.Null
            End If
            '以读的方式打开blockName表示的块
            'Dim block As BlockTableRecord = trans.GetObject(bt(blockname), OpenMode.ForRead)
            '创建一个块参照并设置插入点
            Dim mt As Matrix3d = ed.CurrentUserCoordinateSystem
            Dim p3 As Point3d = resPoint.Value.TransformBy(mt)
            Dim blockref As BlockReference = New BlockReference(p3, bt(blockname))
            'Dim blockref As BlockReference = New BlockReference(resPoint.Value, bt(blockname))
            'blockref.ScaleFactors = New Scale3d(1) '设置块参照的缩放比例
            'blockref.Rotation = 0.5 * Math.PI
            '以写的方式打开当前空间(模型空间或图纸空间)
            Dim btr As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite)
            obid = btr.AppendEntity(blockref) '在当前空间加入创建的块参照
            '通知事务处理加入创建的块参照
            trans.AddNewlyCreatedDBObject(blockref, True)
            trans.Commit() '提交事务处理以实现块参照的真实加入
        End Using
        Return obid
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2010-7-9 10:01:00 | 显示全部楼层
1,检查你的块定义插入点位置是否合适
2,试试把自动捕捉关掉后有没有变化
回复

使用道具 举报

34

主题

124

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2010-7-9 11:55:00 | 显示全部楼层
说的太专业了,能不能具体点啊谢谢
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-7-9 13:41:00 | 显示全部楼层
把你的包含块的dwg贴上吧
回复

使用道具 举报

34

主题

124

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2010-7-15 17:16:00 | 显示全部楼层
哪位高手帮帮忙啊,急死了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-29 03:39 , Processed in 2.001143 second(s), 62 queries .

© 2020-2025 乐筑天下

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