[v8i VBA] Create View Independent TextNode

This question was never truly answered over 5 years ago, so I am asking again.

I can select a text node in the Element Information dialog box and change the text node to View Independent. And then, the entire Text node retains its rotation as the view is rotated. But the code to build a text node specifically prevents one from assigning View Independence to a text node.

If you assign it to each element, then, they rotate about their origins but their origins, being View Dependent, continue to rotate and the result is what I call the Ferris Wheel effect. Like the benches on a Ferris Wheel, the text elements remain upright, but eventually, the upper line of text is below the lower line of text. And the angles in between, often result in the two pieces of text overlapping each other. 

How is one supposed to create an element which is clearly supported by the software, in VB, that does what we need? A true View Independent Multi-line Text Node!    

Parents
  • How is one supposed to create view-independent text node element which is clearly supported by the software, in VB

    When we create a text node element with MDL we pass a TextParamWide parameter. TextParamWide.viewIndependent  is a flag that, presumably, does what you think it should.

    VBA works in a quite different manner to MDL.  You would need to wrap mdlTextNode_createWide() in VBA.  Here's its VBA declaration from the MDL documention...

    Declare Function mdlTextNode_createWide Lib "stdmdlbltin.dll" ( _
            ByVal out As Long , _
            ByVal in_ As Long , _
            ByRef userOrigin As Point3d , _
            ByRef rotMatrix As Matrix3d , _
            ByVal size As Long , _
            ByVal txtParams As Long ) As Long

    Where txtParams is the TextParamWide user-defined-type.

     
    Regards, Jon Summers
    LA Solutions

Reply
  • How is one supposed to create view-independent text node element which is clearly supported by the software, in VB

    When we create a text node element with MDL we pass a TextParamWide parameter. TextParamWide.viewIndependent  is a flag that, presumably, does what you think it should.

    VBA works in a quite different manner to MDL.  You would need to wrap mdlTextNode_createWide() in VBA.  Here's its VBA declaration from the MDL documention...

    Declare Function mdlTextNode_createWide Lib "stdmdlbltin.dll" ( _
            ByVal out As Long , _
            ByVal in_ As Long , _
            ByRef userOrigin As Point3d , _
            ByRef rotMatrix As Matrix3d , _
            ByVal size As Long , _
            ByVal txtParams As Long ) As Long

    Where txtParams is the TextParamWide user-defined-type.

     
    Regards, Jon Summers
    LA Solutions

Children