jayanam / jmesh-tools Goto Github PK
View Code? Open in Web Editor NEWBlender 2.8/2.9 mesh and hard surface utilities addon
License: GNU General Public License v3.0
Blender 2.8/2.9 mesh and hard surface utilities addon
License: GNU General Public License v3.0
Hi Jayanam,
I am working on a Macbook Pro (2017) and tried to install the JMESH addon but that fails:
When I try to activate the addon I get an error message:
Traceback (most recent call last):
File "/Applications/Blender.app/Contents/Resources/2.83/scripts/modules/addon_utils.py", line 351, in enable
mod = import(module_name)
File "/Users/wgeithner/Library/Application Support/Blender/2.83/scripts/addons/jmesh-tools-master/init.py", line 37, in
from . fc_apply_bool_op import FC_ApplyBoolOperator, FC_ApplyAllBoolOperator
ImportError: cannot import name 'FC_ApplyAllBoolOperator' from 'jmesh-tools-master.fc_apply_bool_op' (/Users/wgeithner/Library/Application Support/Blender/2.83/scripts/addons/jmesh-tools-master/fc_apply_bool_op.py)
Best regards
Wolfgang
v1.2.8.3
Hi,
I will try to update this issue with additional errors if I find it.
I can reproduce this quite reliably but sometimes it works no problem. I have a feeling that this has something to do with ctrl+z when you undo things because of mistakes. But I had moments where this came up right from the start. I tried to look if it comes up when you use the same circle(blue outline) for all bools compared to you cancel(esc) after every bool and form a new one every time but cant seems to pin it down.
Another thing I noticed is when you undo, your primitive overlay rewinds too as it seems. That could be imagination tho edit: I pressed "snap to grid as it snapped back to polyline. Not quite reproducible.
This was a fresh start of blender
bpy.context.scene.apply_bool = False
bpy.ops.machin3.view_axis(axis='FRONT')
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, location=(0, 0, 0))
bpy.ops.object.fc_primitve_mode_op()
bpy.context.space_data.context = 'MODIFIER'
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.modifier_apply(modifier="FC_BOOL")
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.apply_all_bool()
Traceback (most recent call last):
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py", line 75, in execute
modifier.object.hide_set(False)
AttributeError: 'NoneType' object has no attribute 'hide_set'location: :-1
Traceback (most recent call last):
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py", line 82, in execute
obj.select_set(True)
RuntimeError: Error: Object 'Rect_Object' can't be selected because it is not in View Layer 'View Layer'!
This is prob a blender problem or user handling error
v1.2.8.1
Hi,
when you enable primitive mode and than switch to lets say animation etc. and back to another tab it will crash the tool
Restart or new file required to reset it.
bpy.ops.machin3.new()
bpy.ops.object.fc_primitve_mode_op()
Traceback (most recent call last):
File "C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_primitive_mode_op.py", line 190, in modal
mouse_pos_2d, mouse_pos_3d = self.get_snapped_mouse_pos(mouse_pos_2d_r, context)
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_primitive_mode_op.py", line 103, in get_snapped_mouse_pos
mouse_pos_3d = self.get_3d_for_mouse(mouse_pos_2d, context)
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_primitive_mode_op.py", line 115, in get_3d_for_mouse
mouse_pos_3d = self.shape.get_3d_for_2d(mouse_pos_2d, context)
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\types\shape.py", line 137, in get_3d_for_2d
origin, direction = get_origin_and_direction(pos_2d, context)
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\utils\fc_view_3d_utils.py", line 60, in get_origin_and_direction
region_3d = context.space_data.region_3d
AttributeError: 'NoneType' object has no attribute 'region_3d'location: :-1
I have more errors for apply all/selected booleans but I need to find methods first the reproduce them on a reliable basis.
Inner Miter should either default to Arc or have an option to use Arc in the panel. It seems to always provide cleaner geometry and shading for corners due to spreading out the edges of the corner bevel rather than collecting them all into one vertex. Seems it only needs the line bevel.miter_outer = 'MITER_ARC'
added to the fc_bevel_util.py code with the other bevel modifier info.
Also, boosting the segment count to 6 and setting the bevel profile to 0.5 seems to be the final segment count that noticeably makes beveled edges smoother before it hardly looks different at all, at least with the weighted normals modifier.
It would be nice if there were a release in the release tab along with instructions on how to install the plugin.
When I use the Primitive Mode and need to undo any action the Blender closes suddenly.
It happens in Blender 2.83.7 LTS and Blender 2.90.1
Hi.
Same request for this addon than : jayanam/shortcut_VUr#20
It would be convenient to have an option in the preferences of your add-on to give the user the choice of the tab to display your add-on (in order to move the add-on from its own tab to a custom one).
Thank you in advance.
Just an idea if it's not too much:
While maintaining the current option to type in the 'distance box', perhaps there can be a mouse scroll adjustment in increments of something like 10 cm, holding shift to adjust in 1cm and holding ctrl adjusts in 50 cm.. something like that.
Or maybe a toggle that switches between meters/cm/mm - whichever you think works nicer.
Thank you.
Allow user to create a simple array in x,y,z axis + a primitive count to avoid user having to apply, move, apply, move etc.
Thanks for the great add-on!
I've set symmetrize direction to opposite but still symmetrizing in the selected side. Hope gets fixed :)
Anyway Great tool!
The OSD for primitives does not have consistent behavior:
There is no indication which is which.
P, O, M and C change what is listed on the left.
But CTRL+Click and ESC execute the command listed on the left.
Then it is best to present the first four options as drop-down menu, and the last two as tooltip.
Just like the window that pops up in the left bottom corner when a circle is added in Blender:
The Weighted Normal modifier is basically made for this, non-subdivided geometry with ngons and bevels. Needs the line bpy.ops.object.modifier_add(type='WEIGHTED_NORMAL')
added after the code for adding the bevel modifier in fc_bevel_util.py and nothing else; the default values seem to be just fine.
Feature request
Click button in jmesh panel to create a architectural window ie house window at the
3d cursor position in either X,Y or viewport direction
Here are some videos I made while practicing the technique.
[method 1 video]https://drive.google.com/file/d/12903pTxLv6pksa6DITWQfBdX78PZNaen/view?usp=sharing)
[method 2]https://drive.google.com/file/d/1QHkHq7w-4FZUH4rs4jPBua_zWxQYIVuW/view?usp=sharing
[method 3]https://drive.google.com/file/d/1NFM4MKLxnhwi5YHKDLMmMDvvQY4bCwIB/view?usp=sharing
jmesh version 1.2.6.0
Blender 2.83 and recent 2.90
Procedure step by step....
-Start with default scene
-move default cube along x axis
-open jmesh and click on circular array icon
-press Ctrl-Z to undo
-blender app crashes
Add a switch to array 'from' or 'around' the original object. The average of all origins is used as center.
Move object's duplicate to the end of proposed array and "fill in" space between the original and the duplicate with however many copies, evenly spaced.
JMesh 1.8.1.8 in Blender 2.92
Primitive shape is applied as a Slice operation, then arrayed by use of the JMesh side panel, the original slice object disappears. This leaves a hole where the slice object was. Other arrayed sliced objects appear correctly.
However, using JMesh side panel Array command is the only way to array the primitive when using the mirror modifier.
It'd be nice to watch "releases only", then I can use the github emails as an update notification.
Hello and thank you again for what you have created shared with us. very useful tool sets.
I was reading the description of this project, and the way it was worded caused me to think that this was the older project
"Blender 2.8 / 2.9 mesh and hard surface utilities addon (before it was Fast Carve)"
If this was changed to 'Blender 2.8 / 2.9 mesh and hard surface utilities addon (previously known as Fast Carve)'
or 'Blender 2.8 / 2.9 mesh and hard surface utilities addon (formerly Fast Carve)'
Certainly not a terribly important issue, but i actually went and checked the dates on the Fast Carve project thinking that this was the project before Fast Carve, and that Fast Carve was the update. :)
Thanks again, and be well
jmesh 1.5.4.1 and blender 2.92 experimental
video file download
-open new document in blender 2.92 --> 'Shading' workspace
-the default cube is seen in viewport
-press the 'primitive' button
-press 'P' key to select circle
-ctrl click on cube
-do not hold ctrl key down
-move mouse in outward direction to make a circle !!!! very important to move outward !!!!
-left click to create the circle
In the 'Layout' workspace I couldn't duplicate this outcome.
Also holding the CTRL key down while making the circle seemed to change the normal direction to be correct.
If I follow the procedure above I can reproduce the error every time.
Since you introduced a symmetrize gizmo would it be possible to symmetrize also only selected geo in edit mode like for example you want an antenna on the other side but dont want the surrounding geo. The hp config symmetrize pie does that while holding ctrl for example.
Would be nice to be able to clone from center position to two axis (eg. left + right).
Best via modifier to keep none destructive workflow.
Currently only possible via geometry nodes which is very cumbersome.
When a curve is added, JMeshTools adds two handles for each point on the curve. But as the following screenshot shows, both handles always remain diagonally opposite (also known as "smooth transition").
Desired:
Let the user toggle the type of the handles between Corner, Smooth transition and symmetric transition, as shown below.
blender-2.93.0-450ea1b755cb-linux64 and newest jmesh 1.8.4.6
video download
Size 422 KB -short video showing the freeze occurring
https://drive.google.com/file/d/1m7geitxAmkA-FbeKo2pxMzXsoMqwTxdP/view?usp=sharing
I was testing the creation of a circle primitive
when I came upon an odd bug.
Method to cause freeze:
error message:
center = bm.faces[face_index}.calc_center_median()
IndexError:BMElemSeq[index]:index 220 out of range
Additional information....
I tried the mirror modifier on a default cube and there was no problem
with centering the circle but when I tried both the subdivision modifier
and the mirror modifier --> jmesh freezes
The order of the modifiers doesn't matter.
Hi,
like the topic says. Adjustable color and size of the OSD would be appreciated :)
There are three tiny problems in the OSD (on-screen display) for the Circle primitive:
In the first OSD, there is one issue: Instead of "Start", it should be "Click at center", because the user must start at the desired center of the circle by clicking there.
The OSD changes at this point to-
This display has two tiny issues:
If the user creates the circle, he cannot set segments. Therefore, the Set segments command should be listed BEFORE the Create command.
The creation of circle involves three steps, but the ESC key aborts the whole sequence, instead of undoing the sequence step-by-step. Therefore ESC can be best described as "Abort" (not "undo").
Currently, I can only move the individual points of a primitive. This is not accurate to give me a uniform offset from the original shape. (IINW the "move points" feature is not meant to scale the primitive in the first place.)
If I can use Scale or Offset operation on the primitive, I get the chance to slice and step-change in the extrusion, etc.
For example, I draw a primitive circle of 1 cm dia, and extrude it through the target shape. Then I use Difference. Then I scale/offset the circle to 2 cm, and extrude it to 1 cm and again use Difference.
The current workaround is to create these shapes outside the Addon, and then duplicate them, scale the duplicate, and then use both objects one by one on the target object.
Issue with jmesh-tools version 1.0.4.0 and earlier:
I can make mirror modifier go nuts by the following....
start with cube
create a cylinder nearby
select the cube and make a mirror modifier using the cylinder in middle
i.e. the cylinder is ticked as the mirror object (see image for result of the mirroring)
The image shows mirroring about y axis but I could have chosen x-axis as well.
select the cylinder and click on 'Bevel' button that jmesh supplies.
the second cube disappears
Crashes after Undo.
apply operation w ctrl left click. press excape (1 time only), then press ctl z. crashes blender.
apply operation w ctrl left click. press excape (2 time only), then press ctl z. does not crash blender.
cheers. thanks.
I have seen this feature in Boxcutter and it will be great if it is added to JMesh Tools.
Basically, you take an object and apply the difference boolean :
And then you apply a solidify modifier to the boolean object :
In Boxcutter you can use the slice operation and then press ' T ' to solidify and get similar results.
@jayanam Thank you for such a great addon - Arib Ansari
Hi,
I thought about some things that could be beneficial for other people and the overall polish.
Some are based on personal pref. ofc :)
Maybe create a field for custom presets inside the addon preferences to set the segments on a circle for example. Or set a preferred way of displaying objects or pending bools (textured, wire etc).
Use the booltool icons for your difference, union etc buttons
A minor thing and since they are already named properly maybe unnecessary.
This one would be very cool ;)
For non destructive work it would be awesome if the pending bools would be disabled inside the render by default as soon as they are created. Since you mostly never apply your modifiers on a project and you def dont want them to appear there. This would be only one click away but would also save one click :)
Auto smooth & shade smooth difference bool objects(maybe only needed for circles?) before/after they cut into the mesh. Eliminates the need for doing that manually.
Left one is a 32 segment cut compared to the right which was a created circle + shade smooth and auto smooth normals. Non sure if this could be handy on "apply immediately" activated since you can smooth the object directly after applying but sometimes you dont want that. Make it a checkbox maybe ?!
I saw those little info msg and thought maybe you could implement this for communicating things back to the user like errors without displaying this intimidating python terminal popup. Or other things...
thx
Enter how how much you want to extrude the primitive. And also show the extrusion length when doing it freehand. Like it shows when "drawing" new primitives.
Boolean operation doesn't work correctly with an object with a mirror modifier:
Blender 2.92 final and 2.93 experimental -->
doesn't work as it should. However it does appear to try to do the operation.
The built-in addon 'Boolean Tools' does work correctly however the mirror modifier is applied
first then the boolean operation is done. There is no warning message that the modifier is being applied.
v1.2.8.3
Blender 2.82.7
Hi,
When this comes up it also seems to randomly applies the bools but doesnt delete the objects afterwards
bpy.context.scene.use_snapping = False
bpy.context.scene.apply_bool = False
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, location=(0, 0, 0))
bpy.ops.machin3.view_axis(axis='FRONT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.hide_view_clear()
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.delete()
bpy.ops.object.apply_bool()
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.apply_bool()
Traceback (most recent call last):
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py", line 42, in execute
obj.select_set(True)
AttributeError: 'ID' object has no attribute 'select_set'location: :-1
2nd one with different primitives
bpy.ops.mesh.primitive_cube_add(enter_editmode=False, location=(0, 0, 0))
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.hide_view_clear()
bpy.ops.object.modifier_apply(modifier="FC_BOOL")
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.delete()
bpy.ops.object.delete()
bpy.ops.object.apply_bool()
bpy.ops.object.modifier_apply(modifier="FC_BOOL")
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.delete()
bpy.ops.object.delete()
bpy.ops.object.apply_bool()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles()
bpy.ops.object.editmode_toggle()
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.hide_view_clear()
bpy.ops.object.modifier_apply(modifier="FC_BOOL")
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.delete()
bpy.ops.object.delete()
bpy.ops.object.apply_bool()
bpy.ops.object.modifier_apply(modifier="FC_BOOL")
bpy.ops.object.modifier_apply(modifier="FC_BOOL.001")
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.delete()
bpy.ops.object.apply_bool()
Traceback (most recent call last):
File "C:\Users\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py", line 42, in execute
obj.select_set(True)
AttributeError: 'ID' object has no attribute 'select_set'location: :-1
Now we can scale some primitives, and we can move all primitives. But we cannot rotate them in an intuitive way:
Desired:
Let the user rotate the primitive like the rest of the Blender:
Note that the center of rotation does not have to be set: The user can always drag the rotated object to the correct place he wants.
Jayanam
I receive the following error when enabling JMesh Tools, would you know what could be causing the error:
ERROR (rna.define): c:\b\win64_cmake_vs2017\win64_cmake_vs2017\blender.git\source\blender\makesrna\intern\rna_define.c:1840 RNA_def_property_enum_items: "Prefs.center_type", enum identifiers must not contain spaces.
I'am using blender 2.83 the latest experimental build.
Thank you
Mark
Currently boolean modifiers are added after bevel modifiers and it breaks the visual of the mesh being worked on. It should be added before the bevel modifier, and weighted normal should it be added.
V 1.0.2.8
After pressing "Primitve Mode", while editing my curve, there will be a trace back when I :
See Videos here:
https://www.dropbox.com/sh/kppqpe0g0leqtrz/AAATqX1VN4TIOKqdQNM8yaVVa?dl=0
Hi,
when you work non-destructively it would be cool if you could move cutters into a new collection to make it more clear and maybe rename them properly. And hide them by default :)
Just some inspiration I got from seeing boxcutter in action.
Thx
Python: Traceback (most recent call last):
File "C:\Users\Ludovic\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\jsculpt-tools-master\fsc_add_object_op.py", line 88, in modal
self.add_object(context, mouse_pos)
File "C:\Users\Ludovic\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\jsculpt-tools-master\fsc_add_object_op.py", line 115, in add_object
hit, loc_hit, norm, face, *_ = scene.ray_cast(context.view_layer, origin, view_vector)
TypeError: Scene.ray_cast(): error with argument 1, "depsgraph" - Function.depsgraph expected a Depsgraph type, not ViewLayer
location: :-1
Hi,
when I click "apply boolean" without having any bools active, it deletes my current selected object.
Is that a intended feature? The same for when I have bools (non applied) active, when I select my main object all the bools are still there but the selected object get deleted. I think I dont understand what the "apply boolean" button is for lol
Edit: The tooltip says "applies pending bool operators"
From what I can tell it doesnt do that
It seems like to work like a delete selected button
"delete after apply" is active btw
Enter precise numbers for Rectangle primitive. Just like the little red square for Circle.
Ideally, add "live entry" typing numbers after you Ctrl+Left Click. And if possible, enter two sides separated by a comma. That would be great for regular Blender primitives also, as currently there is no Rectangle primitive (both 3d cube and 2d plane have equal sides).
A gizmo should be added to the primitives so that these can be
Hi, can you set up a way to either enter a negative value in the text bar for the 'JMesh array' or be able to scroll on the mouse wheel to select a distance (both positive and negative value)?
Thank you!
Hi,
implement a little UI element that checks once a day if a new version is available.
Thx
The polyline workflow is as follows:
So the on-screen display (OSD) should show only the relevant steps at each step.
But as the following screenshot shows, the OSD shows Boolean operation right from start.
This confuses the user.
Desired:
The "Boolean" control should appear only AFTER the polyline is extruded.
In fact, there is no need for separate controls for the Boolean operations, as the top section of the JMeshTools Addon already has a nice panel for Boolean operations. The Booleans with Polyline can be handled with that section.
Holding Ctrl makes primitive sizes and extrusion depths snap incrementally in 0.1 / 1 / 10 unit steps, increased or decreased with + / - keys.
Hi,
sry for spamming the issues :(
Modules Installed (jmesh-tools-master) from 'E:\Blender_files\Addons\jmesh-tools-master1.2.8.1.zip' into 'C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons'
1 click (activation)
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender 2.82\2.82\scripts\modules\addon_utils.py", line 330, in enable
importlib.reload(mod)
File "C:\Program Files\Blender Foundation\Blender 2.82\2.82\python\lib\importlib_init_.py", line 169, in reload
_bootstrap._exec(spec, module)
File "", line 630, in _exec
File "", line 728, in exec_module
File "", line 219, in call_with_frames_removed
File "C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master_init.py", line 37, in
from . fc_apply_bool_op import FC_ApplyBoolOperator, FC_ApplyAllBoolOperator
ImportError: cannot import name 'FC_ApplyAllBoolOperator' from 'jmesh-tools-master.fc_apply_bool_op' (C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py)
2 click (activation)
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender 2.82\2.82\scripts\modules\addon_utils.py", line 351, in enable
mod = import(module_name)
File "C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master_init_.py", line 37, in
from . fc_apply_bool_op import FC_ApplyBoolOperator, FC_ApplyAllBoolOperator
ImportError: cannot import name 'FC_ApplyAllBoolOperator' from 'jmesh-tools-master.fc_apply_bool_op' (C:\Users\ username \AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\jmesh-tools-master\fc_apply_bool_op.py)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.