Closed s-trinh closed 7 years ago
Is this feature introduced here and in #6 an alternate to simplifying a model? Like instead of simplifying just choose the important contour points?
Yes, after some reflexion, we prefer the approach where the user selects directly the contour points he wants for 3D lines and 3D faces:
From #8
in complex CAD models we have, the object is not decomposed of multiple primitives in the object tree view and we don't want to force the user to prefilter and/or group each primitive in a specific group
Simplifying or decomposing models isn't difficult once important vertices are selected. Below are some simple steps that can be done to generate faces from the selected vertices.
1. Select vertices
2. Y
to seperate vertices/ edges and P
to create a new mesh for those separated vertices/ edges
3. Now the user can select edges/vertices/faces and then X
to delete them. Limited Dissolve
can now be used to reduce number of vertices/ edges further and maintain the contour [this step is optional]
4. F
to create a face from the new set of vertices
The advantage of having these primitives exist in the scene is it would be easy to manage them.
But if they are to be managed in a list as just data points, the list would be very large for even a simple model like cubesat
and it would be hard for the user then to remove/ disable a random list of points/ lines from the tree view without any 3D representation.
But let me go ahead and implement these features and see how it turns out when working with complex models.
The advantage of having these primitives exist in the scene is it would be easy to manage them. But if they are to be managed in a list as just data points, the list would be very large for even a simple model like cubesat and it would be hard for the user then to remove/ disable a random list of points/ lines from the tree view without any 3D representation.
Any reviews on this?
Sorry for the delay.
But if they are to be managed in a list as just data points, the list would be very large for even a simple model like cubesat and it would be hard for the user then to remove/ disable a random list of points/ lines from the tree view without any 3D representation.
The current status of the pull request for me is:
Is it correct (I don't have access to my dev machine right now) or I missed something? If so, this pull request could be a first Blender plugin.
The second plugin I would like to have is:
We should proceed iteratively:
face1
, circle#1
, circle#2
, etc.)Do you think it is feasible? In the (global) project, I would like to prioritize on this 2nd Blender plugin. If we are short in time, some optional features could be dropped (for example, import a .cao
in Blender) or simplify.
The current status of the pull request for me
Yes, these have been implemented.
I believe I can finish the second plugin (including version 1,2,3) within the given deadlines in my timeline. The import plugin can also be done since I've alloted a week for that during the month of August and also 2 weeks after that to work on any improvements.
There could be one issue with this:
To get the selected vertices
of a mesh in blender, we have to traverse through all the vertices
of the mesh and see if the selected flag
is true
. There is no function call that is triggered on selecting the vertex in the scene.
So the problem here is that the user will have to make sure that he/she selects the vertices
in the order their indices
are stored in blender i.e if you look at the screenshot below, the vertices
that the user selects to model a face using points have to be selected in their order of their indices
such that this order is maintained on traversing through the entire mesh to find the selected vertices
.
This is fine for simple models.
But for a complex model like this:
it could be difficult to ensure this order. If the user selects the vertices 11080->11081->11120->11091
, there is no way of knowing whether 11120
was selected before 11091
.
Solution: If the user were to follow the steps I mentioned in the 4 steps few comments above (June 3), this issue can be solved.
Ok. Let's move to the tutorial part for now.
I believe I've found a solution to the above. The new PR has the implementation. Basically after the user selects the vertices:
polycount
> 1: Limited Dissolve
is applied.Therefore all user has to do is to select the vertices and add it as a primitive. Editing these vertices may be tricky, so right now only add/delete is possible.
Done in #16
A 3D face can be modeled by 3 to N points. The order of the points can matter when computing the visibility from face normal.
Interaction description: