Breaking Changes in Eyeshot version 2020

This page lists the important behavior and API changes that were introduced in this version. If you already have projects using devDept products, you will need to peruse this list in order to understand the changes you might need to make to your source code to support this new release.

 

What's New

To learn about what's new in this version, please refer to the following page: What's New

  • RootBlock paradigm
  • Seamless navigation through assembly levels
  • Progressive Turbo representation during assembly navigation
  • Improved Zoom/Pan/Rotate switch on large assemblies (when Turbo is active)
  • ReadGCode class and a new entity called Toolpath
  • GetLength(), GetPerimeter(), GetArea() and GetMass() methods for Entity/Face/Edge/Curve with proper linear and mass unit support.
  • ReadJT class to read tessellation from Siemens JT files
  • Native multitouch implementation in WPF control
  • Faster, convex hull based, zoom fit
  • Collision detection intersection volumes
  • Degrees/minutes/seconds format for angular dimensions
  • Load thumbnail image from DWG files
  • Multiple origin symbols per Viewport
  • Clipping boundary in Picture entity
  • Improved small object culling and frustum culling during dynamic movements
  • Circle/arc dimensioning in Drawings environment
  • Accurate BRep texture mapping
  • FemMesh slicing
  • Entity write/read by reference in proprietary file format

 

Breaking Changes

BC-100 Removed CreateReferenceImage() and CompareWithReferenceImage() methods Removed CreateReferenceImage() and CompareWithReferenceImage() methods both for Environment and Viewport classes.
BC-101 Changed signature for Entity.Dump() method Now the Dump() method allows to specify a unit of measure for length and mass as input, to be able to calculate the quantities of Areas, Volume and Mass according to a specific system of measurement.
BC-102 RootBlock paradigm (Article)
  • The block keyed collection, if linked to an environment, must have a root block: BlockKeyedCollection.SetRootBlock() 
  • Block.Entities collection is now an EntityList and it is read-only
  • Now the scene bounding box is updated by the Environment.UpdateBoundingBox(), Entities.UpdateBoundingBox() updates only the relevant block.
  • GetVisualRefinementDeviation() was moved from EntityList to Environment
  • Assembly navigation is now controlled by the Environment class, the list methods and properties moved from EntityList class to Environment is: SetCurrent(), CurrentBlockReference, CurrentTransformation, OpenCurrentBlockReference(), CloseCurrentBlockReference(), SetCurrentStack(), GetStackTransformation(), Parents, SetParentAsCurrent(), SetSelectionAsCurrent()
  • Renamed OpenCurrentBlockReference() method to OpenCurrentBlock()
  • Renamed CloseCurrentBlockReference() method to CloseOpenBlock()
  • Groups are now controlled by the Block. Property Environment.Groups was removed, GroupSelection() method was moved from Environment class to Block one. Ungroup() method was moved from Environment class to Block one
  • Removed property EntityList.IsOpenCurrentBlockReference
  • Changed signature and behaviour of method Camera.RemoveSceneTransformation()
  • Changed Environment.CopyTo() signature, replaced skipEntities parameter with replaceRootBlock parameter.
  • After reading STEP files with a root block defined, now you get one less assembly level.
  • WriteParams constructor with the collections. Now if the entities collection is null or empty, the entities of the root block, if it exists, will be exported.
  • Removed property Environment.Units
  • The default unit of the block is now Meter
  • Block.RegenAllCurved() method has been removed, you now need to use Block.Entities.RegenAllCurved() one.
BC-103 CollisionDetection2D.Result Changed CollisionDetection2D.Result from List<Tuple<CollisionTupleItem, CollisionTupleItem>> to List<CollisionResult> Every access to CollisionDetection2D.Result[i].Item1 have to be replaced with CollisionDetection2D.Result[i].CollidedEntities.Item1
BC-104 Changed the Dimension.TextOverride behavior Now, when a string without the characters "<>" is set as TextOverride of a Dimension, the prefix, the suffix, and the tolerances are no longer displayed. Only the TextOverride string is displayed.
BC-105 Removed the includeWires parameter in ReadSTEP class constructor Now we always read STEP curves, they are also properly loaded in the relevant block.
BC-106 WPF Native Renderer now uses native touch events In WPF Eyeshot control, when the renderer is set to Native or NativeExperimental, the default handler for touch gesture is now the native one.
If you want to continue to use the WM_TOUCH messages as in the previous release you can just set model1.MultiTouch.UseWindowsMessages = true in the MainWindow constructor.

If you're using the ImmediateMode no change is required.

BC-107 Removed the BuildPage() virtual method in the WritePDF class To customize the PDF document you now must override the BuildDocument() method, and there is no need to add references to the OpenDesign DLLs.
BC-108 Removed zero-length segments from MarchingSquares results An additional cleanup step was added
BC-109 Model.ActiveViewport is now the shortcut to get UI Elements properties of the active viewport. Removed Model.Background property and other ones about UI Elements of the active viewport (e.g. Model.ToolBar/GetToolBar(), Model.ViewCubeIcon/GetViewCubeIcon, etc.).
Renamed ActiveViewport property to ActiveViewportIndex.
Added Model.ActiveViewport property to quickly get the active viewport.
The following wrappers remain available to access to the active viewport properties/methods:
  • Rotate
  • Zoom
  • Pan
  • DisplayMode
  • InitialView
  • Camera
  • ShowVertices
  • ShowVertexIndices
  • ShowCurveDirection
  • VertexSize
  • AutoHideLabels
  • Labels
  • ShowLabels
  • RenderToBitmap()
  • SaveView()
  • RestoreView()
  • SetView()
  • SaveView()
  • PreviousView()
  • NextView()
BC-110 Entity XData The entity XData dictionary of an entity is now stored inside the new AutodeskProperties property of the Entity class. It gathers some miscellaneous properties of the AutoCAD entities. From now on, to get/set the XData is required to proceed as follows: myEntity.AutodeskProperties.Xdata = xData;
BC-111 Added support for BlockReference with Mirror transformation When a BlockReference includes a Mirror transformation we now flip geometry normals automatically.
BC-112 Object graph reference support for the entities in the proprietary file format When you store the reference to an entity (e.g. in entity.EntityData property), now the reference to that entity is preserved when the file is read back.
BC-113 Removed Environment.HideSmall property Now we never hide in static drawing and always hide in the dynamic drawing. Environment.SmallSize property was moved to Viewport class and was changed in get only. A new property called Viewport.SmallSizeRadio, was added to control small size value estimation, based on the smallest Viewport dimension. The default value is 0.01 (1% of the smallest Viewport dimension) and can be disabled using zero.
BC-114 TessellationMesh class retired No longer necessary, texture offset and scaling were moved at Brep.Face level.
BC-115 Redesigned Brep texture mapping Texture mapping is now based on Material.TextureLength, Material.LinearUnits and Block.LinearUnits of the enclosing Block class.
BC-116 Brep.IsPointInside() return type Now it returns a devdept.Geometry.pointStatusType instead of bool value.
It identifies also when a point is onto the Brep faces.
BC-117 Changed Vector2D and Vector3D inheritance Vector2D no longer derives from Point2D. Vector3D no longer derives from Point3D, it derives from Vector2D.
mceclip0.png
BC-118 Animation (Article) Because of new optimizations on the scene graph, the MoveTo method is called only while the animation is running, when it's stopped all the entities are drawn in their real position. To continue drawing entities with the custom transformation you can set Model.AnimationStep to zero instead of stopping the animation. The animation code samples were updated with this trick.
BC-119

Moved Model.LastFrameDrawingDelay to TurboSetting and renamed into DetailedDrawingDelay

Moded Model.LastFrameDrawingDelay to TurboSetting and split the behavior in order to set this delay to mouseWheelTimer.Interval only during Turbo.Enabled = true.
Added internal event DelayChanged to register the environment to the property changes and update the Timer.Interval if already active.
When Turbo.Enable = true and DetailedDrawingDelay = 0 the Timer is disabled for ZPR.
BC-120

Environment.PrintResolution property removed

The PrintResolution property has been removed.

 

BC-121

Removed TessellationMesh class

It was used inside the Brep.Face.Tessellation array, now we use standard mesh. The TessellationMesh.OffsetU, ScaleU, OffsetV and OffsetV properties were moved to Brep.Face level.

BC-123

Removed Brep.RecycleTessellation property

Proprietary file format is increasing in complexity, we discourage this practice.

 

Detailed changes at field, methods, types and interfaces and abstract classes level are available as an attachment to this article (Coming soon).

Eyeshot version 2020 is based on .NET Framework 4.5

 

Previous versions of this article: Eyeshot 12Eyeshot 11Eyeshot 10Eyeshot 9

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.