lihezhou 发表于 2015-1-21 19:45:15

为什么用JIG类预览块的时候很不清晰

为什么用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


sieben 发表于 2015-1-22 13:39:52

可能是绘图频率过高,想办法在必要时才绘图

lihezhou 发表于 2015-1-22 14:41:17

是精度的问题。我已经解决了。谢谢

羊羊羊 发表于 2016-9-28 21:38:10

嗨,同样的问题,怎么解决的

j15tty 发表于 2016-10-9 13:13:19

同问怎么解决的
页: [1]
查看完整版本: 为什么用JIG类预览块的时候很不清晰