Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rotate user defined profile in helical way (similar to feature add revolved geometry) #2056

Open
Sralelb opened this issue Nov 28, 2023 · 1 comment

Comments

@Sralelb
Copy link

Sralelb commented Nov 28, 2023

Hello everyone,

is it posiible to rotate a user defined geometry following a helix?
I did the following with feature "AddRevolvedGeometry":
Screenshot 2023-11-28 160441
Every ring is a teeth on a tool. I calculated the points myself. Now I wanted to do something very similar but increase in diameter helical.
It could be compared to a thread:
image

Any help would be appreciated!

@Sralelb
Copy link
Author

Sralelb commented Jan 11, 2024

Still hope that anybody can give me a hint how to solve this. I will try to explain it a little bit more.
Picture 1 shows the expected result which is drawn with Autodesk Inventor design software. On the left side you create the profile contour and define the helix. The right side shows the result.
image

In C# with helix toolkit I am able to do pretty the same, but there is a twist inside the helix which I cannot manipulate. The red contour shows the start profile and the expexted end of the helix as shown in the inventor example.
image

Here is my code which I use currently:

        public UCToolViewer()
        {
            InitializeComponent();

            dt = new DispatcherTimer();
            dt.Interval = TimeSpan.FromSeconds(0.3);
            dt.Tick += TimerTick;
            dt.Start();
        }

        private void TimerTick(object sender, EventArgs e)
        {
            dt.Stop();

            // contour of start profile
            List<Point>section = new List<Point>()
            {                
                new Point(5,0),
                new Point(5,16.5),
                new Point(5.9777,16.5),
                new Point(7.2722,17.1215),
                new Point(7.4994,18.5944),
                new Point(7.0427,20),
                new Point(10.3393,19.8849),
                new Point(12.6580,17.1215),
                new Point(13.2075,16.6999),
                new Point(13.8837,16.55),
                new Point(14.9307,16.55),
                new Point(14.9307,0)

            };

			// contour of the helix
            List<Point3D> contour = new List<Point3D>()
            {
                new Point3D(0,20,0),
				new Point3D(0.028,19.997,0.349),
				new Point3D(0.056,19.988,0.698),
				new Point3D(0.083,19.973,1.047),
				...
            };

            view1.Children.Add(new ExtrudedVisual3D {Section= new PointCollection(section),Path=new Point3DCollection(contour), SectionXAxis= new Vector3D(10, 0, 0), Fill = Brushes.Blue,IsSectionClosed=true });
            view1.ZoomExtents();
        }

I hope anyone can give me a hint. Thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant