Learn about industry trends, news and how-tos from our product experts.

3D Graphics

Drawing entities above all others entities using TempEntities

It is common the need to draw an entity that will be shown above all other entities. For this task, there is not a univocal answer and there are different solutions that can be implemented based on the working context. For one of them, you can use the approach shown here. Here, we discuss the possibility to use our TempEntities to achieve this task.  Here is a sample code: B…

by Antonio Spagnuolo | July 05, 2019 | Share



devDept.Eyeshot.Entities.Region reg1 = devDept.Eyeshot.Entities.Region.CreatePolygon(Plane.XZ, new Point2D[]{ new Point2D(0, -40), new Point2D(100, -40), new Point2D(100, 0), new Point2D(80, 0), new Point2D(80, -30), new Point2D(0, -30)}); Brep rev1 = reg1.RevolveAsBrep(Utility.DegToRad(360), Vector3D.AxisZ, Point3D.Origin); devDept.Eyeshot.Entities.Region cr2 = devDept.Eyeshot.Entities.Regio…

by Giulia Martini | July 03, 2019 | Share


Offsetting a Curve on a Surface

The proposed solution is not natively supported and may not work in all scenarios and versions. With the sample code reported in this article, you can offset a curve that lies on a non-planar surface. First of all, it creates a ruled surface normal to the surface in which the curve lies. Then, it offsets the ruled surface and then it finds the offset curve as the interse…

by Antonio Spagnuolo | June 11, 2019 | Share


Eyeshot 12 build 456

We are proud to announce the availability of a new Eyeshot 12 stable build: 12.0.456 In Brief This build includes mostly bug fixing. Here are a few highlights: Added the DrawingPanel user control and refactored PaperSpace source code sample Added support for hyperbola and parabola curves in STEP import Added support for creating lines and circles tangent to tw…

May 31, 2019 | Share


Closest point on a Brep object

To find the closest point on a Brep object you need to loop over its faces and with the help of Surface.ClosestPointTo() and PointAt() methods compute the projection of the 3D test point on each Brep face. ReadSTEP rs = new ReadSTEP("filename.stp"); model1.DoWork(rs); rs.AddToScene(model1); Point3D pt = new Point3D(100, 100, 100); Joint j1 = new Joint(pt, 2, 2); model1.Entities.Add(j1, Color.R…

by Antonio Spagnuolo | April 23, 2019 | Share



Animation is performed only on the GPU, entities are not truly moved, vertices and bounding box don't change, collision detection doesn't work and so on. To edit entities position you can apply a transformation, but the computation is heavier and the animation slower. You can see the difference between these approaches in the Assemble sample. The steps to animate a…

by Simone Maccaferri | April 11, 2019 | Share


Eyeshot 12 build 347

We are proud to announce the availability of a new Eyeshot 12 stable build: 12.0.347 Highlights Added support for Visual Studio 2019 Complete refactoring of the AssemblyBrowser sample, now called AssemblyDemo. Improved Turbo (FastZPR) speed of an order of magnitude. Added four different operating modes. To learn more about this update, please visit the followin…

April 05, 2019 | Share

3D Graphics

Create streamline-like curve

This article shows how to create streamlines using the PointCloud class. With the first approach,  you will have full control over the streamlines colors since you can set the RBG color of each the PointCloud's vertexes. With the second approach, you can choose colors by means of a Color Table. This is a tool that allows you to easily create a map between numerical va…

by Antonio Spagnuolo | February 28, 2019 | Share


Native vs NativeExperimental rendering in WPF

Subscribing to CompositionTarget.Rendering is sometimes useful or even needed but should be used wisely because it forces WPF to constantly render window. For this reason, starting from Eyeshot 12, we introduced the NativeExperimental renderer to stop using this event for rendering. When I should use the NativeExperimental renderer? If you experience a pe…

by Marcello Stagni | February 27, 2019 | Share



Use the following code to model with Solid entities an object like the one in the picture: var outer = Region.CreatePolygon(new Point3D[] { new Point3D(0, 0), new Point3D(460, 0), new Point3D(460, 100), new Point3D(600, 100), new Point3D(600, 400), new Point3D(0, 400) }); // House's extruded outer profile Solid body = outer.ExtrudeAsSolid(400, 0); // Big room at origin Solid bigRoom = Solid.CreateBox(40…

by Giulia Martini | February 19, 2019 | Share