[WIP]Bevel after Boolean

add-ons

#742

I was trying it in 2.8 last night and found out that Auto Smooth was broken in Eevee , I reported it and got fixed today.
But why do i have to disable Stop Calculations to see the bevel result ?.
With Stop Calculation enabled only the cutter mesh gets smoothed and no bevel shows , with Stop Calculation off everything works Ok.


(Rodinkov Ilya) #743

In the first iteration there is an error creating a group of vertices. I do not know why.
And as a temporary solution, it was decided to pause.
During the second iteration, and so on. There is no error in creating a vertex group.

To be precise. That boolean overwrites the data of the vertex groups at the first iteration


#744

I don’t see any vertex groups being created.
Maybe I’m doing something wrong.


(Rodinkov Ilya) #745

Vertex groups are created for internal needs. Once completed, they are removed.
Source object
Boolean object
Bevel
Smooth


If they are needed. I can remove the deletion


#746

I get it now thanks.


(Fatesailor) #747

After a lot of testing I do see that there is a problem when the add-on tries to do a difficult somehow task: It freezes all Blender and the user becomes forced to close the whole app by clicking ctrl+alt+delete. In older versions (as in 0.09) in such cases the add-on gave bad results but did not freeze Blender. You had to make ‘undo’ (ctrl+z) and it was ok… now you wait and wait and, finally, you become forced to close Blender.

It would be good when the add-on can not deal with a difficult situation to abandon the task after a while, so that the user be not forced to shut down all Blender.


(bkjernisted) #748

Will Ctrl Alt S not save a copy Fatesailor? Just wondering.


(Fatesailor) #749

I never tried this. Will try and inform you… :slightly_smiling_face:


(bkjernisted) #750

Better Shift Ctrl S to save as. Otherwise you might loose the file you are working on. Look under the file menu for options.


(Fatesailor) #751

Ok. thanks Bkjernisted! :slightly_smiling_face:

Btw, let put here an idea for a new feature in ‘Bevel after Boolean’: The strips produced in the add-on’s operations can be used very nicely for producing a variety of hull panels (and even pipes following the surface geometry) on objects (by a little bit manual work). The problem is that this can not be done for intersecting strips. I thought a lot for finding a manual solution to the problem but still did not find one. So, I am putting below a video showing how Mesh Fusion achieves such results.

Just mentioning the whole thing so that maybe you get an idea, Ilya, and you can implement such a thing in ‘Bevel after Boolean’ too. If we can produce clearly intersecting strips then we can make -manually- extrusions from them and produce very complex hull forms on the objects (as it happens in the video below):


(AFWS) #752

I will play around with this. I have been testing multiple boolean/bevel objects and I think I’m getting close to getting something working. Of course, I’ve started from scratch and don’t understand the code of this addon much. @Rodinkov_Ilya would have to somehow “merge” my code into this addon, if we wanted to be able to do multiple objects.


(Fatesailor) #753

AFWS you mean that you are testing objects in relation to the strip making I mentioned? You have any idea for a code producing such strips? If it is so it will be great indeed! In Mesh Fusion they do incredible things with the strip making feature. You have to put forth your idea to Ilya.


(lacilaci86) #754

I wonder if something like variable radius fillet/bevel could be doable…? Selecting a path of edges and defining beginning and end radius.


(Rodinkov Ilya) #755

I will see why this can happen.

I have ideas on how to do this.
@AFWS
What do you mean ?


(Fatesailor) #756

This is great news! :smiley:


(Rodinkov Ilya) #757

@Fatesailor
There is a chance that I misunderstood you.
If you meant this:


Strip can be made in version 0.2.3.
In Edit mode, use intersect.

And press the bevel button.


(Fatesailor) #758

I do know that there is such an ability in 0.2.3 Ilya. And it is very useful! The thing that I did mean, however, is not this. I did mean being able to produce strips which intersect with each other in such a way that someone can extrude them together (without having anomalies in the intersecting points).

Please watch the video about Mesh Fusion which I did post previously (it is only a 2 minutes video) and you will understand. It is very easy to understand: the needed thing is to have many intersecting each other strips that they can be extruded together. In such a way someone can produce whole extruded cages (or hull panels, by extruding inwardly) around an object. Having such a thing in ‘Bevel after Boolean’ will endow it with a whole new set of modeling means!


(Rodinkov Ilya) #759

At the moment. I do not know how to do that.


(AFWS) #760

Can you delete all the code that’s not related to this and post it on here. I will try to help with this.


(Michael Campbell) #761

Hi, thanks for the add on. I’ve just installed it and am getting this error in 2.79b:

bpy.context.space_data.system_folders_active = 1
Modules Installed (boolean_bevel_v_0_1_2) from ‘E:\3d assets\plugins\blender\boolean_bevel_v_0_1_2.py.zip’ into ‘C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons’
bpy.ops.mesh.primitive_uv_sphere_add(size=1, view_align=False, enter_editmode=False, location=(-0.0507621, 0.0399496, 0.999998), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.transform.translate(value=(0, 0, 0.458106), constraint_axis=(False, False, True), constraint_orientation=‘GLOBAL’, mirror=False, proportional=‘DISABLED’, proportional_edit_falloff=‘SPHERE’, proportional_size=0.13513)
bpy.ops.object.make_single_user(object=True, obdata=True)
bpy.ops.object.convert(target=‘MESH’)
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘DESELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘SELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.modifier_apply(modifier=“Auto Boolean”)
bpy.ops.btool.auto_difference(solver=‘BMESH’)
bpy.context.space_data.context = ‘MODIFIER’
bpy.context.object.modifiers[“BTool_Sphere”].operation = ‘INTERSECT’
bpy.context.object.modifiers[“BTool_Sphere”].operation = ‘UNION’
bpy.ops.object.modifier_apply(modifier=“BTool_Sphere”)
bpy.ops.object.select_all(action=‘DESELECT’)
bpy.ops.object.delete()
bpy.ops.object.modifier_apply(apply_as=‘DATA’, modifier=“BTool_Sphere”)
bpy.ops.object.select_all(action=‘DESELECT’)
Traceback (most recent call last):
File “C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\boolean_bevel_v_0_1_2.py”, line 384, in execute
boolean_solver = src_obj.modifiers[len(src_obj.modifiers) - 1].solver
IndexError: bpy_prop_collection[-1]: out of range.

location: :-1

bpy.ops.object.boolean_bevel_remove_modifiers()
bpy.ops.object.select_all(action=‘DESELECT’)
bpy.ops.object.boolean_bevel_remove_pipes()
bpy.ops.object.select_all(action=‘DESELECT’)
bpy.ops.object.select_all(action=‘DESELECT’)
bpy.ops.object.boolean_bevel_remove_objects()
bpy.ops.object.select_all(action=‘DESELECT’)
bpy.ops.object.boolean_bevel_remove_pipes()
bpy.ops.object.select_all(action=‘DESELECT’)
Traceback (most recent call last):
File “C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\boolean_bevel_v_0_1_2.py”, line 384, in execute
boolean_solver = src_obj.modifiers[len(src_obj.modifiers) - 1].solver
IndexError: bpy_prop_collection[-1]: out of range.

location: :-1

bpy.ops.transform.translate(value=(-3.21451e-009, 0.0945211, -7.45058e-009), constraint_axis=(False, True, False), constraint_orientation=‘VIEW’, mirror=False, proportional=‘DISABLED’, proportional_edit_falloff=‘SPHERE’, proportional_size=0.13513, release_confirm=True, use_accurate=False)
bpy.ops.object.make_single_user(object=True, obdata=True)
bpy.ops.object.convert(target=‘MESH’)
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘DESELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘SELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.modifier_apply(modifier=“Auto Boolean”)
bpy.ops.btool.auto_union(solver=‘BMESH’)
bpy.ops.object.select_all(action=‘DESELECT’)
Traceback (most recent call last):
File “C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\boolean_bevel_v_0_1_2.py”, line 384, in execute
boolean_solver = src_obj.modifiers[len(src_obj.modifiers) - 1].solver
IndexError: bpy_prop_collection[-1]: out of range.

location: :-1

bpy.ops.object.modifier_add(type=‘SUBSURF’)
bpy.context.object.modifiers[“Subsurf”].levels = 2
bpy.context.object.modifiers[“Subsurf”].levels = 3
bpy.ops.object.modifier_add(type=‘CAST’)
bpy.context.object.modifiers[“Cast”].cast_type = ‘CUBOID’
bpy.context.object.modifiers[“Cast”].factor = 1.1
bpy.context.object.modifiers[“Cast”].factor = 1
bpy.context.space_data.viewport_shade = ‘WIREFRAME’
bpy.ops.object.modifier_apply(apply_as=‘DATA’, modifier=“Subsurf”)
bpy.context.object.modifiers[“Cast”].radius = 0
bpy.context.object.modifiers[“Cast”].size = 4.7
bpy.context.object.modifiers[“Cast”].radius = 0
bpy.context.object.modifiers[“Cast”].radius = 0
bpy.ops.object.modifier_apply(apply_as=‘DATA’, modifier=“Cast”)
bpy.context.space_data.viewport_shade = ‘SOLID’
bpy.ops.mesh.primitive_uv_sphere_add(view_align=False, enter_editmode=False, location=(-0.0507621, 0.0399496, 0.999998), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.transform.resize(value=(0.696316, 0.696316, 0.696316), constraint_axis=(False, False, False), constraint_orientation=‘VIEW’, mirror=False, proportional=‘DISABLED’, proportional_edit_falloff=‘SPHERE’, proportional_size=0.13513)
bpy.ops.transform.translate(value=(-0.0572548, -0.0249525, 0.116672), constraint_axis=(False, False, False), constraint_orientation=‘VIEW’, mirror=False, proportional=‘DISABLED’, proportional_edit_falloff=‘SPHERE’, proportional_size=0.13513)
bpy.ops.object.modifier_add(type=‘BOOLEAN’)
bpy.context.object.modifiers[“Boolean”].operation = ‘DIFFERENCE’
bpy.ops.object.modifier_remove(modifier=“Boolean”)
bpy.ops.object.make_single_user(object=True, obdata=True)
bpy.ops.object.convert(target=‘MESH’)
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘DESELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action=‘SELECT’)
bpy.ops.object.editmode_toggle()
bpy.ops.object.modifier_apply(modifier=“Auto Boolean”)
bpy.ops.btool.auto_difference(solver=‘BMESH’)
bpy.ops.object.select_all(action=‘DESELECT’)
Traceback (most recent call last):
File “C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\boolean_bevel_v_0_1_2.py”, line 384, in execute
boolean_solver = src_obj.modifiers[len(src_obj.modifiers) - 1].solver
IndexError: bpy_prop_collection[-1]: out of range.

location: :-1

bpy.ops.object.boolean_bevel_apply_modifiers()
bpy.ops.object.modifier_add(type=‘BOOLEAN’)
bpy.context.object.modifiers[“Boolean”].operation = ‘UNION’
bpy.ops.object.modifier_apply(apply_as=‘DATA’, modifier=“Boolean”)
bpy.ops.object.select_all(action=‘DESELECT’)
Traceback (most recent call last):
File “C:\Users\3diWorkstation\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\boolean_bevel_v_0_1_2.py”, line 384, in execute
boolean_solver = src_obj.modifiers[len(src_obj.modifiers) - 1].solver
IndexError: bpy_prop_collection[-1]: out of range.

location: :-1

Anyone come across/solved this?