明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2284|回复: 4

[Kean专集] 为什么用JIG类预览块的时候很不清晰

[复制链接]
发表于 2015-1-21 19:45:15 | 显示全部楼层 |阅读模式
为什么用JIG类预览块的时候很不清晰。代码如下:

'旋转预览--镜像预览
Public Class False_Rotation
    Inherits DrawJig
    Public BasePt As Point3d
    Public EntCopy() As Entity '复制出来预览的对象
    Private BAngle As Single
    Private AngleScale As Integer = 1
    ' WorldDraw函数用于刷新屏幕上显示的图形.
    Protected Overrides Function WorldDraw(ByVal draw As WorldDraw) As Boolean
        On Error Resume Next
        For i = 0 To EntCopy.Length - 1
            draw.Geometry.Draw(EntCopy(i))   
        Next
        Return True
    End Function
    Protected Overrides Function Sampler(ByVal prompts As JigPrompts) As SamplerStatus
        On Error Resume Next
        ' 定义一个角度拖动交互类.
        Sampler = Nothing
        Dim optJigAngle1 As New JigPromptAngleOptions(vbCrLf & "请指定旋转角度")
        ' 设置拖拽的光标类型.
        optJigAngle1.Cursor = CursorType.RubberBand
        ' 设置拖动光标基点.
        optJigAngle1.BasePoint = BasePt
        optJigAngle1.UseBasePoint = True
        ' 用AcquireAngle函数得到用户输入的角度值.
        Dim resJigAngle1 As PromptDoubleResult = prompts.AcquireAngle(optJigAngle1)
        If BAngle <> resJigAngle1.Value Then
            ' 保存当前角度值.   
            For i = 0 To EntCopy.Length - 1
                EntCopy(i).TransformBy(Matrix3d.Rotation((resJigAngle1.Value - BAngle) * AngleScale, Vector3d.ZAxis, BasePt))
            Next
            BAngle = resJigAngle1.Value
            Return SamplerStatus.OK
        Else
            Return SamplerStatus.NoChange
        End If
    End Function
End Class
调用
           Dim Ent(0) As Entity
            Ent(0) = InserBlock
            Dim QJI As New False_Move
            QJI.EntCopy = Ent
            QJI.BasePt = New Point3d()
            QJI.CurrPt = New Point3d()
            Dim jigRes As PromptResult = AcDocEd.Drag(QJI)‘移动预览没有问题
            If jigRes.Status = PromptStatus.OK Then
                Dim RJI As New False_Rotation'旋转预览就很闪烁。预览的对象不全
                RJI.BasePt = QJI.CurrPt
                RJI.EntCopy = Ent
                QJI = Nothing
                jigRes = AcDocEd.Drag(RJI)
                If jigRes.Status = PromptStatus.OK Then
                    ModelSpace.AppendEntity(Ent(0))
                End If
            End If


发表于 2015-1-22 13:39:52 | 显示全部楼层
可能是绘图频率过高,想办法在必要时才绘图
 楼主| 发表于 2015-1-22 14:41:17 | 显示全部楼层
是精度的问题。我已经解决了。谢谢
发表于 2016-9-28 21:38:10 | 显示全部楼层
嗨,同样的问题,怎么解决的
发表于 2016-10-9 13:13:19 来自手机 | 显示全部楼层
同问怎么解决的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:52 , Processed in 0.151997 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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