Compare commits
5 commits
Author | SHA1 | Date | |
---|---|---|---|
77f30d51d1 | |||
|
c3055ac2c9 | ||
|
5c79392b40 | ||
|
2ba83ea3fe | ||
|
cd6457352b |
5 changed files with 63 additions and 44 deletions
47
CONTRIBUTING.md
Normal file
47
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
```
|
||||||
|
_ ____ ____ _____ ____
|
||||||
|
/ \ | __ ) / ___|___ /| _ \
|
||||||
|
/ _ \ | _ \| | |_ \| | | |
|
||||||
|
/ ___ \| |_) | |___ ___) | |_| |
|
||||||
|
/_/ \_\____/ \____|____/|____/
|
||||||
|
```
|
||||||
|
|
||||||
|
Convenience tool to work with 3D typography in Blender and Cinema4D.
|
||||||
|
|
||||||
|
# get bpy python working by:
|
||||||
|
```bash
|
||||||
|
$HOME/git/tools/blender_git/build_linux_v4.1/bin/4.1/python/bin/python3.11 -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install bpy
|
||||||
|
```
|
||||||
|
|
||||||
|
to install mathutils, this was necessary for me:
|
||||||
|
```
|
||||||
|
sudo xbps-install -Sy python3.11-devel
|
||||||
|
CFLAGS=$(python3.11-config --cflags) LDFLAGS=$(python3.11-config --ldflags) pip install mathutils
|
||||||
|
```
|
||||||
|
|
||||||
|
# install addon:
|
||||||
|
```bash
|
||||||
|
cd <root directory>
|
||||||
|
ln -s $(pwd) $HOME/git/tools/blender_git/build_linux_v4.1/bin/4.1/scripts/addons/abc3d
|
||||||
|
```
|
||||||
|
|
||||||
|
# get blender addon path:
|
||||||
|
```python
|
||||||
|
bpy.utils.script_paths()
|
||||||
|
```
|
||||||
|
then check it for the `addons` directory
|
||||||
|
|
||||||
|
# addons dir:
|
||||||
|
```
|
||||||
|
~/git/tools/blender_git/build_linux_v4.1/bin/4.1/scripts/addons/
|
||||||
|
```
|
||||||
|
|
||||||
|
# addon data:
|
||||||
|
```
|
||||||
|
~/.config/blender/4.1/datafiles
|
||||||
|
```
|
||||||
|
|
||||||
|
# reload addon in blender:
|
||||||
|
F3 -> "reload scripts"
|
40
README.md
40
README.md
|
@ -8,42 +8,6 @@
|
||||||
|
|
||||||
Convenience tool to work with 3D typography in Blender and Cinema4D.
|
Convenience tool to work with 3D typography in Blender and Cinema4D.
|
||||||
|
|
||||||
The readme is at the moment for development only. Install as you would normally install an addon.
|
Install as you would normally install an addon.
|
||||||
|
|
||||||
# get bpy python working by:
|
Instructions for development in [CONTRIBUTING,md](./CONTRIBUTING.md).
|
||||||
```bash
|
|
||||||
$HOME/git/tools/blender_git/build_linux_v4.1/bin/4.1/python/bin/python3.11 -m venv venv
|
|
||||||
source venv/bin/activate
|
|
||||||
pip install bpy
|
|
||||||
```
|
|
||||||
|
|
||||||
to install mathutils, this was necessary for me:
|
|
||||||
```
|
|
||||||
sudo xbps-install -Sy python3.11-devel
|
|
||||||
CFLAGS=$(python3.11-config --cflags) LDFLAGS=$(python3.11-config --ldflags) pip install mathutils
|
|
||||||
```
|
|
||||||
|
|
||||||
# install addon:
|
|
||||||
```bash
|
|
||||||
cd <root directory>
|
|
||||||
ln -s $(pwd) $HOME/git/tools/blender_git/build_linux_v4.1/bin/4.1/scripts/addons/abc3d
|
|
||||||
```
|
|
||||||
|
|
||||||
# get blender addon path:
|
|
||||||
```python
|
|
||||||
bpy.utils.script_paths()
|
|
||||||
```
|
|
||||||
then check it for the `addons` directory
|
|
||||||
|
|
||||||
# addons dir:
|
|
||||||
```
|
|
||||||
~/git/tools/blender_git/build_linux_v4.1/bin/4.1/scripts/addons/
|
|
||||||
```
|
|
||||||
|
|
||||||
# addon data:
|
|
||||||
```
|
|
||||||
~/.config/blender/4.1/datafiles
|
|
||||||
```
|
|
||||||
|
|
||||||
# reload addon in blender:
|
|
||||||
F3 -> "reload scripts"
|
|
||||||
|
|
|
@ -1740,11 +1740,15 @@ class ForgejoEngine:
|
||||||
"""Integration to Forgejo/Gitea API"""
|
"""Integration to Forgejo/Gitea API"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.api_url = 'https://git.pointer.click'
|
# the api_url may be overwritten by form_repo_url
|
||||||
|
# if updater.host is set
|
||||||
|
self.api_url = 'https://codeberg.org'
|
||||||
self.token = None
|
self.token = None
|
||||||
self.name = "forgejo"
|
self.name = "forgejo"
|
||||||
|
|
||||||
def form_repo_url(self, updater):
|
def form_repo_url(self, updater):
|
||||||
|
if updater.host:
|
||||||
|
self.api_url = "https://" + updater.host
|
||||||
return "{}/api/v1/repos/{}/{}".format(self.api_url, updater.user, updater.repo)
|
return "{}/api/v1/repos/{}/{}".format(self.api_url, updater.user, updater.repo)
|
||||||
|
|
||||||
def form_tags_url(self, updater):
|
def form_tags_url(self, updater):
|
||||||
|
@ -1775,7 +1779,7 @@ class ForgejoEngine:
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
"name": tag["name"],
|
"name": tag["name"],
|
||||||
"zipball_url": self.get_zip_url(tag["commit"]["id"], updater)
|
"zipball_url": self.get_zip_url(tag["commit"]["sha"], updater)
|
||||||
} for tag in response]
|
} for tag in response]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ except Exception as e:
|
||||||
# not match and have errors. Must be all lowercase and no spaces! Should also
|
# not match and have errors. Must be all lowercase and no spaces! Should also
|
||||||
# be unique among any other addons that could exist (using this updater code),
|
# be unique among any other addons that could exist (using this updater code),
|
||||||
# to avoid clashes in operator registration.
|
# to avoid clashes in operator registration.
|
||||||
updater.addon = "addon_updater_demo"
|
updater.addon = "abc3d"
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@ -1346,6 +1346,10 @@ def register(bl_info):
|
||||||
# updater.engine = "GitLab"
|
# updater.engine = "GitLab"
|
||||||
# updater.engine = "Bitbucket"
|
# updater.engine = "Bitbucket"
|
||||||
|
|
||||||
|
# set your host.
|
||||||
|
# only Forgejo. (codeberg.org is default if not specified).
|
||||||
|
updater.host = "git.pointer.click"
|
||||||
|
|
||||||
# If using private repository, indicate the token here.
|
# If using private repository, indicate the token here.
|
||||||
# Must be set after assigning the engine.
|
# Must be set after assigning the engine.
|
||||||
# **WARNING** Depending on the engine, this token can act like a password!!
|
# **WARNING** Depending on the engine, this token can act like a password!!
|
||||||
|
@ -1392,7 +1396,7 @@ def register(bl_info):
|
||||||
updater.backup_current = True # True by default
|
updater.backup_current = True # True by default
|
||||||
|
|
||||||
# Sample ignore patterns for when creating backup of current during update.
|
# Sample ignore patterns for when creating backup of current during update.
|
||||||
updater.backup_ignore_patterns = ["__pycache__"]
|
updater.backup_ignore_patterns = [".git", "__pycache__", "*.bat", ".gitignore", "*.exe"]
|
||||||
# Alternate example patterns:
|
# Alternate example patterns:
|
||||||
# updater.backup_ignore_patterns = [".git", "__pycache__", "*.bat", ".gitignore", "*.exe"]
|
# updater.backup_ignore_patterns = [".git", "__pycache__", "*.bat", ".gitignore", "*.exe"]
|
||||||
|
|
||||||
|
@ -1461,7 +1465,7 @@ def register(bl_info):
|
||||||
# Note: updater.include_branch_list defaults to ['master'] branch if set to
|
# Note: updater.include_branch_list defaults to ['master'] branch if set to
|
||||||
# none. Example targeting another multiple branches allowed to pull from:
|
# none. Example targeting another multiple branches allowed to pull from:
|
||||||
# updater.include_branch_list = ['master', 'dev']
|
# updater.include_branch_list = ['master', 'dev']
|
||||||
updater.include_branch_list = ['main'] # None is the equivalent = ['master']
|
updater.include_branch_list = ['main', 'dev'] # None is the equivalent = ['master']
|
||||||
|
|
||||||
# Only allow manual install, thus prompting the user to open
|
# Only allow manual install, thus prompting the user to open
|
||||||
# the addon's web page to download, specifically: updater.website
|
# the addon's web page to download, specifically: updater.website
|
||||||
|
|
|
@ -713,7 +713,7 @@ def set_text_on_curve(text_properties, recursive=True):
|
||||||
text_properties.glyphs.clear()
|
text_properties.glyphs.clear()
|
||||||
|
|
||||||
#TODO: fix selection with context_override
|
#TODO: fix selection with context_override
|
||||||
previous_selection = bpy.context.selected_objects
|
previous_selection = bpy.context.selected_objects if hasattr(bpy.context, "selected_objects") else [ o for o in bpy.context.scene.objects if o.select_get() ]
|
||||||
bpy.ops.object.select_all(action='DESELECT')
|
bpy.ops.object.select_all(action='DESELECT')
|
||||||
selected_objects = []
|
selected_objects = []
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue