For bugs and new features, use the issue tracker located at GitHub.
Also try the chat room!
Cylinder becomes Multilateral body in Helix 3D
musicxpg wrote at 2013-02-25 14:49:
I am using Helix 3D Toolkit. It is an amazing tool. I exported 3ds file from Skecthup. Then, I imported it into my WPF application. However, I found that the cylinder in Sketchup looks naturally, more like a cycle. However, in the WPF application, It changes to multilateral body. How to solve this problem?
objo wrote at 2013-03-13 07:09:
How to keep the coordinate system always at (0,0,0) point?
chinh_nguyen wrote at 2013-01-08 15:38:
Hi, first of all, thank you for the great work, now I can zoom, rotate with ease.
I have 1 question here: how to keep the coordinate system always at (0,0,0) point?. Because I am draw graph so I need to make it there.
chinh_nguyen wrote at 2013-01-10 09:16:
Hi all, I found my answer, I did not know about CoordinateSystemVisual3D, how silly of me.
MeshGeometryHelper Cut Method Help: Normals Flipping and Cannot Cut Twice
Good Day Everyone,
I'm having a hard time with cutting a model in my program. I import a STL file into a Model3DGroup, add that model to a MeshBuilder (true for include normals), and attempt to cut the model along the 0 z-axis (pInf and nInf) This is to ensure it has a flat base to 3D print on.
First issue:
The flat cut is inverted when added. If i add a larger model, it inverts all the normals and appear to be inside out.
Second issue:
I attempt to cut the model at 10 mm (pSup and nSup), but the attempt keeps failing. It will fail even if I comment out the 0 z-axis cut.
private void CutBottom() {
//load the stl file to edit
string file = @"E:\Test\test.stl";
var mi = new ModelImporter();
Model3DGroup model = mi.Load(file, System.Windows.Threading.Dispatcher.CurrentDispatcher);
//convert model to Geometry3D
MeshBuilder meshModel = new MeshBuilder(true, false);
foreach (var m in model.Children)
{
var mGeo = m as GeometryModel3D;
var tri = (MeshGeometry3D)mGeo.Geometry;
if (tri != null)
{
meshModel.Append(tri);
}
}
MeshGeometry3D mesh = meshModel.ToMesh();
//create a copy of the mesh
var g = mesh as MeshGeometry3D;
MeshGeometry3D gOrig = g.Clone();
//Cut the Mesh and then apply the cutplane
var pInf = new Point3D(0, 0, 0);
var nInf = new Vector3D(0, 0, 1);
Plane3D cpInf = new Plane3D(pInf, nInf);
var pSup = new Point3D(0, 0, 2);
var nSup = new Vector3D(0, 0, 3);
Plane3D cpSup = new Plane3D(pSup, nSup);
//cp, p & n are the cut plane (Plane3D) and the position (Point3D) and the normal (Vector3D) of the plane
g = MeshGeometryHelper.Cut(g, pInf, nInf);
g = MeshPlaneCut(g, gOrig, cpInf);
//g = MeshPlaneCut(g, gOrig, cpSup);
DiffuseMaterial graySide = new DiffuseMaterial(new SolidColorBrush(Colors.Gray));
var meshGeo = new GeometryModel3D(g, graySide);
Model3DGroup finalModel = new Model3DGroup();
finalModel.Children.Add(meshGeo);
//remove gridlines
bolusMesh.Content = finalModel;
//export stl
Viewport.Viewport.Children.Remove(grids);
Viewport.Export(@"E:\Test\test_cut.stl");
Viewport.Viewport.Children.Add(grids);
}
private static MeshGeometry3D MeshPlaneCut(MeshGeometry3D meshCut, MeshGeometry3D meshOrig, Plane3D plane)
{
//Store the positions on the cut plane
var segments = MeshGeometryHelper.GetContourSegments(meshOrig, plane.Position, plane.Normal).ToList();
//assumes largest contour is the outer contour!
IList<Point3D> vertexPoints = MeshGeometryHelper.CombineSegments(segments, 1e-6).ToList().OrderByDescending(x => x.Count).First();
//meshCut the polygon opening and add to existing cut mesh
var builder = new MeshBuilder(false, false);
builder.Append(meshCut.Positions, meshCut.TriangleIndices);
builder.AddPolygon(vertexPoints);
MeshGeometry3D mg3D = builder.ToMesh();
return mg3D;
}
VoxelDemo source (and some other example sources) missing?
rasc wrote at 2012-06-07 23:00:
Hi,
perhaps I am missing something, but it seems that in the current source code download the voxeldemo (and some others) are not available. I would very much appreciate to be able to have a glance at it.
thank you
Ralph
objo wrote at 2012-06-08 07:34:
It was moved into the "ExampleBrowser" application. Will add a note where to find it on the wiki page.
rasc wrote at 2012-06-08 11:24:
Found it...This is really a great project - thank you for sharing
Ralph
The "HelixViewwport3D "not have
xiaotu wrote at 2013-07-19 05:28:
Mrme wrote at 2013-07-19 10:53:
Completely Disable Panning
MikeCo wrote at 2012-10-23 22:06:
Is there any way to completely disable panning? I just want my objects to be able to rotate, not pan.
Thanks
objo wrote at 2012-10-24 11:04:
Try IsPanEnabled = false
MikeCo wrote at 2012-10-24 16:09:
Ah! Duh...I just never saw this property. Thanks!
Add additional InputBinding in XAML
govert wrote at 2012-03-28 14:21:
This is more a WPF / XAML questions, but arose in the Helix Toollkit context:
Earlier versions of the HelixView3D had both the Shift+RightClick and the MiddleClick bound to the Pan command. The default template in the current version sets the PanGesture to Shift+RightClick, but MiddleClick no longer works. I want to keep the Shift+RightClick, and add the MiddleClick as an additional gesture, which means I can't just set the PanGesture property (it would replace the current gesture).
From code-behind it works if I do this:
InitializeComponent(); sceneView3D.Loaded += delegate { sceneView3D.CameraController.InputBindings.Add( new InputBinding(CameraController.PanCommand, new MouseGesture(MouseAction.MiddleClick))); };
But I'd rather set it in the XAML, so I've tried something like this:
<helix:HelixViewport3D x:Name="sceneView3D" ... > <helix:HelixViewport3D.InputBindings> <MouseBinding MouseAction="MiddleClick" Command="{x:Static helix:CameraController.PanCommand}"/> </helix:HelixViewport3D.InputBindings> ... </helix:HelixViewport3D>
but it doesn't work - we need to add to the CameraController's InputBindings.
Is it possible to add the InputGesture from XAML?
Thanks for the help,
Govert
objo wrote at 2012-04-03 01:20:
I added an alternative pan gesture dependency property (PanGesture2), and set the default value to the middle button.
That was the easy solution, not sure how to get the inputbindings to work..
Kerkythea Exporter: Texture Support
AaronLenoir wrote at 2010-02-08 09:43:
Hey,
I'm currently using the Kerkythea exporter to create Kerkythea scenes from WPF viewports. I've already implemented some changes to correctly support our transformations and it's looking really good.
Our main problem now is Texture support, I'm looking into it, but currently I've had no luck in applying textures (using Kerkythea) to models in a scene exported from WPF. The texture is scrambled beyond recognition. I was wondering if you have already done some work on the textures that might help me forward.
Thanks already!
PS: If you want, I will send you our current changes
objo wrote at 2010-02-21 18:02:
Fantastic! I would really like to include your improvements into the Kerkythea exporter. I added you as a developer, feel free to submit the changes (or e-mail me). Sorry I have not had time to look into texture support - but I think that's the next thing that should be supported. I am sure we can get some help from the Kerkythea forums/Ioannis. I am busy with other things right now, but will continue on this later. Cheers!
objo wrote at 2010-05-16 13:04:
hi Aaron, I am looking into the Kerkythea export again - you could send me the improvements you did on the transformations?
Customer support service by UserEcho