Tampilkan postingan dengan label WPF. Tampilkan semua postingan
Tampilkan postingan dengan label WPF. Tampilkan semua postingan

Rabu, 17 Oktober 2012

Kumpulan Script Membuat 3D di PB 12.5 .NET dengan HELIX 3D TOOLKIT

Berikut kumpulan2 script dalam membuat aplikasi WPF 3D di Powerbuilder 12.NET, sebelum membuatnya ada baiknya anda download dulu komponen helix 3D toolkit disini
Selanjutnya add Reference file2 dll nya :
1. 3DTools.dll
2. HelixToolkit.Wpf.dll
3. HelisToolkit.Wpf.Input.dll

XAML :

 xmlns:helix="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf"


<helix:HelixViewport3D Name="viewport3D"
InfoBackground="White"
Background="Transparent"
IsHeadLightEnabled="True"
InfiniteSpin="True"
CameraRotationMode="Turnball">
          <helix:HelixViewport3D.Camera>
                  <PerspectiveCamera Position="40,0,0"
LookDirection="-40,0,0"
UpDirection="0,0,9"
FieldOfView="61"
NearPlaneDistance="0.125"
FarPlaneDistance="Infinity" />
        </helix:HelixViewport3D.Camera>
            <helix:SunLight />
      </helix:HelixViewport3D>

       

SCRIPT :
1. Create Viewport3D dari Script
HelixToolkit.Wpf.HelixViewport3D viewport3D
viewport3D = create HelixToolkit.Wpf.HelixViewport3D
viewport3D.InfoBackground = System.Windows.Media.Brushes.Transparent
viewport3D.ZoomExtentsWhenLoaded = True
viewport3D.IsHeadLightEnabled = True
viewport3D.InfiniteSpin = True
viewport3D.Background = System.Windows.Media.Brushes.Transparent
viewport3D.CameraRotationMode = HelixToolkit.Wpf.CameraRotationMode.Turnball!

1. Memanggil File 3DS

HelixToolkit.Wpf.FileModelVisual3D iFile3D
iFile3D = Create HelixToolkit.Wpf.FileModelVisual3D
iFile3D.Source = "Files3D\heart.3DS"
viewport3D.Children.Add(iFile3D)

2. Rotate Object 3DS

System.Nullable lnull1,lnull2

lnull1 = create System.Nullable(1)
lnull2 = create System.Nullable(361)

System.Windows.Media.Animation.DoubleAnimation myAnimation
myAnimation = create System.Windows.Media.Animation.DoubleAnimation
myAnimation.From = lnull1
myAnimation.To = lnull2
myAnimation.Duration = create System.Windows.Duration(System.TimeSpan.FromMilliseconds(5000))
myAnimation.RepeatBehavior = System.Windows.Media.Animation.RepeatBehavior.Forever

System.Windows.Media.Media3D.Vector3D lvector3D
lvector3D = Create System.Windows.Media.Media3D.Vector3D(0, 0, 1)

System.Windows.Media.Media3D.AxisAngleRotation3D AxisAR3D
AxisAR3D = Create System.Windows.Media.Media3D.AxisAngleRotation3D(lvector3D,1)

System.Windows.Media.Media3D.RotateTransform3D myRotateTransform
myRotateTransform = Create System.Windows.Media.Media3D.RotateTransform3D(AxisAR3D)

myRotateTransform.Rotation.BeginAnimation(System.Windows.Media.Media3D.AxisAngleRotation3D.AngleProperty, myAnimation)

iFile3D.Transform = myRotateTransform

3. Menghentikan Rotate
System.Windows.Media.Media3D.RotateTransform3D myRotateTransform
myRotateTransform = Create System.Windows.Media.Media3D.RotateTransform3D

myRotateTransform.Rotation.Freeze()

iFile3D.Transform = myRotateTransform

4. Converting Warna

string ls_warna

ls_warna = '1'

choose case ls_warna
CASE '1'
ls_warna = '#2F3699'
CASE '2'
ls_warna = '#9DDA4E'
case '3'
ls_warna ='#00B7EF'
case '4'
ls_warna = '#000000'
case '5'
ls_warna = '#ED1C24'
case else
ls_warna = '#FFFFFF'
end choose

System.Windows.Media.BrushConverter lconverter
lconverter = create System.Windows.Media.BrushConverter

System.Windows.Media.Brush lbrush
lbrush = lconverter.ConvertFromString(ls_warna)

4. Menambahkan Object ke Viewport

HelixToolkit.Wpf.SphereVisual3D Sphere3D[1]
Sphere3D[1] = create HelixToolkit.Wpf.SphereVisual3D
Sphere3D[1].Radius = 2
Sphere3D[1].Center = p3
Sphere3D[1].Fill = lbrush
viewport3D.Children.Add(Sphere3D[1])

5. Merubah posisi Camera
System.Windows.Media.Media3D.PerspectiveCamera myPCamera
myPCamera = create System.Windows.Media.Media3D.PerspectiveCamera
myPCamera.NearPlaneDistance = 1
myPCamera.FieldOfView = 61
myPCamera.Position = Create System.Windows.Media.Media3D.Point3D(180,0,0)
myPCamera.LookDirection = Create System.Windows.Media.Media3D.Vector3D(-180,0,0)
myPCamera.UpDirection = create System.Windows.Media.Media3D.Vector3D(0, 0, 9)
viewport3D.Camera = myPCamera

6. Mencapture Viewport ke dalam Picture

System.Windows.Rect rect
rect = create System.Windows.Rect

rect.Height = view_3D.Viewport.ActualHeight
rect.Width  = view_3D.Viewport.ActualWidth

// Scale dimensions from 96 dpi to 600 dpi.
double scale

scale = 600 / 96

integer li_pixelWidth,li_pixelHeight

li_pixelWidth = integer(scale * (rect.Width + 1))
li_pixelHeight= integer(scale * (rect.Height + 1))

System.Windows.Media.Imaging.RenderTargetBitmap renderbitmap
renderbitmap = create System.Windows.Media.Imaging.RenderTargetBitmap(li_pixelWidth,li_pixelHeight,scale * 96,scale * 96, System.Windows.Media.PixelFormats.Default)
 
renderbitmap.Render(viewport3D)
 
    // set ke picture

p_1.Source = renderbitmap

//Jika ingin save ke File sekalian buat directorynya

string l_directori

l_directori = "C:\Temp_image\"

if System.IO.Directory.Exists(l_directori) then
l_directori = "C:\Temp_image\"
else
System.IO.Directory.CreateDirectory(l_directori)
end if

System.Windows.Media.Imaging.PngBitmapEncoder image
image = create System.Windows.Media.Imaging.PngBitmapEncoder

image.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(renderbitmap))

System.IO.Stream fs
fs = System.IO.File.Create(l_directori+"NamaFile.png")
image.Save(fs)


7. Save Viewport3D ke File
System.Windows.Controls.PrintDialog dlg
dlg  = create System.Windows.Controls.PrintDialog

if dlg.ShowDialog().GetValueOrDefault() = true then
dlg.PrintVisual(viewport3D.Viewport,"TEST")
end if

Sabtu, 23 Juni 2012

Powerbuilder 12.5 NET WPF Ribbon (Bag. 2)

Mari kita lanjutkan membuat aplikasi ribbon dengan powerbuilder 12.5 .NET yang memakai WPF Window,

  • Menambahkan Folder Image dengan cara klik kanan pada "Target", pilih "New Folder" dan kita beri nama new folder tersebut "Image", selanjutnya kita klik kanan pada folder image untuk menambahkan image yang kita inginkan dengan memilih "Add Existing Item"


sebagai contoh ambil image yang ada di oddysey 


selanjutnya kita lihat hasilnya sebagai berikut :


  • Selanjutnya Buka w_ribbonpad.xaml sesuaikan dengan script berikut


<pbwpf:Window x:Class="RibbonDemo.w_ribbonpad" x:ClassModifier="internal" 
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
              xmlns:pbwpf="clr-namespace:Sybase.PowerBuilder.WPF.Controls;assembly=Sybase.PowerBuilder.WPF.Controls" 
              PBTitle="RibbonPad" PBHeight="2000" PBWidth="2500" MinBox="True" MaxBox="True" TitleBar="True" 
              xmlns:odc="clr-namespace:Odyssey.Controls;assembly=Odyssey" PBWindowState="Maximized" 
              ControlMenu="True" pbwpf:Window.Skin="ExpressionDark" Uid="6" Height="500" Width="547">
    <DockPanel RenderOptions.BitmapScalingMode="HighQuality">
        <odc:RibbonBar x:Name="ribbonBar" Title="RibbonPad" DockPanel.Dock="Top" Foreground="White">
            <odc:RibbonBar.QAToolBar>
                <odc:RibbonQAToolBar>
                    <odc:RibbonButton SmallImage="image/save16.png" Name="office_blue" />
                    <odc:RibbonButton SmallImage="image/undo16.png" Name="win7" />
                    <odc:RibbonButton SmallImage="image/delete16.png" Name="office_silver" />
                    <odc:RibbonButton SmallImage="image/folder16.png" Name="office_black" />
                </odc:RibbonQAToolBar>
            </odc:RibbonBar.QAToolBar>
            <odc:RibbonBar.ApplicationMenu>
                <odc:RibbonApplicationMenu MenuButtonImage="image/favorites16.png">
                    <odc:RibbonApplicationMenu.RecentItemsList>
                        <TextBlock Text="This is a Placeholder for recent documents" Margin="3" 
      HorizontalAlignment="Center" VerticalAlignment="Top" MinHeight="150" 
      TextWrapping="Wrap" MinWidth="100" />
                    </odc:RibbonApplicationMenu.RecentItemsList>
                    <odc:RibbonApplicationMenu.Footer>
                        <StackPanel HorizontalAlignment="Stretch" Margin="0,4,0,0"></StackPanel>
                    </odc:RibbonApplicationMenu.Footer>
                </odc:RibbonApplicationMenu>
            </odc:RibbonBar.ApplicationMenu>
            <odc:RibbonTabItem Title="File">
                <odc:RibbonGroup Title="Skin" Image="image/home16.png" IsDialogLauncherVisible="True">
                    <odc:RibbonToggleButton Content="Search" odc:RibbonBar.MinSize="Large" 
     LargeImage="image/search32.png"/>
                    <odc:RibbonSeparator />
                    <odc:RibbonButton Content="Windows 7" odc:RibbonBar.MinSize="Large" 
     SmallImage="image/save16.png" LargeImage="image/Save32.png" />
                    <odc:RibbonButton Content="Office Blue" odc:RibbonBar.MinSize="Medium" 
     SmallImage="image/home16.png" LargeImage="image/home32.png" />
                    <odc:RibbonButton Content="Office Silver" odc:RibbonBar.MinSize="Medium" 
     SmallImage="image/paste16.png" LargeImage="image/paste32.png" />
                    <odc:RibbonButton Content="Office Black" odc:RibbonBar.MinSize="Medium" 
     SmallImage="image/folder16.png" LargeImage="image/folder16.png" />
                </odc:RibbonGroup>
            </odc:RibbonTabItem>
        </odc:RibbonBar>
    </DockPanel>
</pbwpf:Window>

  •  Double klik pada target dan ketikan script "open(w_ribbonpad)"

  • Tambahkan script ini Odyssey.Controls.Classes.SkinManager.SkinId = Odyssey.Controls.Classes.SkinId.OfficeBlack! pada event open di w_ribbonpad 



  • Klik Run

Selamat Mencoba....

Jumat, 22 Juni 2012

Powerbuilder 12.5 NET WPF Ribbon (Bag. 1)


Kali ini saya mencoba membuat tutorial untuk membuat aplikasi WPF Ribbon dengan PowerBuilder 12.5 .NET secara sederhana yang menggunakan komponen Odyssey WPF Controls yang bisa anda download disini  http://odyssey.codeplex.com/

Mari Kita mulai :


  • Buat New Solution dengan nama “WPFRibbonPad”




  • Buat Target "“wpfribbonpad"





Kemudian klik "FINISH"


  • Selanjutnya klik kanan untuk menambahkan Reference file odyssey.dll yang telah kita download  





  • Buat New WPF Window dengan mengklik kanan pada Target dan pilih NEW selanjutnya  pilih "WPF Window" kemudian klik "Next"

  • Beri nama Title window "RibbonPad" dan nama object dengan "w_ribbonpad" kemudian klik "next"

  • Pilih layout dengan type "DockPanel" kemudian klik "Finish"

  • Kemudian kita bisa melihat hasil dari Wpf Window dengan content  layout Dockpanel

Sampai disini dulu ya...akan kita lanjutkan diBagian 2