This is the discussion forum for Helix Toolkit.
For bugs and new features, use the issue tracker located at GitHub.
Also try the chat room!
0

subtracting one shape from another

will 10 years ago updated by Schwabelbauch 9 years ago 3

Say I have 2 spheres(SphereVisual3D) and place them so that they overlap. Can I somehow subtract one from the other such that one sphere will have a dimple on it? Or subtracting a cylinder from a box to create a hole?


For a hole, maybe a circular cutting plane and triangulate the hole wall?


I know I can do this in Blender and the like and export the model, but what I'm basically trying to achieve is to have a single model and parameterize a few dimensions.


Any help or nudges would be greatly appreciated.

0

ScatterViews, Touch Events and Manipulators

Anonymous 11 years ago 0
This discussion was imported from CodePlex

Darkounet789 wrote at 2014-02-24 16:15:

Hi everyone !

I added a 3d viewport inside a scatterview item. So I had to manually add a manipulator to the cameracontroller in order to catch the manipulation events on the viewport, otherwise the scatterview catch it. I did it this way :
        private void HV3DTouchDown(object sender, TouchEventArgs e)
        {
            CameraController cameraController = Viewport3D.CameraController;
            try
            {
                Manipulation.AddManipulator(Viewport3D, e.TouchDevice.AsManipulator());
            }
            catch
            {
                Console.WriteLine("Error occured in Sketch3D.HV3DTouchDown");
            }
            e.Handled = true;
            CaptureTouch(e.TouchDevice);
        }

        private void HV3DTouchLeave(object sender, TouchEventArgs e)
        {
            CameraController cameraController = Viewport3D.CameraController;
            try
            {
                Manipulation.RemoveManipulator(cameraController, e.TouchDevice.AsManipulator());
            }
            catch
            {
                Console.WriteLine("Error occured in Sketch3D.HV3DTouchLeave");
            }
            e.Handled = true;
            CaptureTouch(e.TouchDevice);
        }
But now, I would like to catch the manipulation on a manipulator (or any other 3D object in my scene) and I can't figure out how to achieve it, because of the AddManipulator method which only takes a UIElement and not a UIElement3D...

Is there any workaround about this ?

Thanks in advance ! Regards.
(Sorry for my bad english...)
0

Create a tube of specific wall thickness

Anonymous 11 years ago 0
This discussion was imported from CodePlex

bradphelan wrote at 2013-07-10 09:56:

Hi there, nice library.

I've used MeshBuilder.AddTube to create a tube with open ends. If I wanted to create a tube with a specific wall thickness is there a method somewhere to create a shell from a such a surface?

I guess I'm looking for something like this

http://help.solidworks.com/2012/English/solidworks/sldworks/hidd_dve_feat_shell.htm

objo wrote at 2013-07-12 23:08:

I think you can create another tube, and then reverse the triangle indices to flip the normals to the inside.
But it would desirable to improve the current MeshBuilder method to support inner diameters and end caps! Sorry, I can't help you with this at the moment.
0

Turntable lockup after Animation

Anonymous 11 years ago 0
This discussion was imported from CodePlex

cobra18t wrote at 2011-12-07 22:03:

I have a few hotkeys that animate the camera in a HelixViewport3D to predefined positions and loodirections. After animating to those positions, the turntable control locks up so that only tilting left/right is available (changing updirection). Looking up/down or left/right is locked up. After clicking the view cube, the look control is reset and I can look around again.

Is there something that I can do in the code to make the turntable control available after an animation without clicking the view cube?

Thanks,

-Thomas


objo wrote at 2011-12-07 22:13:

What is the FillBehaviour of your animation? If it is HoldEnd you can try to change it to Stop.

I am also setting the end value before starting the camera animations, but not sure if this is the correct way to do it...


cobra18t wrote at 2011-12-07 22:43:

Thanks, that did it. I am not a fan of setting the end value before animating, but it works. I need to double check that it is not displaying a single frame at the end position before animating from the start to end. That could really mess up my system.

Thanks again!

0

Help with Scale Manipulator!!!

Anonymous 11 years ago 0
This discussion was imported from CodePlex

Raathigesh wrote at 2013-01-22 16:41:

Hi,

First of all thank you for the excellent toolkit.

I saw the example where translate manipulator used as a scale manipulator.

Example in xaml :

<ht:SphereVisual3D x:Name="sphere1" Center="-4,0,0" Fill="Orange"/>
<ht:TranslateManipulator Color="Black" Position="-4,0,0" Offset="0,0,1" Length="1" Value="{Binding Radius, ElementName=sphere1}" Direction="0,0,1"/>

Can some one please guide to do the exact same thing in code behind. 

  EllipsoidVisual3D sphere = (EllipsoidVisual3D)model.Visual3D;

  TranslateManipulator x = new TranslateManipulator();
   x.Direction = new Vector3D(0, 0, 1);
   x.Length = 10;
   x.Color = Colors.Black;
   x.Bind(sphere);

  //Guide me to use this as a scale manipulator instead of Translate Manipulator

Thanks :)

0

Source I guess I was wrong.

Anonymous 11 years ago 0
This discussion was imported from CodePlex

DongMini wrote at 2013-02-05 01:13:

File : Source\HelixToolkit.Wpf\Controls\CameraController\RotateHandler.cs

Line 203
        if ((newUpDirection - modUpDir).Length > 1e-8)
        {
            d = 0.2;
        }
a
        if ((newUpDirection - modUpDir).Length < 1e-8)


I guess you're right.

objo wrote at 2013-02-07 20:06:

I don't see where you got the first code block from...

The other block looks suspicious, I agree. It is possible this change of up direction is not necessary - but I don't remember what I tried to achieve there. Should have added some more comments...

Do you find the "turnball" :-) mode useful? It was implemented as an experimental mixture of the turntable and trackball rotation modes...
0

Missing wiki page: Create a 3D view

Anonymous 11 years ago 0
This discussion was imported from CodePlex

yangmaomao wrote at 2013-12-11 09:18:

how to get started with helix 3d framework?

Rogad wrote at 2013-12-11 15:40:

I had the same problem. Maybe this will help : https://helixtoolkit.codeplex.com/discussions/471937
0

Problems with moving camera at the top of the screen.

Anonymous 11 years ago 0
This discussion was imported from CodePlex

Rahvil wrote at 2011-08-29 15:12:

There is about 50 pixels high area at the top of HelixView3D where I can't move object displayed on the screen. The size of the HelixView3D doesn't change the "dead area" size. Same "dead area" is in every HelixView3D in my project and it seems that there is same "dead area" in demos too. Any one else having this same phenomenon and is there any solution for this?


objo wrote at 2011-08-29 22:49:

thanks for the bug report, it is strange we haven't noticed this before!

The 'title area' was stealing the mouse events. I changed TitleBackground to null, and now it should work. See the latest change set.


Rahvil wrote at 2011-08-30 09:49:

Thanks alot!

0

TouchMode display

Anonymous 11 years ago 0
This discussion was imported from CodePlex

Mrme wrote at 2014-07-24 17:52:

Hi, So I just want to to display to the user in which TouchMode the HeilxViewPort3D is in right now. the TouchMode property doesn't seem to give that information as it is always give the initial TouchMode , any clue ?

Mrme wrote at 2014-07-25 14:09:

I found the solution. it is the CameraController TouchMode property where we should look at .
0
Under review

How to prevent camera from going down?

Kumaran M 11 years ago updated by Øystein Bjørke 11 years ago 1
I want to control the camera from going down in Z axis.
Just assume a flat surface and the camera is on top. The camera should not go beyond that flat surface. 

I can get the event from HelixViewport3D_CameraChanged() event whenever the camera position is getting changed. But I cannot prevent from going down. e.Handled = true; is not working.

Basically I want to prevent camera position's Z axis should not go into negative.