Blog


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

Miscellaneous

How we test Eyeshot using the UI Automation

Starting with Eyeshot 2020, we introduced a series of interactive tests to cover particular scenarios that cannot be tested with the standard unit testing approach. We tried some commercial solutions, but we found out that they were congenial for testing a full application, not a single and complex…

by Marcello Stagni | December 20, 2019 | Share

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 a…

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 add…

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 …

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…

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 Progr…

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 bet…

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 u…

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 E…

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 con…

by Giulia Martini | January 08, 2019 | Share