Tutorial für VB 2005/2008/2010 Express, VB.NET, Viusal Basic 6.0, Visual Studio 2008 und DirectX9 / DirectX10

 

Projekt 1: Quader-Darstellung mit CubeVertices

Projekt 2: DrawText muß korrekt eingebunden werden

.

Homepage von 3DVBVIEW

 

 

Projekt 1: Quader-Darstellung mit CubeVertices 

 

Form1.vb

CubeVertices.vb

GlobaleVariablen.vb

 

Form1.vb:

Imports Microsoft.DirectX 

Imports Microsoft.DirectX.Direct3D

Public Class Form1

Dim _dev As Device

Dim _pP As PresentParameters

Dim _angel As Single = 0

 

Sub initialisieren()

_pP = New PresentParameters

_pP.Windowed = True

_pP.SwapEffect = SwapEffect.Discard

_pP.EnableAutoDepthStencil = True

_pP.AutoDepthStencilFormat = DepthFormat.D16

_dev = New Device(0, DeviceType.Hardware, Panel1.Handle, CreateFlags.SoftwareVertexProcessing, _pP)

End Sub

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

initialisieren()

Timer1.Enabled = True

End Sub

 

Sub render_ohne_licht()

_dev.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, Color.Aquamarine, 1, 0)

_dev.Transform.Projection = Matrix.PerspectiveFovLH(Math.PI / 4, 1, 1, 10)

_dev.Transform.View = Matrix.LookAtLH(New Vector3(0, 0, 5), New Vector3(), New Vector3(0, 1, 0))

_dev.RenderState.Lighting = False

_dev.BeginScene()

_dev.Transform.World = Matrix.RotationYawPitchRoll(_angel, _angel, _angel)

_angel += 0.2

Dim c As New CubeVertices

_dev.VertexFormat = CustomVertex.PositionColored.Format

_dev.DrawUserPrimitives(PrimitiveType.TriangleList, c.NumberOfPrimitives, c.GetPositionNormalColored)

_dev.EndScene()

 

_dev.Present()

 

End Sub

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

render_ohne_licht()

End Sub

End Class

 

 

CubeVertices.vb:

Imports Microsoft.DirectX

Imports Microsoft.DirectX.Direct3D

 

Public Class CubeVertices

' Methods

Public Function GetPositionColored() As CustomVertex.PositionColored()

Dim verts As CustomVertex.PositionColored() = New CustomVertex.PositionColored(36) {}

Dim colorCount As Integer = -1

Dim vertCounter As Integer

For vertCounter = 0 To 35

If ((vertCounter Mod 6) = 0) Then

colorCount += 1

End If

verts(vertCounter) = New CustomVertex.PositionColored(CubeVertices.m_DataTriangle(vertCounter, 0), CubeVertices.m_DataTriangle(vertCounter, 1), CubeVertices.m_DataTriangle(vertCounter, 2), Me.m_Colors(colorCount).ToArgb)

Next vertCounter

Return verts

End Function

 

Public Function GetPositionNormalColored() As CustomVertex.PositionNormalColored()

Dim verts As CustomVertex.PositionNormalColored() = New CustomVertex.PositionNormalColored(36) {}

Dim colorCount As Integer = -1

Dim vertCounter As Integer

For vertCounter = 0 To 35

If ((vertCounter Mod 6) = 0) Then

colorCount += 1

End If

verts(vertCounter) = New CustomVertex.PositionNormalColored(CubeVertices.m_DataTriangle(vertCounter, 0), CubeVertices.m_DataTriangle(vertCounter, 1), CubeVertices.m_DataTriangle(vertCounter, 2), CubeVertices.m_DataNormals((vertCounter \ 3), 0), CubeVertices.m_DataNormals((vertCounter \ 3), 1), CubeVertices.m_DataNormals((vertCounter \ 3), 2), Me.m_Colors(colorCount).ToArgb)

Next vertCounter

Return verts

End Function

 

' Properties

Public ReadOnly Property NumberOfPrimitives() As Integer

Get

Return 12

End Get

End Property

Public ReadOnly Property NumberOfVertices() As Integer

Get

Return 36

End Get

End Property

 

' Fields

Private m_Colors As Color() = New Color() {Color.White, Color.Blue, Color.Red, Color.Yellow, Color.Green, Color.Purple}

Private Shared ReadOnly m_DataNormals As Single(,) = New Single(,) {{0.0!, 0.0!, 1.0!}, {0.0!, 0.0!, 1.0!}, {0.0!, 0.0!, -1.0!}, {0.0!, 0.0!, -1.0!}, {0.0!, 1.0!, 0.0!}, {0.0!, 1.0!, 0.0!}, {0.0!, -1.0!, 0.0!}, {0.0!, -1.0!, 0.0!}, {-1.0!, 0.0!, 0.0!}, {-1.0!, 0.0!, 0.0!}, {1.0!, 0.0!, 0.0!}, {1.0!, 0.0!, 0.0!}}

Private Shared ReadOnly m_DataTexture As Single(,) = New Single(,) {{0.0!, 0.0!}, {0.0!, 1.0!}, {1.0!, 0.0!}, {0.0!, 1.0!}, {1.0!, 1.0!}, {1.0!, 0.0!}, {0.0!, 0.0!}, {1.0!, 0.0!}, {0.0!, 1.0!}, {0.0!, 1.0!}, {1.0!, 0.0!}, {1.0!, 1.0!}, {0.0!, 0.0!}, {1.0!, 1.0!}, {0.0!, 1.0!}, {0.0!, 0.0!}, {1.0!, 0.0!}, {1.0!, 1.0!}, {0.0!, 0.0!}, {0.0!, 1.0!}, {1.0!, 1.0!}, {0.0!, 0.0!}, {1.0!, 1.0!}, {1.0!, 0.0!}, {0.0!, 0.0!}, {1.0!, 1.0!}, {1.0!, 0.0!}, {0.0!, 1.0!}, {1.0!, 1.0!}, {0.0!, 0.0!}, {0.0!, 0.0!}, {1.0!, 0.0!}, {1.0!, 1.0!}, {0.0!, 1.0!}, {0.0!, 0.0!}, {1.0!, 1.0!}}

Private Shared ReadOnly m_DataTriangle As Single(,) = New Single(,) {{-1.0!, 1.0!, 1.0!}, {-1.0!, -1.0!, 1.0!}, {1.0!, 1.0!, 1.0!}, {-1.0!, -1.0!, 1.0!}, {1.0!, -1.0!, 1.0!}, {1.0!, 1.0!, 1.0!}, {-1.0!, 1.0!, -1.0!}, {1.0!, 1.0!, -1.0!}, {-1.0!, -1.0!, -1.0!}, {-1.0!, -1.0!, -1.0!}, {1.0!, 1.0!, -1.0!}, {1.0!, -1.0!, -1.0!}, {-1.0!, 1.0!, 1.0!}, {1.0!, 1.0!, -1.0!}, {-1.0!, 1.0!, -1.0!}, {-1.0!, 1.0!, 1.0!}, {1.0!, 1.0!, 1.0!}, {1.0!, 1.0!, -1.0!}, {-1.0!, -1.0!, 1.0!}, {-1.0!, -1.0!, -1.0!}, {1.0!, -1.0!, -1.0!}, {-1.0!, -1.0!, 1.0!}, {1.0!, -1.0!, -1.0!}, {1.0!, -1.0!, 1.0!}, {-1.0!, 1.0!, 1.0!}, {-1.0!, -1.0!, -1.0!}, {-1.0!, -1.0!, 1.0!}, {-1.0!, 1.0!, -1.0!}, {-1.0!, -1.0!, -1.0!}, {-1.0!, 1.0!, 1.0!}, {1.0!, 1.0!, 1.0!}, {1.0!, -1.0!, 1.0!}, {1.0!, -1.0!, -1.0!}, {1.0!, 1.0!, -1.0!}, {1.0!, 1.0!, 1.0!}, {1.0!, -1.0!, -1.0!}}

Private Shared ReadOnly m_DataVertices As Single(,) = New Single(,) {{-1.0!, -1.0!, -1.0!}, {-1.0!, -1.0!, 1.0!}, {-1.0!, 1.0!, -1.0!}, {-1.0!, 1.0!, 1.0!}, {1.0!, -1.0!, -1.0!}, {1.0!, -1.0!, 1.0!}, {1.0!, 1.0!, -1.0!}, {1.0!, 1.0!, 1.0!}}

End Class

 

 

GlobaleVariablen.vb:

Module GlobaleVariablen

Public Const C000 As Long = 16711680 '//Red

Public Const C001 As Long = 65280 '//Green

Public Const C100 As Long = 255 '//Blue

Public Const C101 As Long = 16711935 '//Magenta

Public Const C011 As Long = 65535 '//Yellow

Public Const C010 As Long = 16776960 '//Cyan

Public Const C110 As Long = 16777215 '//White

Public Const C111 As Long = 8421631 '//Orange

End Module

 

Projekt 2: DrawText muß korrekt eingebunden werden

Achtung: Sehr wichtiger Tip für VB2005/VB2008/VB.NET-User: 

DrawText funktioniert nur dann wenn die DirectX-Datei Version 1.0.2911.0 eingebunden wird......

Ansonsten wird die Fehlermeldung angezeigt:

Error 1 'DrawText' is ambiguous because multiple kinds of members with this name exist in class 'Microsoft.DirectX.Direct3D.Font.....

Wer mal mit "DrawText ambiguous vb" gegoogelt hat, der stellt fest, daß hier über 948 Einträge angezeigt werden!

 

 

 

3D-CAD-Viewer 3DVBVIEW als Anwendung und mit Quellcode für
VB 6.0 und VB.NET Programmierer

 

Der CAD-Viewer 3DVBVIEW bietet folgende Features in der Code-Grundversion:

Warum soll ich diesen Code in VB 6.0 oder VB.NET kaufen

CAD-Modelle die aus verschiedenen CAD-Systemen als STL-Modell importiert wurden:

 

Darstellung einer Turbine aus dem CAD-System Inventor mit 3 Baugruppen bzw. aus 3 zusammengefügten STL-ASCII-Dateien

 

Darstellung eines Schalen-Flächenmodells in einem ASCII-Format (kann mit jedem Editor weiterbearbeitet werden) mit 14 Elementgruppen

 

Darstellung einer Baugruppe mit Text-Markups sowohl im Bild- als auch im Weltkoordinatensystem plaziert

 

Bestellung                                                                               

Quellcode Grundversion für Entwickler und Programmierer
3DVBVIEWER für VB.NET / DirectX9 für € 49,00 
oder Visual Basic 6.0 / OpenGL für € 39,00       
beide VB.NET / DirectX9 + VB6.0 / OpenGL  für € 69,00      
Neu: Erweitern Sie die Grundversion von 3DVBVIEW mit
folgenden Code Erweiterungen (nur für VB.NET):
Zusatz-Code Kontakt für € 39,00
Code eines Berührungskontakt-Algorithmus um z.B.  Kollisionen, 
Durchdringungen oder Schnittpunkte zwischen einzelnen Baugruppen zu ermitteln.
Zusatz-Code MESSEN für € 39,00
Abstände oder Durchmesser können exakt interaktiv nachgemessen werden 
Zusatz-Code MARKUP für € 39,00
Text-Markups mit beliebigen Texten und Fonts können dem 3D-Modell hinzugefügt werden. Plazierung 
der Texte sowohl im Bild- als auch im Weltkoordinatensystem
Zusatz-Code ANIMATION für € 39,00
Erstellen Sie Ihre eigenen Animationen indem Sie einzelne Baugruppen drehen und bewegen. 
(siehe Roboterbeispiel)

Preise zzgl. 19% MwSt

Bestellung per Email
 


Homepage von 3DVBVIEW

Tutorial für VB2005/VB2008 und DirectX9

Kontakt

kommerzielle CAE-Anwendung mit Codes von 3DVBVIEW