| |
|
|
| Eyeshot Frequently Asked Questions
 |
How do I see if Eyeshot Viewport is active? |
 |
When the Eyeshot viewport is active the UCS Icon shows the axis labels XYZ, otherwise it doesn't. |
 |
What is the difference between Mesh, MulticolorMesh, MulticolorOnVerticesMesh and RichMesh objects? |
 |
The Mesh object is used for plain vertex and triangle meshes with one solid color. The MulticolorMesh supports different colors for every triangle. The MulticolorOnVerticesMesh is used for meshes with a different color on each vertex (e.g. displaying FEM results). The RichMesh supports different material (ambient, diffuse, specular, shininess, texture) for every triangle. |
 |
How do I change the line/arc/ellipse on screen thickness? |
 |
Changing the Entity.LineWeigth property value. This value also affects the entity width during printing. Values less than one are correctly rendered only on paper. |
 |
Is it possible to mark some entities as UNselectable? |
 |
Yes, setting the entity's Selectable property to false. |
 |
How do I make some entities temporary not visible? |
 |
Set the entity's Visible property to false. |
 |
When should I use RescaleModel()? |
 |
RescaleModel() calculates the model extents, rescales it to fit in a unit sphere and centers everything in the Viewport's client area. Usually you need to call it every time the model changes considerably. |
 |
When should I use Regen() and/or Compile() methods? |
 |
First of all, you need to call these two method only when an entity is modified. Eyeshot calls them automatically every time one entity is added to the master entity array. Viewport.Entities.Regen() have to do with entities that require tessellation, like circles for example. If you change the radius of a circle you will need to call Viewport.Entities.Regen() to see it changed. Viewport.Entities.Compile() have to do with entities that use OpenGL display lists for faster rendering, like Mesh and Nurbs Surface for example. |
 |
Why my entities are sorted differently from how I created them? |
 |
You probably have the ViewporProfessional.SortEntities property set to true. When SortEntities is active the Eyeshot viewport sorts transparent objects by their distance from the viewer. This automatic sorting allows Eyeshot to correctly render overlapping transparent objects. |
 |
When should I use prefer Entity.TransformBy() method to Move() / Rotate() / Scale()? |
 |
They do exactly the same thing: transform your entity vertices. By the way there is one important difference, if you need to apply more than one operation Entity.TransformBy() will be faster because it modifies the entity vertices only once. |
 |
I can move, rotate and scale meshes as long as they are not yet added to the Viewport. After they are added, no action is taken. When I manipulate a Quad, it works fine. What can I do? |
 |
Call the following two methods:
viewportProfessional1.Entities.Regen(myMesh);
viewportProfessional1.Entities.Compile(myMesh);
Some simple entities like Quad, Triangle, Line, etc. don't require these actions, some others do. A good practice is to call them systematically. |
 |
How do I prevent too many labels to be drawn on screen? |
 |
Labels expose the OnScreenPosition property that allow you to know their position on the screen 2D surface. Using this information you can subdivide the screen surface in a grid and prevent multiple labels to be drawn in the same grid cell. The right place to do all of this is the Viewport.DrawOvelay() method that needs to be overridden. Just before calling the base class implementation you will set the specific label Visible property to true/false. |
 |
How can I speed up texture loading? |
 |
Preparing all the texture images with dimensions power of two, like 128x128, 256x256, 512x512, ... |
 |
How do I change the Viewport lighting settings? |
 |
The Eyeshot 3D scene has only two lights: the Key light and the Fill light. The first is located on your left shoulder while second is located on your right elbow. By default they are both turned on. You can change their parameters using the Viewport.KeyXXX and Viewport.FillXXX properties. You can even see their 3D position using the Viewport.ShowLights property although in many case they will be out of the screen. |
 |
How do I change the entity default material settings? |
 |
Default material setting are shared between all the Eyeshot Viewports and all the entities that don't use a specific Material. You can change them using the Viewport.MaterialAmbient, Viewport.MaterialSpecular and Viewport.MaterialShininess properties. |
 |
How do I specify the absolute zoom factor in Parallel projection mode? |
 |
Using the Viewport.ZoomFactor() method. |
 |
Code generation for property XXX failed. Error was: XXX is unable to convert XXX to System.ComponentModel.Design.Serialization.InstanceDescriptor |
 |
This message is Visual Studio error. It happens when Visual Studio loads either two different versions of same assembly or two same versions from different locations. It can be caused by number of different things: make sure that only single build of Eyeshot is referenced,
make sure that only single version of component is installed on your machine, make sure that you do not have CopyLocal property set to true if you have installed Eyeshot into the GAC (Global Assembly Cache). Note that Eyeshot is not installed into the GAC by default.
|
 |
Why my 1500x1000 pixel image looks poorly when it's used as texture? |
 |
Eyeshot always resizes the texture images to the bigger square with power of two dimension (like 128x128, 256x256, 512x512, ...) that can fit in the original image. In the case of a 1500x1000 pixel image, Eyeshot will scale it down to a 512x512 pixel before using it! |
 |
I am trying to add a multimillion vertices Mesh to the Eyeshot Viewport but I get an OpenGL error related to running out of memory. What can I do? |
 |
Switch to a 64-bit Operating System. |
 |
How do I change the background color of my TextOnly labels? |
 |
Using the FillColor property. |
 |
How do I draw some entities on a plane different from XY? |
 |
The easiest way is the ViewportStandard.MoveToPlane() method. You create all the entities on the XY plane, add them to a temp ArrayList and pass it as first parameter to the MoveToPlane() method. At this point you need simply to add the temp array to the master entity array, using the AddRange() method. |
 |
How do I show current FPS (Frame Per Second) rate? |
 |
Setting the Viewport.ShowFPS property to true. |
 |
Exactly what do the TwoPassRendering and SortEntities flags do? |
 |
In the case of transparent Mesh objects, TwoPassRendering render first the its back facing triangles than the front facing ones. The Viewport.SortEntities property sorts all the visible entities by their distance from the viewer to correctly render overlapping transparent objects. |
 |
How do I know what OpenGL version I am using? |
 |
Calling the Viewport.OpenglVersion and Viewport.OpenglRenderer properties. |
 |
How do I test my program on a machine without the DDXcoreMSM.msm installed? |
 |
Use the Eyeshot setup program, choose Custom setup type and UNselect all the available features. For your information the /Program Files/devDept Software/Bin folder and relative files will be also installed. |
 |
Why I get the WriteAutodesk error: System.Runtime.InteropServices.COMException ... when I use the ViewportProfessional.ReadAutodesk() or WriteAutodesk() methods on Windows Vista 64 bit? |
 |
OpenDWG, the tool Eyeshot uses for reading/writing Autodesk files is not compatible with 64 bit operating systems yet. To use these two methods on 64 bit operating systems set the Platform target to 'x86' on your Visual Studio project properties. |
|
|
|
|
|