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

Mapping Type Data Powerbuilder 12.5 .NET dengan C#

Berikut mapping tipe data pada Powerbuilder 12.5 .Net dengan C#


PowerBuilderC#
booleanbool
boolean[]bool[]
blobbyte[]
blob[]byte[][]
bytebyte
byte[]byte[]
intshort
int[]short[]
uintushort
uint[]ushort[]
longint
long[]int[]
ulonguint
ulong[]uint[]
longlonglong
longlong[]long[]
decimaldecimal
decimal[]decimal[]
realfloat
real[]float[]
doubledouble
double[]double[]
stringstring
string[]string[]
User-defined structureclass
User-defined structure[]class [] *
User-defined NVO objectclass
User-defined NVO object[]class [] *
enumeratedenum
enumerated[]enum[]
TimeDateTime
Time[]DateTime[]
DateDateTime
Date[]DateTime[]
DatetimeDateTime
Datetime[]DateTime[]
anyNot supported
Multidimension arrayNot supported
PB system structureNot supported
PB system object typeNot supported
PB system nvo typeNot supported
User-defined non-NVO objectNot supported
ResultSet and its descendantsNot supported
Returning anyArray type
Dot Net serializable type (with Serializable or DataContract attributes)Dot.Net serializable type
Dot Net primitive typeDot Net primitive type

Sumber : http://www.displacedguy.com/powerbuilder-12-5-net-and-net-4-data-type-mappings/#.T-ZGjhce6EY 


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



Selasa, 24 Januari 2012

Step by Step Instalasi TFS (Team Fundation Server) 2010 Sebagai Source Control Powerbuilder 12.5 .NET

Setelah Sekian lama saya vakum, ini saya coba membuat posting baru mengenai  Instalasi TFS 2010 sebagai sarana source control di PowerBuilder 12.5 .Net  karena source control nya tidak seperti PB Clasic.  Hal-hal yang perlu dipersiapkan adalah sebagai berikut

A. Instalasi Pada Komputer Server (Windows Server 2003 SP1)


B. Langkah Instalasi TFS 2010

  • Karena file TFS 2010 berbentuk ISO, maka butuh software tambahan untuk membaca ISO. Kita bisa gunakan Virtual Clone Drive atau Daemon Tools. Setelah punya software itu, mount ISO-nya TFS.
  • Di dalam drive “tambahan” setelah me-mount (aneh banget bahasanya) ISO, ada folder TFS-x64 dan TFS-x86. Pilih dan buka folder yang sesuai dengan mesin Anda. Saya pakai Windows 7 Ultimate x64, jadi saya buka folder TFS-x64.
  • Di dalam folder tersebut, double-click file yang bernama setup.exe. Kalau ada window User Account Control, klik tombol Yes tentunya. Setelah itu akan muncul window berikut  

  • Tunggu sebentar.. Setelah selesai loading, klik tombol Next. Pada halaman di bawah ini, (silahkan baca license terms terlebih dahulu kemudian) pilih I have read and accept the license terms lalu klik tombol Next.  
  • Pada halaman di bawah ini, pilih komponen yang Anda ingin install. Team Foundation Server adalah komponen utama TFS. Sedangkan Team Foundation Build Service merupakan komponen tambahan yang memungkinkan kita melakukan build secara terintegrasi (pada post yang akan datang, TFS Build akan saya bahas lebih dalam). Saya memilih untuk menginstal 2 komponen tersebut sehingga saya beri tanda centang 2 pilihan Team Foundation Server dan Team Foundation Build Service, kemudian saya klik tombol Install.
  • Tunggu beberapa saat.. silahkan membuat teh atau kopi untuk menemani Anda menunggu. 
  • Kemudian Finish
  •  Proses instalasi sudah selesai. Namun perjuangan belum berakhir. Kita harus melakukan konfigurasi terlebih dahulu agar TFS yang kita instal dapat berfungsi sesuai dengan kondisi sistem dan lingkungan kita. Dengan memastikan bahwa Anda memberi tanda centang pada pilihan Launch Team Foundation Server Configuration Tool, klik tombol Configure.
C. Konfigurasi Server TFS 2010
  •  Setelah klik tombol Configure pada akhir proses instalasi TFS 2010, maka akan muncul window berikut:
  • Perhatikan bahwa ada beberapa pilihan wizard, yaitu Basic, Advanced, Application-Tier Only, dan Upgrade. Pada setiap wizard, terdapat informasi tentang apa tujuan wizard tersebut. Pilih wizard yang paling cocok dengan kebutuhan Anda. Pada kasus ini, saya pilih wizard yang Basic. Setelah itu, klik tombol Start Wizard
  • Akan muncul halaman Welcome pada window Team Foundation Server Basic Configuration. Pada halaman ini, klik tombol Next.
  • Muncul halaman SQL Server Instance. Wizard ini tahu bahwa saya sudah punya SQL Server Express sehingga pilihan Use an existing SQL Server Instance secara otomatis sudah terpilih. Bagi Anda yang belum punya SQL Server Express, jangan khawatir, karena wizard ini akan menginstalkannya (lagi-lagi bahasa yang aneh) untuk Anda (yaitu dengan memilih pilihan Install SQL Server Express). Selanjutnya, klik tombol Next.
  •  Akan muncul halaman Review. Pada halaman ini, kita diberikan informasi tentang apa saja settingan konfigurasi yang akan dilakukan oleh wizard ini. Klik tombol Next.
  • Tunggu proses Readines Checks selesai..

  •  Setelah selesai, klik tombol Next.  
  • Finish

Untuk Selanjutnya kita tinggal melakukan Instalasi di Komputer Client, Adapun Hal2 yang perlu dipersiapkan adalah sebagai berikut :
A. Install Powerbuilder 12.5
B. Install Visual Studio Team Explorer (File Ini sudah Include didalam ISO TFS 2010 Trial yang kita download)

Setelah semua terinstall dengan aman maka selanjutnya kita lakukan setting source control pada Powerbuilder 12.5 .NET
  • Klik Tools > Options
  • pilih SourceControl > PlugIn Selection
  • pilih Source Control > Environment
  • pilih Source Control > Plug-In Setting.

  • Sekarang Powerbuilder 12.5 .NET kita sudah menggunakan Source Control TFS 2010