Hi Everyone,
I've got an existing Winsform application that model a multi-joint robotic arm, that allows the user to use a trackbar to rotate each joint for a certain degree (snipping of the winsform app below).
Since I've worked out the TranslateTransform and RotateTransform relationship in 2D drawing, I did like to convert it to 3D. I heard that helix toolkit is very good at 3D modelling things. Since I never used it before, so I would like to give helix toolkit a try. What I'm doing is draw the robot arm in wpf and use elementhost to host the drawing in winsform, and in the end aim to achieve the same results as above but in 3D. Currently I applied the same logic I used for the 2D modelling, but with set rotation angle and translation length, as well as I'm trying to get 2 joints connected.
Yet when I run my code, instead of both joints being display (similar to picture above), only 1 joint is present (as shown in picture below).
I don't understands what I did wrong, and since there is very limited documentation available I can't debug and solve the problem myself. So I hope to seek help and solution here.
below is my code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO.Ports;
using System.Windows.Threading;
using HelixToolkit.Wpf;
using HelixToolkit;
using System.Windows.Media.Media3D;
namespace _3DModel
{
/// <summary>
/// Interaction logic for Drawing.xaml
/// </summary>
public partial class Drawing : UserControl
{
HelixViewport3D viewport = new HelixViewport3D();
public Drawing()
{
InitializeComponent();
Draw();
}
private void Draw()
{
#region Camera Viewpoint of the 3D Model
//camera
this.ArmCanvas.Children.Add(viewport);
viewport.DefaultCamera = new PerspectiveCamera();
viewport.DefaultCamera.Position = new Point3D(0, 600, 600);
viewport.DefaultCamera.LookDirection = new Vector3D(0, -600, -600);
viewport.DefaultCamera.UpDirection = new Vector3D(0, 1, 0);
//lighting
DefaultLights light = new DefaultLights();
viewport.Children.Add(light);
#endregion
Model3D joint2, joint3, joint4, joint5, joint6, joint7, baselink;
ModelVisual3D model3d = new ModelVisual3D();
Model3DGroup group = new Model3DGroup();
ModelImporter import = new ModelImporter();
baselink = import.Load(@"C:\Users\tombf\Desktop\Winsform 3D Model\Base Link.obj");
joint2 = import.Load(@"C:\Users\tombf\Desktop\Winsform 3D Model\Link.obj");
joint3 = joint2.Clone();
joint4 = joint2.Clone();
joint5 = joint2.Clone();
joint6 = joint2.Clone();
joint7 = joint2.Clone();
viewport.Children.Remove(model3d);
/*
#region Base Link
Transform3DGroup baseLinkMove = new Transform3DGroup();
TranslateTransform3D baseLinkTranslate = new TranslateTransform3D();
baseLinkTranslate.OffsetX = 0;
baseLinkTranslate.OffsetY = 0;
baseLinkTranslate.OffsetZ = 0;
baseLinkMove.Children.Add(baseLinkTranslate);
RotateTransform3D baseLinkRotate = new RotateTransform3D();
baseLinkRotate.Rotation = new AxisAngleRotation3D(new Vector3D(0, 0, 0), 0);
baseLinkMove.Children.Add(baseLinkRotate);
baselink.Transform = baseLinkMove;
group.Children.Add(baselink);
model3d.Content = group;
viewport.Children.Add(model3d);
#endregion
#region 1st Joint
Transform3DGroup firstJointMove = new Transform3DGroup();
TranslateTransform3D firstJointTranslate = new TranslateTransform3D();
firstJointTranslate.OffsetX = 10;
firstJointTranslate.OffsetY = 0;
firstJointTranslate.OffsetZ = 0;
firstJointMove.Children.Add(firstJointTranslate);
RotateTransform3D firstJointRotate = new RotateTransform3D();
firstJointRotate.Rotation = new AxisAngleRotation3D(new Vector3D(0, 0, 0), 10);
firstJointMove.Children.Add(firstJointRotate);
joint2.Transform = firstJointMove;
group.Children.Add(joint2);
model3d.Content = group;
viewport.Children.Add(model3d);
#endregion
//viewport.Children.Add(model3d);
*/
Transform3DGroup arm = new Transform3DGroup();
TranslateTransform3D armTranslate = new TranslateTransform3D();
RotateTransform3D armRotate = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), 0));
armTranslate.OffsetX = 0;
armTranslate.OffsetY = 0;
armTranslate.OffsetZ = 0;
arm.Children.Add(armTranslate);
baselink.Transform = arm;
arm.Children.Add(armRotate);
baselink.Transform = arm;
group.Children.Add(baselink);
model3d.Content = group;
armTranslate = new TranslateTransform3D();
armRotate = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), 180));
armTranslate.OffsetX = 20;
armTranslate.OffsetY = 0;
armTranslate.OffsetZ = 0;
arm.Children.Add(armTranslate);
joint2.Transform = arm;
arm.Children.Add(armRotate);
joint2.Transform = arm;
//arm.Children.Add(joint2.Transform);
group.Children.Add(joint2);
model3d.Content = group;
viewport.Children.Add(model3d);
}
}
}
I have understand your!! stuff previous to and you’re just too magnificent content.
ดูบอลออนไลน์
ดูบอลสดฟรี
เว็บดูบอลสดฟรีบนมือถือ
I love this blog!! The flash up the top is awesome!!
เว็บดูบอลสด
ลิงค์ดูบอลสด
https://61a1dbd7971f4.site123.me/
Yeah bookmaking this wasn’t a bad determination great post!
แทงบอลออนไลน์
เว็บแทงบอลไม่ผ่านเอเย่นต์
พนันบอลเว็บตรง
I gotta most loved this site it appears to be extremely useful.
แทงบอลสเต็ป
แทงบอลสเต็ปเว็บไหนดี
สมัครแทงบอลสเต็ปเว็บไหนดี
Yeah bookmaking this wasn’t a bad determination great post!
เล่นบอลตู้
สมัครเล่นบอลตู้
สมัครแทงบอลvirtual sports
Yeah bookmaking this wasn’t a bad determination great post!
เว็บบอลต่างประเทศ
สมัครเว็บบอลต่างประเทศ
สมัครเว็บแทงบอลต่างประเทศ
Yeah bookmaking this wasn’t a bad determination great post!
เว็บบอลพรีเมียร์ลีก
สมัครเว็บบอลพรีเมียร์ลีก
สมัครเว็บบอลพรีเมียร์ลีกเว็บไหนดีpantip
I gotta most loved this site it appears to be extremely useful.
Red Tiger
ทางเข้าเว็บสล็อตRed Tiger
ทางเข้าเว็บสล็อตRed Tigerบนมือถือ
I gotta most loved this site it appears to be extremely useful.
Slot (สล็อตออนไลน์)
เว็บสล็อตไม่ผ่านเอเย่นต์
สล็อตออนไลน์เว็บตรง
Yeah bookmaking this wasn’t a bad determination great post!
pg slot
ทางเข้าเว็บสล็อตPG Slot
ทางเข้าเล่นเว็บสล็อตออนไลน์PG Slot
I gotta most loved this site it appears to be extremely useful.
itp slot
ทางเข้าเว็บสล็อตITP Slot
ทางเข้าเว็บสล็อตITP Slotบนมือถือ
Yeah bookmaking this wasn’t a bad determination great post!
Spade Gaming
ทางเข้าเล่นเว็บสล็อตออนไลน์Spade Gaming
ทางเข้าเว็บสล็อตSpade Gamingขั้นต่ำ 1 บาท
I gotta most loved this site it appears to be extremely useful.
Joker Gaming
ทางเข้าเล่นเว็บสล็อตออนไลน์Joker Gaming
ทางเข้าเว็บสล็อตJoker Gamingขั้นต่ำ 1 บาท
I gotta most loved this site it appears to be extremely useful.
Red Tiger
ทางเข้าเล่นเว็บสล็อตออนไลน์Red Tiger
ทางเข้าเว็บสล็อตRed Tigerขั้นต่ำ 1 บาท
Yeah bookmaking this wasn’t a bad determination great post!
แทงบอลออนไลน์
แทงบอลออนไลน์เว็บตรง
สมัครเว็บแทงบอลไม่ผ่านเอเย่นต์
Yeah bookmaking this wasn’t a bad determination great post!
แทงบอลสเต็ป
แทงบอลสเต็ปเว็บไหนดีpantip2021
แทงบอลสเต็ปบนมือถือเว็บไหนดี
I love this blog!! The flash up the top is awesome!!
เล่นบอลตู้
สมัครเล่นบอลตู้ออนไลน์
สมัครเล่นบอลตู้ขั้นต่ำ 10 บาท
This is really interesting, I’ll check out your other posts!
Spade Gaming
ทางเข้าเล่นเว็บเกมสล็อตSpade Gaming
ลิงค์ทางเข้าเว็บสล็อตSpade Gaming
This is really interesting, I’ll check out your other posts!
Joker Gaming
ทางเข้าเล่นเว็บเกมสล็อตJoker Gaming
ลิงค์ทางเข้าเว็บสล็อตJoker Gaming
I love this blog!! The flash up the top is awesome!!
Red Tiger
ทางเข้าเล่นเว็บเกมสล็อตRed Tiger
ลิงค์ทางเข้าเว็บสล็อตRed Tiger Slot
I gotta most loved this site it appears to be extremely useful.
แทงบอลออนไลน์
เว็บแทงบอลไม่ผ่านเอเย่นต์
พนันบอลเว็บตรง
I love this blog!! The flash up the top is awesome!!
บาคาร่าออนไลน์
บาคาร่าออนไลน์ไม่ผ่านเอเย่นต์
บาคาร่าออนไลน์เว็บตรง
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
แทงบอลสเต็ป
แทงบอลสเต็ปเว็บไหนดี
สมัครแทงบอลสเต็ปเว็บไหนดี
just wanted to say thank you so much for the inspiration. These information, actually had a great impact on my life!
หวยรัฐบาล
สมัครเว็บซื้อหวยรัฐบาล
สมัครเว็บซื้อหวยรัฐบาลเว็บไหนดี
These are great wise words from the voice of experience and talented person like you! Thank your for sharing all of this and more motivating us.
เล่นบอลตู้
สมัครเล่นบอลตู้
สมัครแทงบอลvirtual sports
You seemed to have thought of everything in this topic! I will save your site and come back here real soon to read more informative post from you.
น้ำเต้าปูปลาออนไลน์
ทางเข้าแทงน้ำเต้าปูปลา
ทางเข้าเล่นเกมน้ำเต้าปูปลา
just wanted to say thank you so much for the inspiration. These information, actually had a great impact on my life!
รูเล็ตออนไลน์
เล่นรูเล็ตเว็บไหนดี
เล่นเกมรูเล็ตเว็บไหนดี
These information, actually had a great impact on my life!
เว็บบอลพรีเมียร์ลีก
สมัครเว็บบอลพรีเมียร์ลีก
สมัครเว็บบอลพรีเมียร์ลีกเว็บไหนดีpantip
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
กำถั่ว
ทางเข้าเล่นกำถั่ว
ทางเข้าเล่นกำถั่วขั้นต่ำ 2 บาท
These information, actually had a great impact on my life!
ufabetบนมือถือ
สมัครufabetบนมือถือ
สมัครเว็บเดิมพันufabetบนมือถือ
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
cash or crash
เล่นcash or crashเว็บไหนดี
สมัครสมาชิกเล่นเกมcash or crashเว็บไหนดี
These information, actually had a great impact on my life!
แทงบอลออนไลน์
เว็บแทงบอลไม่ผ่านเอเย่นต์
พนันบอลเว็บตรง
These are great wise words from the voice of experience and talented person like you! Thank your for sharing all of this and more motivating us.
แทงบอลสเต็ป
แทงบอลสเต็ปเว็บไหนดี
สมัครแทงบอลสเต็ปเว็บไหนดี
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
itp slot
ทางเข้าเว็บสล็อตITP Slot
ทางเข้าเว็บสล็อตITP Slotบนมือถือ
These are great wise words from the voice of experience and talented person like you! Thank your for sharing all of this and more motivating us.
เว็บบอลต่างประเทศ
สมัครเว็บบอลต่างประเทศ
สมัครเว็บแทงบอลต่างประเทศ
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
Joker Gaming
ทางเข้าเว็บสล็อตJoker Gaming
ทางเข้าเว็บสล็อตJoker Gamingบนมือถือ
These are great wise words from the voice of experience and talented person like you! Thank your for sharing all of this and more motivating us.
ufabetบนมือถือ
สมัครufabetบนมือถือ
สมัครเว็บเดิมพันufabetบนมือถือ
I will encourage my friends to follow your amazing website to read all your extremely useful and valuable blogs.
Slot (สล็อตออนไลน์)
เว็บสล็อตไม่ผ่านเอเย่นต์
สล็อตออนไลน์เว็บตรง
Thank you for all the information.Thank you. Your article is written very well.
แทงบอลสเต็ป
แทงบอลสเต็ปเว็บไหนดี
สมัครแทงบอลสเต็ปเว็บไหนดี
Thank you for all the information.Thank you. Your article is written very well.
เล่นบอลตู้
สมัครเล่นบอลตู้
สมัครแทงบอลvirtual sports
Rolled up and read this good article very slow, you will find out that you High.
เว็บบอลต่างประเทศ
สมัครเว็บพนันบอลต่างประเทศ
สมัครเว็บบอลต่างประเทศออนไลน์
So it is interesting and very good written and see what they think about other people.
Joker Gaming
ทางเข้าเล่นเว็บสล็อตออนไลน์Joker Gaming
ทางเข้าเว็บสล็อตJoker Gamingขั้นต่ำ 1 บาท
I should assert barely that its astounding! The blog is informational also always fabricate amazing entitys.
cash or crash
เล่นcash or crashเว็บไหนดีpantip
ลิงค์ทางเข้าเล่นcash or crashเว็บไหนดี
Thank you for all the information.Thank you. Your article is written very well.
ufabet
เว็บพนันufabetเว็บไหนดี2021
ลิงค์ทางเข้าเว็บพนันufabetเว็บไหนดี
I should assert barely that its astounding! The blog is informational also always fabricate amazing entitys.
หวยรัฐบาล
สมัครเว็บซื้อหวยรัฐบาลบนมือถือ
สมัครเว็บซื้อหวยรัฐบาลเว็บไหนดี2021
Thank you for all the information.Thank you. Your article is written very well.
Venus Casino
ทางเข้าเล่นคาสิโนออนไลน์venus casino
ลิงค์ทางเข้าเล่นคาสิโนvenus casino
I should assert barely that its astounding! The blog is informational also always fabricate amazing entitys.
รูเล็ตออนไลน์
เล่นรูเล็ตเว็บไหนดี2021
เดิมพันรูเล็ตเว็บไหนดี
Thank you for all the information.Thank you. Your article is written very well.
gold diamond gaming
ทางเข้าเล่นคาสิโนgold diamond gamingบนมือถือ
ทางเข้าสมัครเล่นคาสิโนgold diamond gaming
We help them as much as we can.I have saved your site to my bookmarks. พนันมวยสด
Hi there , I’m Wilson. So I've been wanting to ask you something for a problem/issue with เดิมพันมวยออนไลน์
Any suggestion would be greatly appreciate.