Blog


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

Miscellaneous

Geometric kernel/UI separation in Eyeshot 2022

From Eyeshot 2023, GEntity class and inherit classes have been abandoned in favor of a new architecture. With Eyeshot 2022 we make a strong separation between geometric algorithms and object rendering. For this reason, we introduced a new hierarchy of objects under the namespace devDept.Geometry.Entities that can be used to perform geometric modeling witho…

by Simone Maccaferri | October 25, 2021 | Share

Miscellaneous

How Collision Detection works

Eyeshot provides two different collision detection classes: CollisionDetection2D for the 2D version in which all the input entities have to lay on Plane.XY (it supports BlockReference, Region, and ICurve); CollisionDetection for the 3D version with input entities in any position and orientation of the 3D space (it supports BlockReference and all entities im…

by Melissa Angelini | January 25, 2021 | Share

Miscellaneous

WorkManager (How to handle multiple WorkUnits)

Eyeshot 2021 introduces a new helper class designed to handle a queue of WorkUnit objects more efficiently.To facilitate understanding, we use the term Operation to refer to the work carried out by each individual WorkUnit.The WorkManager class enables the execution of either a single operation or all operations in the queue, either synchronously or async…

by Marcello Stagni | December 22, 2020 | Share

Miscellaneous

Add to scene as single object

The following code is a sample of the main steps to insert the contents of a file inside a Block and create a BlockReference that refers to it. ReadSTEP readFile = new ReadSTEP(fileName); readFile.DoWork(); // Merge the master collections loaded from the file with the Environment ones // In case of name conflict, these utility methods preserve the existing items readFile…

by Simone Maccaferri | November 04, 2020 | Share

Miscellaneous

Multi-file and lazy loading

Eyeshot 2021 introduces a new feature that allows you to save the entire scene to multiple files using the Eyeshot proprietary file format. With this feature, you have the flexibility to work on a file representing a single component and observe its changes when loading the entire assembly (video), or you can choose to load only a partial assembly, loading specif…

by Marcello Stagni | October 09, 2020 | Share

Miscellaneous

Eyeshot issues with Infragistics controls

Issue 1: Docking control and draw overlay If you need to customize the Eyeshot control by drawing a text in the overlay, you will get an error during docking/undocking operations with Infragistics control. To overcome this, you can use the below trick: using System.Runtime.InteropServices; class MyDesign : Design { protected override void DrawOverlay(DrawSceneP…

by Marcello Stagni | May 26, 2020 | Share

Miscellaneous

Eyeshot WPF multitouch

Starting from Eyeshot 2020 WPF, the handler for touch gestures is the native one.In this way, we can avoid disabling the RealTimeStylus support from the application Window by default. On the other hand, in order to manage multitouch in an efficient way*, you can still use WM TOUCH events just by setting  design1.MultiTouch.UseWindowsMessages = true in the MainWindo…

by Marcello Stagni | January 08, 2020 | Share

Miscellaneous

WM TOUCH: Enable multitouch on Eyeshot WPF control when added programmatically

For the Eyeshot WPF control,  when the ImmediateMode is not activated but the property model1.MultiTouch.UseWindowsMessages is set to true and you need to add the Eyeshot control programmatically, you need the below code in the main window constructor to make it work. public MainWindow() { InitializeComponent(); WorkspaceBase.DisableWpfTabletSupport(); } You can t…

by Marcello Stagni | January 08, 2020 | Share

Miscellaneous

WM TOUCH: Enable multitouch for the other WPF controls

For the Eyeshot 2020 WPF control, in order to manage multitouch in an efficient way when the ImmediateMode is not activated, you can set model1.MultiTouch.UseWindowsMessages = true in the MainWindow constructor.As a side-effect, this disables the RealTimeStylus support from the application Window causing the multitouch gestures to no longer work on WPF cont…

by Marcello Stagni | January 08, 2020 | Share

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 component like Eyeshot. We need something more flexible and c…

by Marcello Stagni | December 20, 2019 | Share