keKit for Blender (2.8+)

Hi,

Is it possible to snap origin to object bouding box center in your script? if not, could you add such an option?

hello. I have a suggestion. It would be great to have Show/Hide Object properties like Name, Axis, display as(wire/textures / InFront etc) in KeOverlays Pie. What do you think ?, also the Object Axis is not really functional. Its better to have colored axis(rendered as front gizmo type), though I dont know if thast possible !

Already exists?
image

ed: There is also the Object mode function in my “Align Origin to Selected” - align to cursor etc. check the Select & Align Menu.

hey,
maybe as a sub-pie. hmm. That pie menu is a bit crowded as it is, might have to rethink the layout. TBD.

2 Likes

Yeah. A sub pie menu or a pop up cud reduce clutter. Also the commonly used ones like showing Extras, object wire frames, etc most used items can be there & less used like showing normals or object outlines etc can be moved to sub pie or pop-up.

Disclaimer - Sorry for the long post :sweat_smile:

Display as bounds/ wires/ solid/ textured toggle would be nice! I’m thinking, which ones need to be toggled?

  1. Bounds/ textured for scattering (lots of assets in the scene)
  2. Wires/ textured for boolean modeling
  3. Current mode > textured (since textured is the default)

———

Got to say, that now I am reconfiguring my entire keymap from scratch, I realised how much I depend on Kekit and it was the addon I missed the most. So I want to thank you again for making it, very, very much appreciated!

Minor reports

HUD scaling

I still find the HUD scaling very small on my 27 inch 4k monitor (UI scaling set to 1,05). The header, "linear array’’ is about 12 pt, the text close to 8 pt

For reference, I can read the text comfortably at a resolution scale of 1,5, when the text is about 12 pt and the header 16pt.

Linear array count

The help menu in linear array does not mention ‘(A) Toggle numerical input mode for array count’. Also, it won’t go higher than 9 (no double digit support). This could possibly be resolved through an undo last.

Quick Scale units

According to the docs, Quick scale is supposed to use scene units, however, in my case, the units are set to millimeters, but quickscale still uses meters as unit for scaling.

If you don’t want to change this behaviour, I think it would be clearer if the ‘size’ would be renamed to ‘size (m)’ or, the value should have an ‘m’ after the value, so ‘0,01m’ in my example.
In case you do want to change this, having the units in the input box wouldn’t hurt either. :wink:

Feature requests

  1. View & cursor bookmarks pop-up
    In addition to the View&CursorBookmarks pie menu and the N-panel, I would like to see this as a pop-up. The reason being, a pie menu can only be clicked on once, while the tool needs to be activated multiple times for 1) Saving the current bookmark 2) Change to a new bookmark.
  2. Remapping of modal hotkeys for array
    Although it is also fairly easy to change them in the script > just search ‘S’, ‘X’ ‘Z’, etc. from the help menu and they’ll pop right up), but you’ll need to keep an eye out when updating the kit.
  3. Can the help menu for arrays remain open, if I opened it the previous time I used it? Also when opened in linear array, I may want it persistently opened/ closed for the circular array.

Hey, wow, thorough ;>

UI scaling : It is as intended though. Its just that you don’t use much UI-scaling, and I like the text smalI ;> (i just use smaller fonts, not scaling, @ 1440p) But, I could maybe add an additional scaling float in the add-on prefs.

Linear Array: Ah, I will add it to the help text. It does have multi-digit input - its just a bit fast, and a little finicky. Not sure a redo-panel will work on that one. Maybe at some point, but probably not.

Quick Scale: Yes, I should apply full unit conversion. Adding to the list.

Bookmarks pie popup: TBD

Mapping modal hotkey: Not sure I want to do it for every modal script, and I dont want to do it for just one. Not at the moment.

Help menu status: Yes, can probably be done pretty easily, adding to list.

2 Likes

Hi!
Here is error if in Edit mode and nothing is selected and click on BBox.

see comment below by Kiellog

BBox script: Can confirm, will fix :slight_smile:

1 Like

look at this script, to switch visibility for entire collection objects.
It useful if you need, for example, to switch your Boolean Collection to Bounds or Wires.

1 Like

Speaking of ideas for the script collection, the things I do mostly with Modo imports:

  1. Run a vertex mesh by distance on all selected mesh to avoid polygon drawing issues (easy in Modo, but in Blender you need a script for that).
  2. Run geometry clean up and selection of objects. (easy in edit mode or in Modo, but in object mode I use a different script).
  3. Reset scale (apply scale) with instances. Thats easy but a bit complicate to use, wonder why there is no script that does these steps automatically. (relation ship local, then apple scale, then again link data).
  4. Apply modifier to instances. Also just a few clicks, but would be easier with single button.
  5. Now the tricky work around that I do in order to get true instances (Blenders data link is more or less a reference mesh, that breaks when a modifier is being added). I make a linked copy of the source object I want. Then I add a geometry node modifier to it, unlink the source and instead link the original copy as instance, then copy that modifier to all instances) Now all instances will get every modifier added, like UV unwrap, Array, Subdivision and it will always be instances that perform fast. Someone should do this as a script, so its added fast. I indeed do that on ever object using subdivision… huge performance gain.

cheers!

  1. I don’t understand - do what by distance? (missing a verb?)
  2. There are clean up tools in keKit
    3-5. Yes, a complete system/workflow for instance handling is a bit lacking in Blender. I think there are some add-ons that address this already though, in various ways. (i dont remember which atm, and you can do your own googling ;>)
  1. Merge vertex by distance. Thats because some CAD meshes produce vertex on the same position. I normally use the vertex distance 0.0 here in Modo. However this only works on objects, if you do that on merged mesh it may lead to unwanted connections. Hence I do an object selection (note thats because they where solids before getting meshed)

  2. I know most other tools, just thought it belongs to the Modo to Blender workflow. And yes some use simple scripts, but 5. is my own idea and its the reason I use Blender.

Ah i see,
but I am still confused about nr1. What is wrong with the vanilla (blender) merge by distance?
EDIT: ah ok now i get it. you want it in object mode? Not sure I understand what the issue is still.
note: In keKit mesh clean you can run Remove Doubles (‘Double Geo’) option, in object mode. It should do the same as merge 0.0.

‘Double Geo’ does not take into account mesh islands, and two vertices with the same coordinates but from separate mesh islands in one object will be connected after this.
Thats why I recently asked about the same operation but if vertex share the same edges:

I think this is what @RobertLe wanted to say?

Yeah thats the reason:

  1. Modo select all objects, hit 1 for vertex mode, run merge vertex at 0.0. Wait till done.
  2. Blender select all objects, shift click to edit all objects in vertex mode, then run the command… chaos happen!
    Not sure if you can run mesh cleanup on a selection of objects… could be a solution.

I personally use this method now (separate script).

2 Likes

Ah, ok, now I understand :slight_smile:

i use this macro (if anyone interested in…) without separating - selection to border then merge

bpy.ops.object.join(); bpy.ops.object.mode_set(‘EXEC_DEFAULT’, True, mode=‘EDIT’); bpy.ops.mesh.select_all(action=‘SELECT’); bpy.ops.mesh.region_to_loop(); bpy.ops.mesh.remove_doubles(); bpy.ops.object.editmode_toggle()

2 Likes

I like this solution from zebus 3d on blender.stackexchange
selects each mesh island of the object and remove doubles for them

Summary
import bpy, bmesh

raw = []
island = []

bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_mode(type="VERT")

obj = bpy.context.object
me = obj.data
bm = bmesh.from_edit_mesh(me)

for f in bm.faces:
    for v in f.verts:
        if v.index not in raw:
            v.select = True
            bpy.ops.mesh.select_linked()
            for vs in bm.verts:
                if vs.select:
                    island.append(vs.index)
                    raw.append(vs.index)

            bpy.ops.mesh.remove_doubles(threshold=0.0001) # here we remove doubles for each mesh island         
            bpy.ops.mesh.select_all(action='DESELECT')
1 Like