Blog


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

Miscellaneous

Entity.AutodeskProperties

Starting from Eyeshot 2020, we introduced a new property of type AutodeskMiscProperties of the Entity class called AutdoeskProperties. This class gathers inside it some miscellaneous Autodesk properties such as curve thickness, the thickness extrusion direction, and the entity XData.  Now to read and write the entity XData you need to proceed as follows:  Li…

by Antonio Spagnuolo | December 13, 2019 | Share

Miscellaneous

Assembly Navigation

This article explains the basic concept of assembly navigation. For a better understanding, it is recommended to read the RootBlock article first. For an advanced implementation of this feature, you can see the code of the AssemblyDemo sample. Take for example a simple scene with two blocks, in addition to the root one. Block red = new Block("Red"); red.Entities.Add(Brep…

by Simone Maccaferri | November 29, 2019 | Share

Miscellaneous

RootBlock paradigm

Eyeshot 2023 includes a Block, called RootBlock, that represents the scene root. This means that every single piece of geometry is always inside a Block definition. There is no longer a collection of entities associated with the environment, the Workspace.Entities collection is now a shortcut that refers always to a Block.Entities collection, normally of the R…

by Simone Maccaferri | November 18, 2019 | Share

Miscellaneous

2D rotation perpendicular to screen

If you want to recreate the features of a 2D viewer (for example, only on the XY plane) you can do it with Eyeshot by means of the tips reported in this article.The following code allows simulating the basic features of a 2D viewer: enables the orthographic projection mode, disables the rotation on the 3D space, leaving only the one on the XY plane enabled. design1.Activ…

by Antonio Spagnuolo | September 06, 2019 | Share

Miscellaneous

Synchronous ProgressBar

In Eyeshot ProgressBar can be used only in asynchronous WorkUnits (the ones ran with model.StartWork()). In case you would like to use ProgressBar in a synchronous way, independently from WorkUnits, updating its value when needed and then calling Invalidate(), you can use this trick:   Derive ProgressBar class and expose its Draw method: public class MyProgressBar : de…

by Manuel Nucci | July 31, 2019 | Share

Miscellaneous

Animation

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

Miscellaneous

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

Miscellaneous

Tips to open an effective ticket

When opening a ticket, your expectation is likely to receive a prompt and helpful response. We strive to provide you with high-quality support, and here are some tips to enhance your chances of receiving the best possible answer:  Ensure that the issue you're experiencing is directly related to Eyeshot before opening a ticket.If you have questions or inquiries ab…

by Antonio Spagnuolo | February 12, 2019 | Share

Miscellaneous

Geometry Import/Export

Import Supposing you want to import an OBJ file (all the import methods follow the same scheme) you need the ReadOBJ class. This class gives you full control over all the imported items (entities, blocks, layers, materials, etc.) before adding them to the scene. During file import, you can also control whether to read the file synchronously or asynchronously. Read from s…

by Giulia Martini | January 08, 2019 | Share

Miscellaneous

Eyeshot issues with Telerik controls

Issue 1: Docking control When using Eyeshot control inside a Telerik docking control, the Eyeshot control disappears due to a dispose call. This behavior is time issue due to the built-in animation of the ToolWindow. Basically, when you docked, a Pane animation is triggered, Close event of the window is called at a later stage and the Eyeshot control is disposed.You…

by Marcello Stagni | October 05, 2017 | Share