- DesignConnected changed review status to Awaiting Review
- 1 mo
Connecter is a standalone digital asset management software that’s designed for creatives and works with all kinds of assets. It works with various software solutions thanks to deep integrations that allow fast and powerful interactions.
The Connecter add-on for Blender facilitates a streamlined workflow for appending and linking objects, materials, and collections. With an array of convenient options, this add-on enables users to save assets from Blender to Connecter while generating custom previews using Cycles and EEVEE renderers. When the add-on is activated, dragging a .blend asset into Blender’s viewport from Connecter provides additional "Link & Place" and "Append & Place" options, enhancing efficiency. These features offer various functionalities: users can add objects along with their materials, choose and apply material from the asset to an object in the scene, or select and place collections. Currently, these customized append and linking options are exclusive to .blend assets and do not support other formats like .FBX or .OBJ.
Users can save collections from the Outliner as .blend files, preserving all assets within the collection, and specify names and filter object types. The "Add Current File" option saves all assets in the current project, akin to an advanced "Save as" feature with custom preview capabilities. Additionally, selected objects can be saved as individual or grouped .blend files, and materials from selected assets can be saved with their own previews, creating a gallery in Connecter. Preview generation is customizable via Cycles.blend and Eevee.blend files in the integration's "Thumbnails" folder.
New Features:
Updates:
This extension requests the following permission:
Import/export blend files from/to disk
Checked over the code, while no strong concerns, some of the script generation has bugs:
file.write("with bpy.data.libraries.load(r'" + path_to_get_asset_from + "', link=False) as (data_from, data_to):\n")
should be replaced with file.write("with bpy.data.libraries.load(" + repr(path_to_get_asset_from) + ", link=False) as (data_from, data_to):\n")
Same for other places strings are quoted, use repr() so characters are properly escaped.
Thank a lot! The changes have been reflected in the code in version 0.6.12
Uploading new version 0.6.12 with the requested changes.
Looks ok on the code-side, I haven't tested functionality:
Suggest using a linter such as ruff or pylint:
> find "." -name "*.py" | xargs ruff check | grep "\.py:"
__init__.py:13:1: E402 Module level import not at top of file
__init__.py:13:8: F401 `bpy` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
__init__.py:14:1: E402 Module level import not at top of file
__init__.py:15:1: E402 Module level import not at top of file
__init__.py:16:1: E402 Module level import not at top of file
__init__.py:17:1: E402 Module level import not at top of file
__init__.py:18:1: E402 Module level import not at top of file
__init__.py:18:15: F401 `.dc_utils` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
dc_ops.py:2:8: F401 [*] `os` imported but unused
dc_ops.py:3:8: F401 [*] `json` imported but unused
dc_ops.py:4:8: F401 [*] `subprocess` imported but unused
dc_ops.py:5:8: F401 [*] `codecs` imported but unused
dc_ops.py:6:8: F401 [*] `uuid` imported but unused
dc_ops.py:7:8: F401 [*] `math` imported but unused
dc_props.py:8:9: F401 [*] `bpy.props.FloatProperty` imported but unused
dc_save_ops.py:4:8: F401 [*] `uuid` imported but unused
dc_save_ops.py:5:8: F401 [*] `json` imported but unused
dc_save_ops.py:199:5: F841 Local variable `tn_save_path` is assigned to but never used
dc_save_ops.py:858:9: F841 Local variable `asset_save_path` is assigned to but never used
dc_save_ops.py:859:9: F841 Local variable `asset_file_name` is assigned to but never used
dc_save_ops.py:1162:9: F841 Local variable `asset_save_path` is assigned to but never used
dc_save_ops.py:1163:9: F841 Local variable `asset_file_name` is assigned to but never used
dc_ui.py:5:9: F401 [*] `bpy.types.Operator` imported but unused
dc_ui.py:7:9: F401 [*] `bpy.types.PropertyGroup` imported but unused
dc_ui.py:11:9: F401 [*] `bpy.props.BoolProperty` imported but unused
dc_ui.py:12:9: F401 [*] `bpy.props.FloatProperty` imported but unused
dc_ui.py:13:9: F401 [*] `bpy.props.IntProperty` imported but unused
dc_ui.py:14:9: F401 [*] `bpy.props.PointerProperty` imported but unused
dc_ui.py:15:9: F401 [*] `bpy.props.StringProperty` imported but unused
dc_ui.py:16:9: F401 [*] `bpy.props.CollectionProperty` imported but unused
dc_utils.py:4:8: F401 [*] `bmesh` imported but unused
dc_utils.py:5:8: F401 [*] `tempfile` imported but unused
dc_utils.py:7:8: F401 [*] `random` imported but unused
dc_utils.py:14:21: F401 [*] `pathlib.Path` imported but unused
dc_utils.py:105:28: E711 Comparison to `None` should be `cond is not None`
dc_utils.py:121:5: F841 Local variable `scene` is assigned to but never used
dc_utils.py:141:47: E712 Avoid equality comparisons to `False`; use `if not obj.hide_select:` for false checks
dc_utils.py:160:9: E722 Do not use bare `except`
dc_utils.py:185:5: F841 Local variable `dc_props` is assigned to but never used
Thank a lot! The changes have been reflected in the code in version 0.6.13.
output\Connecter\source\dc_utils.py:238:98:
return os.path.join(os.path.dirname(integration_buffer[0]), "components_data\\Integration")
Avoid using slashes in here, it might return errors on some os. Use os
module again to join those two together.
Python: Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\blender-4.3.0-alpha+main.8f996f178604-windows.amd64-release\portable\extensions\user_default\Connecter\dc_utils.py", line 234, in get_integration_directory_from_registry
with winreg.OpenKey(software_key, 'Design Connected') as dc_key:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
Without having the software installed and using operators I get this error. I assume this is the reason, right? If so, please account for that and write a custom error message, so that users know what is the problem and how to fix it. Also, abort the operation if software can't be found so that it doesn't make changes in that case to blend file.
Thank a lot! The changes have been reflected in the code in version 0.6.14. Before we published the Add-On here it was distributed with Connecter only, so we missed this issue before. The Add-On can also be used without Connecter, so we just handled the reading of the registry and the export that generated errors without showing any messages.
Hey everyone,
Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.
Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.
Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.
Thanks for understanding, and feel free to reach out if you have any questions.
From automatic code review:
Use of error prone quoting.
A common mistake is to assume a name can be quoted in a string, for example:
data_path = 'objects["{:s}"]'.format(object.name)
Is incorrect because object.name
may contain a "
character.
To resolve:
repr(..)
bpy.utils.escape_identifier(..)
.output\Connecter\source\dc_save_ops.py:336:43:
file.write(" data_to.collections = [" + repr(collection_name) + "]\n")
Also, do not use Blender logo in the thumbnail, its against branding guidelines. After those two this can be accepted
Thank a lot! The changes have been reflected in the code in version 0.6.15.
Approved
uploaded new version: Add-on "Connecter" v0.6.20
Sign in to comment.
Ready for review