WIP: EEVEE-Next: Initial pass blender manual #104615
@ -33,3 +33,12 @@ insert_final_newline = true
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
max_line_length = 120
|
||||
|
||||
# HTML
|
||||
[*.html]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
max_line_length = 99
|
||||
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,6 +1,10 @@
|
||||
# Editors
|
||||
.vscode/*
|
||||
|
||||
# Python virtual environment
|
||||
.venv/
|
||||
.python-version
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
@ -9,6 +13,7 @@ __pycache__/
|
||||
# Varius extensions
|
||||
*.log
|
||||
*.tmp
|
||||
*.DS_Store
|
||||
|
||||
# Sphinx documentation
|
||||
build/
|
||||
|
2
LICENSE
2
LICENSE
@ -410,7 +410,7 @@ Section 8 -- Interpretation.
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
will be considered the "Licensor." The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
|
16
Makefile
16
Makefile
@ -106,29 +106,29 @@ epubpdf: .SPHINXBUILD_EXISTS
|
||||
--pdf-page-margin-bottom 50 \
|
||||
|
||||
check_syntax:
|
||||
@python3 tools_rst/rst_check_syntax.py --long --title --kbd > rst_check_syntax.log
|
||||
@python3 tools/check_source/check_syntax.py --long --title --kbd > rst_check_syntax.log
|
||||
@echo "Lines:" `cat rst_check_syntax.log | wc -l`
|
||||
@python3 tools/open_quickfix_in_editor.py rst_check_syntax.log
|
||||
@python3 tools/utils_ide/open_quickfix_in_editor.py rst_check_syntax.log
|
||||
@rm rst_check_syntax.log
|
||||
|
||||
check_structure:
|
||||
@python3 tools_rst/rst_check_images.py
|
||||
@python3 tools/check_source/check_images.py
|
||||
|
||||
check_spelling:
|
||||
@python3 tools_rst/rst_check_spelling.py
|
||||
@python3 tools/check_source/check_spelling.py
|
||||
|
||||
checkout_locale:
|
||||
@python3 ./tools_make/checkout_locale.py
|
||||
@python3 ./build_files/utils/checkout_locale.py
|
||||
|
||||
update_po:
|
||||
@python3 ./tools_maintenance/update_po.py
|
||||
@python3 ./tools/translations/update_po.py
|
||||
|
||||
report_po_progress:
|
||||
@python3 tools_report/report_translation_progress.py --quiet \
|
||||
@python3 tools/translations/report_translation_progress.py --quiet \
|
||||
`find locale/ -maxdepth 1 -mindepth 1 -type d -not -iwholename '*.git*' -printf 'locale/%f\n' | sort`
|
||||
|
||||
update:
|
||||
@python3 ./tools_make/make_update.py
|
||||
@python3 ./build_files/utils/make_update.py
|
||||
|
||||
format_py:
|
||||
@autopep8 --in-place --recursive .
|
||||
|
@ -38,6 +38,7 @@ or making patches, you may also submit the modified file as an
|
||||
- **Manual Docs**: [Contributing Guide](https://docs.blender.org/manual/en/dev/contribute/index.html) (the process for editing the manual).
|
||||
- **Source Files**: [Manual Repository](https://projects.blender.org/blender/blender-manual) (Git repository).
|
||||
- **[Developer forum](https://devtalk.blender.org/c/documentation/12)**
|
||||
- **Chat**: [#docs on blender.chat](https://blender.chat/channel/docs).
|
||||
- **Administrators**: @blendify @fsiddi
|
||||
|
||||
|
||||
@ -52,7 +53,7 @@ If you are interested in becoming a contributor, please contact us on the
|
||||
|
||||
# Translations
|
||||
|
||||
For translations, we use Sphinx’s internationalization package.
|
||||
For translations, we use Sphinx's internationalization package.
|
||||
To get started see the [contribution guide for translations](https://docs.blender.org/manual/en/dev/contribute/index.html#translations).
|
||||
|
||||
|
||||
@ -60,6 +61,7 @@ To get started see the [contribution guide for translations](https://docs.blende
|
||||
|
||||
- **Source Files**: [Translation's Repository](https://projects.blender.org/blender/blender-manual-translations) (git repository).
|
||||
- **Forum**: [Documentation category on Developer Talk](https://devtalk.blender.org/c/documentation)
|
||||
- **Chat**: [#translations on blender.chat](https://blender.chat/channel/translations).
|
||||
- **Administrators**: @blendify , @fsiddi
|
||||
|
||||
**Note:*
|
||||
|
@ -234,3 +234,10 @@ RedirectMatch "^/manual/{lang}/{version}/compositing/types/converter/combine_xyz
|
||||
RedirectMatch "^/manual/{lang}/{version}/compositing/types/converter/seperate_xyz.html" "^/manual/{lang}/{version}/compositing/types/vector/seperate_xyz.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_shade_smooth.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_face_smooth.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/volume/volume_to_mesh.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/operations/volume_to_mesh.html"
|
||||
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/volume/volume_cube.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/primatives/volume_cube.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/editors/nla/editing.html" "^/manual/{lang}/{version}/editors/nla/editing/index.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/render/shader_nodes/shader/anisotropic.html" "^/manual/{lang}/{version}/render/shader_nodes/shader/glossy.html"
|
@ -33,7 +33,7 @@ def gen_htaccess(app, lang, version):
|
||||
|
||||
def read_htaccess():
|
||||
current_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
ht_fn = os.path.normpath(os.path.join(current_dir, "..", "resources", ".htaccess"))
|
||||
ht_fn = os.path.normpath(os.path.join(current_dir, "..", ".htaccess"))
|
||||
|
||||
try:
|
||||
with open(ht_fn, "r", encoding="utf-8") as f:
|
@ -1,32 +1,27 @@
|
||||
{%- extends "!layout.html" %}
|
||||
{%- extends "!page.html" %}
|
||||
{%- set title = _('Not Found (404)') %}
|
||||
{%- set ROOT = "https://docs.blender.org/manual/" %}
|
||||
{%- block htmltitle %}
|
||||
{{ super() }}
|
||||
<base href="{{ ROOT + language + '/' + version + '/' }}" />
|
||||
{% endblock %}
|
||||
{%- block extrahead %}
|
||||
<style>
|
||||
.search404 {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.search404 input[type="text"] {
|
||||
width: 100%;
|
||||
border-radius: 50px;
|
||||
padding-inline-start: 1em;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{%- block body %}
|
||||
{% block content %}
|
||||
<h1>{% trans %}Not Found (404){% endtrans %}</h1>
|
||||
<p>{% trans %}It seems the page you are trying to find has been either moved or deleted.{% endtrans %}<br>
|
||||
{% trans %}You can try one of the following things:{% endtrans %}</p>
|
||||
|
||||
<div class="search404 centered">
|
||||
{% include "searchbox.html" %}
|
||||
<form class="sidebar-search-container" method="get" action="{{ pathto('search') }}" role="search">
|
||||
<input class="sidebar-search" placeholder="{{ _("Search") }}" name="q" aria-label="{{ _("Search" ) }}">
|
||||
<input type="hidden" name="check_keywords" value="yes">
|
||||
<input type="hidden" name="area" value="default">
|
||||
</form>
|
||||
<div id="searchbox"></div>
|
||||
</div>
|
||||
|
||||
{%- endblock %}
|
||||
{%- block scripts -%}
|
||||
|
||||
<noscript>
|
||||
<a href="{{ ROOT + language + '/' + version + '/index.html' }}" class="btn btn-neutral"
|
||||
title="{{ _('Return Home') }}">
|
||||
@ -36,29 +31,26 @@
|
||||
</noscript>
|
||||
<script>
|
||||
function init() {
|
||||
var versions = getVersion();
|
||||
const versions = getVersion();
|
||||
if (versions !== null) {
|
||||
replaceSearch(versions);
|
||||
}
|
||||
}
|
||||
/*get language and version from url*/
|
||||
function getVersion() {
|
||||
var url = window.location.href;
|
||||
var versions = url.match(/\/manual\/([\w\-\.]+)\/(dev|\d\.\d[\w\d\.]*)\//);
|
||||
if (versions !== null) {
|
||||
return [versions[1], versions[2]];
|
||||
const versions = window.location.pathname.split('/', 4);
|
||||
if (versions && versions[1] === "manual") {
|
||||
return versions.slice(2);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/*replace search form url*/
|
||||
function replaceSearch(version) {
|
||||
var searchforms = document.getElementsByTagName("FORM");
|
||||
for (let i = 0; i < searchforms.length; i++) {
|
||||
searchforms[i].setAttribute("action", "/manual/" + version[0] + "/" + version[1] + "/search.html");
|
||||
}
|
||||
var searchtexts = document.getElementsByName("q");
|
||||
for (let i = 0; i < searchtexts.length; i++) {
|
||||
searchtexts[i].setAttribute("placeholder", "Search Docs (" + version[0] + " " + version[1] + ")");
|
||||
function replaceSearch(versions) {
|
||||
const searchforms = document.getElementsByTagName("FORM");
|
||||
for (let searchform of searchforms) {
|
||||
searchform.setAttribute("action", ["", "manual", ...versions, "search.html"].join("/"));
|
||||
let searchtext = searchform.querySelector("input[name=\"q\"]");
|
||||
searchtext.setAttribute("placeholder", "Search Docs (" + versions.join(" ") + ")");
|
||||
}
|
||||
}
|
||||
window.onload = init();
|
11
build_files/templates/base.html
Normal file
11
build_files/templates/base.html
Normal file
@ -0,0 +1,11 @@
|
||||
{%- extends "!base.html" -%}
|
||||
|
||||
{%- block linktags -%}
|
||||
{{ super() }}
|
||||
{%- include "components/linktags.html" -%}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block theme_scripts -%}
|
||||
{{ super() }}
|
||||
<script defer data-domain="docs.blender.org" src="https://analytics.blender.org/js/script.js"></script>
|
||||
{%- endblock -%}
|
27
build_files/templates/components/footer_contribute.html
Normal file
27
build_files/templates/components/footer_contribute.html
Normal file
@ -0,0 +1,27 @@
|
||||
{%- if not pagename in ("search", "404", "genindex", "advanced/command_line/arguments") and hasdoc(pagename) %}
|
||||
<div class="footer-contribute">
|
||||
<ul>
|
||||
<li>{# Add the `display=source` because GITEA's rendering misses Sphinx's features and shows warnings. #}
|
||||
<a href="https://projects.blender.org/blender/blender-manual/{#
|
||||
#}src/branch/main/manual/{{ pagename }}{{ page_source_suffix }}?display=source"> {{
|
||||
_('View Source') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://translate.blender.org/zen/blender-manual/{#
|
||||
#}manual/{{ language }}/?q=location%3Amanual%2F{{ pagename }}"> {{ _('View Translation') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://projects.blender.org/blender/documentation/issues/new?{#
|
||||
#}template=.gitea/issue_template/bug.yaml&field:{#
|
||||
#}body=%2A%2APage+Information%2A%2A%0D%0A{#
|
||||
#}File%3A+%60manual%2F{{ pagename }}{{ page_source_suffix }}%60%0D%0A{#
|
||||
#}Blender+Version%3A+%60{{ version }}%60%0D%0A{#
|
||||
#}Documentation+Language%3A+%60{{ language }}%60%0D%0A%5B{#
|
||||
#}Permanent+Link%5D%28https%3A%2F%2Fdocs.blender.org%2F{#
|
||||
#}manual%2F{{ language }}%2F{{ version }}%2F{{ pagename }}{{ file_suffix }}%29%0D%0A%0D%0A%2A%2A{#
|
||||
#}Short+description+of+error%2A%2A%0D%0A%5B{#
|
||||
#}Please+fill+out+a+short+description+of+the+error+here%5D%0D%0A"> {{ _('Report issue on this page') }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{%- endif %}
|
@ -1,5 +1,3 @@
|
||||
{%- extends "!layout.html" %}
|
||||
{%- block linktags %}
|
||||
<link rel="alternate" hreflang="en" href="https://docs.blender.org/manual/en/latest/" />
|
||||
<link rel="alternate" hreflang="ar" href="https://docs.blender.org/manual/ar/latest/" />
|
||||
<link rel="alternate" hreflang="de" href="https://docs.blender.org/manual/de/latest/" />
|
||||
@ -11,6 +9,7 @@
|
||||
<link rel="alternate" hreflang="ja" href="https://docs.blender.org/manual/ja/latest/" />
|
||||
<link rel="alternate" hreflang="ko" href="https://docs.blender.org/manual/ko/latest/" />
|
||||
<link rel="alternate" hreflang="nb" href="https://docs.blender.org/manual/nb/latest/" />
|
||||
<link rel="alternate" hreflang="nl" href="https://docs.blender.org/manual/nl/latest/" />
|
||||
<link rel="alternate" hreflang="pt" href="https://docs.blender.org/manual/pt/latest/" />
|
||||
<link rel="alternate" hreflang="ru" href="https://docs.blender.org/manual/ru/latest/" />
|
||||
<link rel="alternate" hreflang="sk" href="https://docs.blender.org/manual/sk/latest/" />
|
||||
@ -21,5 +20,3 @@
|
||||
<link rel="alternate" hreflang="zh-Hans" href="https://docs.blender.org/manual/zh-hans/latest/" />
|
||||
<link rel="alternate" hreflang="zh-Hant" href="https://docs.blender.org/manual/zh-hant/latest/" />
|
||||
<link rel="alternate" hreflang="x-default" href="https://docs.blender.org/manual/en/latest/" />
|
||||
{{ super() }}
|
||||
{%- endblock %}
|
6
build_files/templates/page.html
Normal file
6
build_files/templates/page.html
Normal file
@ -0,0 +1,6 @@
|
||||
{%- extends "!page.html" -%}
|
||||
|
||||
{%- block footer -%}
|
||||
{{ super() }}
|
||||
{%- include "components/footer_contribute.html" -%}
|
||||
{%- endblock footer -%}
|
41
build_files/templates/sidebar/variant-selector.html
Normal file
41
build_files/templates/sidebar/variant-selector.html
Normal file
@ -0,0 +1,41 @@
|
||||
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Document versions">
|
||||
<ul id="versionwrap" role="presentation">
|
||||
<li role="presentation">
|
||||
<button id="version-popover" class="version-btn" tabindex="0" type="button" aria-label="Versions selector"
|
||||
aria-haspopup="true" aria-owns="version-vsnlist" aria-disabled="true">
|
||||
{{ release }}
|
||||
</button>
|
||||
<div class="version-dialog" aria-hidden="true">
|
||||
<div class="version-title" aria-role="heading">Versions</div>
|
||||
<ul id="version-vsnlist" class="version-list" role="menu" aria-labelledby="version-popover" aria-hidden="true">
|
||||
<li role="presentation">Loading...</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<button id="lang-popover" class="version-btn" tabindex="0" type="button" aria-label="Language selector"
|
||||
aria-haspopup="true" aria-owns="version-langlist">
|
||||
{% if language is not none %} {{ language }} {% else %} en {% endif %}
|
||||
</button>
|
||||
<div class="version-dialog" aria-hidden="true">
|
||||
<div class="version-title" aria-role="heading">Languages</div>
|
||||
<ul id="version-langlist" class="version-list" role="menu" aria-labelledby="lang-popover" aria-hidden="true">
|
||||
<li role="presentation">Loading...</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<template id="version-entry">
|
||||
<li tabindex="-1" role="presentation"><a tabindex="-1" role="menuitem"></a></li>
|
||||
<li class="selected" tabindex="-1" role="presentation"><span tabindex="-1" aria-current="page"></span></li>
|
||||
</template>
|
||||
</ul>
|
||||
<template id="version-warning">
|
||||
<div class="admonition warning">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">
|
||||
You are not using the most up to date version of the documentation.
|
||||
<a href="#"></a> is the newest version.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
After Width: | Height: | Size: 10 KiB |
354
build_files/theme/css/theme_overrides.css
Normal file
354
build_files/theme/css/theme_overrides.css
Normal file
@ -0,0 +1,354 @@
|
||||
/*
|
||||
* This stylesheet is applied after the theme's default one,
|
||||
* and thus any overrides or additions can be added here.
|
||||
*
|
||||
* More info:
|
||||
* https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_css_file
|
||||
*/
|
||||
|
||||
body {
|
||||
--sidebar-caption-font-size: var(--font-size--normal);
|
||||
--toc-title-font-size: var(--font-size--normal);
|
||||
--toc-font-size: var(--sidebar-item-font-size);
|
||||
--admonition-font-size: var(--font-size--normal);
|
||||
--admonition-title-font-size: var(--font-size--normal);
|
||||
--color-api-name: #e87d0d;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
margin-top: 1.75rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
.rubric {
|
||||
margin-top: 1.25rem;
|
||||
margin-bottom: 0.75rem;
|
||||
font-size: 1.125em;
|
||||
}
|
||||
|
||||
/* Reduce the margins on top/bottom of horizontal lines. */
|
||||
hr.docutils {
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
|
||||
/* Slightly decrease text to make the text fit on one line */
|
||||
.sidebar-brand-text {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.toctree-checkbox~label .icon svg {
|
||||
transition: transform 0.25s ease-out;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.toctree-checkbox~label .icon svg {
|
||||
transition-duration: 0s !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add more visual weight to definition terms */
|
||||
dl dt {
|
||||
font-weight: bold !important
|
||||
}
|
||||
|
||||
/* Fixes to field list, see #104636 */
|
||||
dl.field-list {
|
||||
display: grid;
|
||||
grid-template-columns: auto minmax(80%, 95%);
|
||||
}
|
||||
|
||||
dl.field-list > dd > p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@media (max-width: calc(67em / 2)) {
|
||||
dl.field-list {
|
||||
grid-template-columns: unset;
|
||||
}
|
||||
}
|
||||
|
||||
/* TABLE & FIGURE */
|
||||
|
||||
/* Cell's vertical align. */
|
||||
/* use "valign" class for middle align */
|
||||
table.docutils:not(.valign) td {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/* Decrease whitespace above figure and add it below */
|
||||
figure {
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
margin-bottom: 0.5rem !important;
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Allow horizontal lists to collapse on narrow screens */
|
||||
.hlist tr {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
/* End TABLE & FIGURE. */
|
||||
|
||||
/* Force admonition to span the full width if close to a figure */
|
||||
.admonition {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Use secondary font color for caption text */
|
||||
figcaption,
|
||||
caption {
|
||||
color: var(--color-foreground-secondary);
|
||||
font-size: var(--font-size--small)
|
||||
}
|
||||
|
||||
/* A bit hacky, revert the themes styling of kbd */
|
||||
kbd:not(.compound) {
|
||||
all: revert;
|
||||
}
|
||||
|
||||
/* Only style parent kbd elements instead of the individual children */
|
||||
:not(dl.option-list)> :not(kbd):not(kbd)>kbd,
|
||||
.menuselection {
|
||||
background-color: var(--color-background-secondary);
|
||||
border: 1px solid var(--color-foreground-border);
|
||||
border-radius: .2rem;
|
||||
box-shadow: 0 .0625rem 0 rgba(0, 0, 0, .2), inset 0 0 0 .125rem var(--color-background-secondary);
|
||||
color: var(--color-foreground-primary);
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0 .2rem;
|
||||
}
|
||||
|
||||
/* Don't underline any text within code blocks (hurts readability). */
|
||||
.highlight .nc,
|
||||
.highlight .nn,
|
||||
.highlight .gu {
|
||||
text-decoration-line: none !important;
|
||||
}
|
||||
|
||||
.caption .menuselection {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Break long code references onto a second line */
|
||||
a > code.docutils {
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
/* Quotes for Fig. "link". */
|
||||
a[href^="#fig-"]::before {
|
||||
content: "\201c";
|
||||
}
|
||||
|
||||
a[href^="#fig-"]::after {
|
||||
content: "\201d";
|
||||
}
|
||||
|
||||
/* Mark external links. */
|
||||
a.external:not(figure > a.external) {
|
||||
filter: brightness(150%);
|
||||
}
|
||||
|
||||
/* List blender.org as internal. */
|
||||
.external[href^="https://www.blender.org"],
|
||||
.external[href^="https://docs.blender.org"],
|
||||
.external[href^="https://projects.blender.org"],
|
||||
.external[href^="https://builder.blender.org"],
|
||||
.external[href^="https://code.blender.org"],
|
||||
.external[href^="https://translate.blender.org"],
|
||||
.external[href^="https://fund.blender.org"],
|
||||
.external[href^="blender_manual_html.zip"],
|
||||
.external[href^="blender_manual_epub.zip"],
|
||||
.external[href^="https://archive.blender.org"] {
|
||||
filter: revert;
|
||||
}
|
||||
|
||||
/* ".. container::" lead, block text float around image. */
|
||||
.lead {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Start reference admonition. */
|
||||
.admonition.refbox {
|
||||
border-color: rgb(50, 50, 50);
|
||||
}
|
||||
|
||||
.admonition.refbox>.admonition-title {
|
||||
background-color: rgba(50, 50, 50, 0.2);
|
||||
border-color: rgb(50, 50, 50);
|
||||
}
|
||||
|
||||
.admonition.refbox>.admonition-title::before {
|
||||
background-color: var(--color-content-foreground);
|
||||
}
|
||||
|
||||
/* 'refbox' field. */
|
||||
.refbox .field-list .field-name,
|
||||
.refbox .field-list .field-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.refbox dl dt {
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
/* End reference admonition. */
|
||||
|
||||
/* Applied on main index:sections. */
|
||||
|
||||
.global-index-toc {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Start section cards. */
|
||||
.toc-cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
||||
grid-gap: 20px;
|
||||
list-style-type: none;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.card {
|
||||
border-radius: .3em;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.card div.figure,
|
||||
.card figure {
|
||||
margin-bottom: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.card img {
|
||||
border-top-left-radius: .3em;
|
||||
border-top-right-radius: .3em;
|
||||
}
|
||||
|
||||
.card dl {
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.card dl dt>a {
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card dl dt a em,
|
||||
.card dl dt a span {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.card dl dt {
|
||||
padding: 0 15px 0 !important
|
||||
}
|
||||
|
||||
.card dl dd {
|
||||
padding: 0 15px 5px 15px;
|
||||
font-style: normal;
|
||||
margin: 0;
|
||||
color: var(--color-foreground-secondary);
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.card {
|
||||
box-shadow: 0 .2rem .5rem rgba(0, 0, 0, .05), 0 0 .0625rem rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
#getting-started .card {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* End section cards. */
|
||||
|
||||
/* Start custom toctree. */
|
||||
/* Indent all lines following the first. */
|
||||
.toctree-wrapper * a {
|
||||
display: block;
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
|
||||
.toctree-wrapper ul {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
/* Underline provided by nested ul (not li). */
|
||||
.toctree-wrapper * ul {
|
||||
margin-bottom: 1rem !important;
|
||||
border-top: solid var(--color-background-border) 1px;
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
/* End custom toctree. */
|
||||
|
||||
/* Start footer contribute link */
|
||||
.footer-contribute {
|
||||
display: block;
|
||||
font-size: var(--font-size--small);
|
||||
}
|
||||
|
||||
.bottom-of-page {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.footer-contribute ul {
|
||||
display: flex;
|
||||
gap: 1.5rem;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-bottom: 1rem
|
||||
}
|
||||
|
||||
.footer-contribute li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
@media (max-width: 46em) {
|
||||
.footer-contribute > ul {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.footer-contribute {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* End footer contribute link */
|
119
build_files/theme/css/version_switch.css
Normal file
119
build_files/theme/css/version_switch.css
Normal file
@ -0,0 +1,119 @@
|
||||
#versionwrap {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
padding-top: 2px;
|
||||
padding-left: 0;
|
||||
font-size: var(--sidebar-item-font-size);
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
#versionwrap>ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#versionwrap>li {
|
||||
display: flex;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.version-btn {
|
||||
display: inline-block;
|
||||
background-color: var(--color-sidebar-background);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding: 3px 10px;
|
||||
margin: 0 5px 4px;
|
||||
vertical-align: middle;
|
||||
color: var(--color-link);
|
||||
border: solid 1px var(--color-sidebar-background-border);
|
||||
border-radius: 3px;
|
||||
cursor: pointer;
|
||||
z-index: 400;
|
||||
}
|
||||
|
||||
.version-btn-open::after {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.version-btn:hover,
|
||||
.version-btn:focus {
|
||||
border-color: #525252;
|
||||
}
|
||||
|
||||
.version-btn-open {
|
||||
color: gray;
|
||||
border: solid 1px var(--color-sidebar-background-border);
|
||||
}
|
||||
|
||||
.version-btn.wait {
|
||||
cursor: wait;
|
||||
}
|
||||
|
||||
.version-btn.disabled {
|
||||
cursor: not-allowed;
|
||||
color: dimgray;
|
||||
}
|
||||
|
||||
.version-dialog {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 24px;
|
||||
width: 50%;
|
||||
margin: 0 5px;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 6px #000C;
|
||||
z-index: 999;
|
||||
max-height: calc(100vh - 30px);
|
||||
overflow-x: clip;
|
||||
overflow-y: auto;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.version-title {
|
||||
padding: 5px;
|
||||
color: var(--color-content-foreground);
|
||||
text-align: center;
|
||||
font-size: 102%;
|
||||
font-weight: 700;
|
||||
background-color: var(--color-brand-primary);
|
||||
border-bottom: solid 1.5px var(--color-sidebar-background-border);
|
||||
}
|
||||
|
||||
.version-list {
|
||||
padding-left: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 4px;
|
||||
text-align: center;
|
||||
border: solid 1px var(--color-sidebar-background-border);
|
||||
border-radius: 0 0 3px 3px;
|
||||
}
|
||||
|
||||
.version-list a,
|
||||
.version-list span,
|
||||
.version-list li {
|
||||
position: relative;
|
||||
display: block;
|
||||
font-size: 98%;
|
||||
line-height: 1.15;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 4px 0;
|
||||
color: var(--color-sidebar-link-text);
|
||||
}
|
||||
|
||||
.version-list li {
|
||||
background-color: var(--color-sidebar-background);
|
||||
color: var(--color-sidebar-link-text);
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.version-list li:hover,
|
||||
.version-list li a:focus {
|
||||
background-color: var(--color-background-hover);
|
||||
}
|
||||
|
||||
.version-list li.selected {
|
||||
background: var(--color-sidebar-item-background--current);
|
||||
font-weight: 700;
|
||||
}
|
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
(function() {//switch: v1.4
|
||||
(function() {//switch: v1.5
|
||||
"use strict";
|
||||
|
||||
var versionsFileUrl = "https://docs.blender.org/versions.json"
|
||||
@ -9,19 +9,20 @@ var all_langs = {
|
||||
"ar": "اَلْعَرَبِيَّةُ",
|
||||
"de": "Deutsch",
|
||||
"es": "Español",
|
||||
"fi": "Suomeksi",
|
||||
"fi": "Suomi",
|
||||
"fr": "Français",
|
||||
"id": "Bahasa Indonesia",
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"ko": "한국어",
|
||||
"nb": "Norsk Bokmål",
|
||||
"nl": "Nederlands",
|
||||
"pt": "Português",
|
||||
"ru": "Ρусский",
|
||||
"sk": "Slovenčina",
|
||||
"sl": "Slovenščina",
|
||||
"sr": "српски",
|
||||
"uk": "Ukraїna",
|
||||
"uk": "Українська",
|
||||
"vi": "Tiếng Việt",
|
||||
"zh-hans": "中文(简体)",
|
||||
"zh-hant": "中文(繁體)",
|
||||
@ -140,7 +141,14 @@ buildList(v, l) {
|
||||
clone = template.firstElementChild.cloneNode(true);
|
||||
const link = clone.querySelector("a");
|
||||
link.href = href;
|
||||
if (that.type) {
|
||||
link.innerHTML = title;
|
||||
} else {
|
||||
const hint = document.createElement("bdi");
|
||||
hint.innerHTML = title;
|
||||
link.appendChild(hint);
|
||||
}
|
||||
link.setAttribute("lang", !that.type ? ix : "en");
|
||||
}
|
||||
that.list.append(clone);
|
||||
};
|
||||
@ -159,6 +167,7 @@ getNamed(v) {
|
||||
return v;
|
||||
}
|
||||
dialogToggle(speed) {
|
||||
speed = window.matchMedia("(prefers-reduced-motion: reduce)").matches ? 0 : speed;
|
||||
const wasClose = !this.isOpen;
|
||||
const that = this;
|
||||
if(!this.isOpen) {
|
@ -1,72 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
.. RST versions of the "Get Involved" pages on blender.org related to the documentation project.
|
||||
:: Copy this file into the /manual folder to build it (but watch out not to accidentally committing it).
|
||||
|
||||
################################
|
||||
Documentation -- blender.org
|
||||
################################
|
||||
|
||||
|
||||
.. _Get Involved: https://www.blender.org/get-involved/
|
||||
.. _Documentation: https://www.blender.org/get-involved/documentation/
|
||||
|
||||
***************
|
||||
`Get Involved`_
|
||||
***************
|
||||
|
||||
`Documentation`_
|
||||
================
|
||||
|
||||
A large number of people are helping with the
|
||||
`Blender Manual <https://docs.blender.org/manual/en/dev/>`__
|
||||
to organize and write our complete and freely available end-user documentation.
|
||||
|
||||
Volunteers interested in documentation translations can contact the team as well.
|
||||
|
||||
`Read more » <https://www.blender.org/get-involved/documenters>`__
|
||||
|
||||
|
||||
****************
|
||||
`Documentation`_
|
||||
****************
|
||||
|
||||
About
|
||||
=====
|
||||
|
||||
Blender's official documentation can be found in the online
|
||||
`Blender Manual <https://docs.blender.org/manual/en/dev/>`__.
|
||||
The Blender Manual is written using reStructuredText (RST) and
|
||||
is built with `Sphinx <http://www.sphinx-doc.org/en/stable/>`__.
|
||||
|
||||
This project is run by a small team of volunteers and we would love your contributions!
|
||||
|
||||
|
||||
How to Get Started
|
||||
==================
|
||||
|
||||
#. `Install the manual locally <https://docs.blender.org/manual/en/dev/contribute/install/index.html>`__
|
||||
#. `Build the manual locally <https://docs.blender.org/manual/en/dev/contribute/build/index.html>`__
|
||||
#. Open an issue with your interest in helping
|
||||
|
||||
|
||||
Communication
|
||||
=============
|
||||
|
||||
- `#docs <https://blender.chat/channel/docs>`__ -- Chat with documenters, developers, and users.
|
||||
- `Developer Forum <https://devtalk.blender.org/>`__
|
||||
- `Issue tracker <https://projects.blender.org/blender/documentation>`__ -- Report bugs or
|
||||
find projects you can work on to improve the documentation.
|
||||
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
The Blender manual is also being actively translated into a dozen languages.
|
||||
If you would like to help to translate the manual from English to your language follow the above
|
||||
"How to Get Started" guide but simply say you want to help with translations.
|
||||
|
||||
You should also read the following documents:
|
||||
|
||||
- `Translation contributing guide <https://docs.blender.org/manual/en/dev/contribute/translations/contribute.html>`__
|
||||
- `Translation style guide <https://docs.blender.org/manual/en/dev/contribute/translations/style_guide.html>`__
|
14
make.bat
14
make.bat
@ -89,38 +89,38 @@ if "%1" == "latexpdf" (
|
||||
)
|
||||
|
||||
if "%1" == "check_syntax" (
|
||||
python tools_rst\rst_check_syntax.py --kbd --long
|
||||
python tools\check_source\check_syntax.py --kbd --long
|
||||
goto EOF
|
||||
)
|
||||
|
||||
if "%1" == "checkout_locale" (
|
||||
python tools_make\checkout_locale.py
|
||||
python build_files\utils\checkout_locale.py
|
||||
goto EOF
|
||||
)
|
||||
|
||||
if "%1" == "update_po" (
|
||||
python tools_maintenance\update_po.py
|
||||
python tools/utils_maintenance\update_po.py
|
||||
goto EOF
|
||||
)
|
||||
|
||||
if "%1" == "report_po_progress" (
|
||||
IF NOT EXIST %cd%\locale GOTO MISSING_LOCALE
|
||||
python tools_report\report_translation_progress.py locale\%2 --quiet
|
||||
python tools\translations\report_translation_progress.py locale\%2 --quiet
|
||||
goto EOF
|
||||
|
||||
)
|
||||
|
||||
if "%1" == "check_spelling" (
|
||||
python tools_rst\rst_check_spelling.py
|
||||
python tools\check_source\check_spelling.py
|
||||
goto EOF
|
||||
)
|
||||
|
||||
if "%1" == "check_structure" (
|
||||
python tools_rst\rst_check_images.py
|
||||
python tools\check_source\check_images.py
|
||||
goto EOF
|
||||
|
||||
if "%1" == "update" (
|
||||
python tools_make\make_update.py
|
||||
python build_files\utils\make_update.py
|
||||
goto EOF
|
||||
|
||||
) else (
|
||||
|
@ -1,101 +0,0 @@
|
||||
|
||||
*************
|
||||
3D Navigation
|
||||
*************
|
||||
|
||||
This custom menu is in part a virtual numpad emulator and a user perspective navigation tool.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click 3D View then 3D Navigation to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View`.
|
||||
This add-on is split over two panels.
|
||||
|
||||
|
||||
3D Navigation
|
||||
-------------
|
||||
|
||||
.. figure:: /images/addons_3d-view_3d-navigation_panel1.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
This panel provides some common navigation tools and emulates the numpad shortcuts.
|
||||
|
||||
View Global/Local
|
||||
Switch Global/Local view.
|
||||
View Perspective/Orthographic
|
||||
Switch perspective/orthographic view mode.
|
||||
View Camera
|
||||
View from active camera.
|
||||
|
||||
Align View from
|
||||
Front/Back
|
||||
Align view to front/back.
|
||||
|
||||
Left/Right
|
||||
Align view to left/right.
|
||||
|
||||
Top/Bottom
|
||||
Align view to top/bottom.
|
||||
|
||||
Lock View to Object
|
||||
Select an object to align view, from the list.
|
||||
|
||||
View to Selected
|
||||
Align view on selected object.
|
||||
|
||||
Cursor
|
||||
World Origin
|
||||
Snap cursor to center (scene 0,0,0).
|
||||
View
|
||||
Align view to center (scene 0,0,0).
|
||||
Cursor to Selected
|
||||
Snap cursor to object center (selected).
|
||||
|
||||
|
||||
Pan Orbit Zoom Roll
|
||||
-------------------
|
||||
|
||||
.. figure:: /images/addons_3d-view_3d-navigation_panel2.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
This panel provides incremental "User Screen View Perspective" navigation in the Sidebar.
|
||||
|
||||
Up
|
||||
Move towards the top of your screen.
|
||||
|
||||
Down
|
||||
Move towards the bottom of your screen.
|
||||
|
||||
Left
|
||||
Move to the users left or left of screen as you view it.
|
||||
|
||||
Right
|
||||
Move to the users right or right of screen as you view it.
|
||||
|
||||
Zoom In/Out
|
||||
Zoom the view in/out.
|
||||
|
||||
Roll Left/Right
|
||||
Roll the view left/right.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: 3D View
|
||||
:Description: Navigate the 3D Viewport and camera from the Sidebar.
|
||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
||||
:File: space_view3d_3d_navigation.py
|
||||
:Author: Demohero, uriel, meta-androcto
|
||||
:Maintainer: Brendon Murphy (meta-androcto)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -8,9 +8,4 @@ These add-ons relate to drawing or manipulating the 3D Viewport.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3d_navigation.rst
|
||||
math_vis_console.rst
|
||||
measureit.rst
|
||||
precision_drawing_tools/index.rst
|
||||
stored_views.rst
|
||||
vr_scene_inspection.rst
|
||||
|
@ -1,58 +0,0 @@
|
||||
|
||||
****************
|
||||
Math Vis Console
|
||||
****************
|
||||
|
||||
Sometimes when writing Python scripts you stumble on complicated
|
||||
matrix transformations, ray intersections, rotation conversions, mesh modifications, etc.
|
||||
where its useful to view lines, points and matrices in the viewport to better understand the problem.
|
||||
|
||||
Creating mesh data for this purpose isn't difficult but is cumbersome.
|
||||
The purpose of this add-on is to make it as quick and easy as possible.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click 3D View then Math Vis (Console) to enable the script.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
Math Vis works by displaying Python Console defined mathutils typed variables in the 3D Viewport.
|
||||
|
||||
The following types are supported:
|
||||
|
||||
- Point: ``Vector(...)``
|
||||
- Line: ``[Vector(...), Vector(...), ...]``
|
||||
- Transformation: ``Matrix(...)``
|
||||
- Transformations (without translation): ``Quaternion(...)``/ ``Euler(...)``
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
.. figure:: /images/addons_3d-view_math-vis-console_example.jpg
|
||||
:align: center
|
||||
:width: 680px
|
||||
|
||||
Create a Python Console editor.
|
||||
In the Python Console define a mathutils variable::
|
||||
|
||||
hello_world = Vector((1, 2, 3))
|
||||
|
||||
You should now be able to see this point in the 3D Viewport!
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: 3D View
|
||||
:Description: Display console defined mathutils variables in the 3D Viewport.
|
||||
:Location: :menuselection:`Properties --> Scene --> Python Console Menu`
|
||||
:File: space_view3d_math_vis.py
|
||||
:Author: Campbell Barton
|
||||
:Maintainer: Campbell Barton
|
||||
:License: GPL
|
||||
:Support Level: Official
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,67 +0,0 @@
|
||||
|
||||
*********
|
||||
MeasureIt
|
||||
*********
|
||||
|
||||
MeasureIt is an add-on designed for displaying measures in the viewport,
|
||||
making the process of design objects with exact measures, easier.
|
||||
These tools are extremely useful for any job that requires exact measurements,
|
||||
including architectural projects, technical design and 3D printing.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click 3D View then MeasureIt to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
.. figure:: /images/addons_3d-view_measureit_example.jpg
|
||||
:align: center
|
||||
:width: 640px
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
||||
The MeasureIt Tools panel is described below.
|
||||
|
||||
To view the measures you need to press the *Show* button.
|
||||
Many measure styles appear grayed out in the menu, these are active in Edit Mode.
|
||||
|
||||
- The Mesh Debug sub panel has extra display options.
|
||||
- The Items sub panel appears after adding a measure. This contains the color settings for each measure.
|
||||
- The Configuration sub panel contains the font settings.
|
||||
- The Render sub panel contains the render settings.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
- Mesh vertex to vertex measure: Length between vertices in the same mesh.
|
||||
- Mesh vertex labeling: Add a label to any mesh vertex.
|
||||
This allows identify easily different areas or objects in the scene.
|
||||
- Object to object: Distance between object origins, vertex to origin or vertex to vertex.
|
||||
- Object to origin: Distance between object origin to scene origin or vertex to scene origin.
|
||||
- Allows work with different scales.
|
||||
- The measures can be used with meshes, empties, lights, and cameras.
|
||||
|
||||
As all measure definitions are saved in the blend-file, you can save the file and
|
||||
the next time you use it, the measures will be ready.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: 3D View
|
||||
:Description: Tools for measuring objects in the 3D Viewport.
|
||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
||||
:File: measureit folder
|
||||
:Author: Antonio Vazquez (antonioya)
|
||||
:Maintainer: Antonio Vazquez (antonioya)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,100 +0,0 @@
|
||||
|
||||
****************
|
||||
Before You Begin
|
||||
****************
|
||||
|
||||
There are a number of principles to be aware of before you begin working with PDT:
|
||||
|
||||
.. _latest-menus: https://github.com/Clockmender/Precision-Drawing-Tools/wiki/98-PDT-Latest-Release-Menus
|
||||
|
||||
Be sure to check out latest-menus_ to see current layouts.
|
||||
|
||||
#. PDT is split into several sections and this list will grow as the add-on develops.
|
||||
#. PDT has a concept of a ``Working Plane`` that applies in all Operations,
|
||||
i.e. those defined in the Design section and some in the Pivot Point section.
|
||||
#. PDT has been designed to work as far as possible in Edit and
|
||||
Object modes with many commands equally applicable to both.
|
||||
#. Certain Operations relating to ``Cursor Placement`` and ``Pivot Point Placement``
|
||||
have been set to work in either Selected, or Relative Modes, these will be explained later.
|
||||
#. PDT can be driven from its own Command Line input for **most** operations.
|
||||
|
||||
The first thing to establish is the ``Working Plane``, here a number of choices are available:
|
||||
|
||||
#. ``Front(X-Z)`` - Uses Global X and Z axes, if you want to work from the Back view,
|
||||
the working plane is also this as the axes remain the same.
|
||||
#. ``Top(X-Y)`` - Uses Global X and Y axes, if you want to work from the Bottom view,
|
||||
the working plane is also this as the axes remain the same.
|
||||
#. ``Right(Y-Z)`` - Uses Global Y and Z axes, if you want to work from the Left view,
|
||||
the working plane is also this as the axes remain the same.
|
||||
#. ``View`` - This uses axes relative to your screen, no matter how the 3D View is rotated,
|
||||
X is always view-horizontal, Y is always view-vertical and Z is always view-depth.
|
||||
|
||||
.. figure:: /images/addons_pdt_setup_1.png
|
||||
:width: 300px
|
||||
|
||||
|
||||
Setting the Working Plane.
|
||||
==========================
|
||||
|
||||
Whatever your ``View`` is set to other than **View**,
|
||||
it does not matter how the view is oriented, inputs are always along global axes.
|
||||
|
||||
The second thing is whether you want Cursor, or Pivot Point locations to be based upon ``Selected``,
|
||||
or ``Current`` values. Set ``Selected`` if you want the Cursor to be placed relative to selected geometry,
|
||||
or ``Current`` if you want it to be placed relative to its current location.
|
||||
For example, moving the cursor in ``Current`` mode by a ``Delta``
|
||||
input of 1,3,2 will move the cursor relative to itself,
|
||||
so it moves this amount every time you activate the command.
|
||||
|
||||
.. figure:: /images/addons_pdt_setup_2.png
|
||||
:width: 300px
|
||||
|
||||
|
||||
Setting the Cursor/Pivot Point Movement Mode.
|
||||
=============================================
|
||||
|
||||
Then you can set the type of Operation you want to undertake,
|
||||
these will be discussed on another page. There are a number of Operations, shown below:
|
||||
|
||||
1) Cursor.
|
||||
2) Pivot Point.
|
||||
3) Move.
|
||||
4) New Vertex.
|
||||
5) Extrude Vertices.
|
||||
6) Split Edges.
|
||||
7) Duplicate Geometry.
|
||||
8) Extrude Geometry.
|
||||
|
||||
.. figure:: /images/addons_pdt_setup_3.png
|
||||
:width: 300px
|
||||
|
||||
|
||||
Setting the Operation Mode.
|
||||
===========================
|
||||
|
||||
Setting the `Operation` mode determines what the buttons below this command actually do,
|
||||
so for example to **move** the ``Cursor`` to ``Absolute`` location, you would select ``Cursor`` operation,
|
||||
set the input values for **X, Y & Z** then click the ``Absolute`` button.
|
||||
|
||||
Below is a table showing which options are available in which Modes, including Edit, or Object Modes in Blender:
|
||||
|
||||
.. figure:: /images/addons_pdt_setup_4.png
|
||||
:width: 720px
|
||||
|
||||
Note! Only Edit and Object Modes are supported by PDT at present,
|
||||
Further, only Mesh Objects are supported, not Curves for now.
|
||||
|
||||
Note! From Version 1.1.8, Menu widths will affect how the menus are arranged,
|
||||
with less items per row as the width decreases below a threshold set in the PDT add-on's Preferences.
|
||||
Here are two sample Images:
|
||||
|
||||
.. figure:: /images/addons_pdt_op_1.png
|
||||
:width: 250px
|
||||
|
||||
.. figure:: /images/addons_pdt_op_2.png
|
||||
:width: 300px
|
||||
|
||||
Note! PDT Add-on Preferences now also sets the Parts Library location and Debug mode.
|
||||
|
||||
.. figure:: /images/addons_pdt_op_3.png
|
||||
:width: 420px
|
@ -1,186 +0,0 @@
|
||||
|
||||
****************************************
|
||||
Worked Example - Building A Book Scanner
|
||||
****************************************
|
||||
|
||||
In this page we will show how to make complex parts of this book scanner using PDT.
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_1.png
|
||||
:width: 450px
|
||||
|
||||
This is considered a typical CAD design and consists of many parts
|
||||
that can be made by extruding a profile to make the 3D mesh.
|
||||
It should be noted that this is a preferred manner to work in the CAD environment,
|
||||
rather than starting with a 3D mesh and carving bits out of it.
|
||||
We will start with a component that has a hole in it so that process is explained properly.
|
||||
|
||||
**Making the End Panels.**
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_2.png
|
||||
:width: 450px
|
||||
|
||||
The End Panel in Edit Mode.
|
||||
|
||||
For this we will start with a single vertex object at 0,0,0 (You will need to load the "Extra Objects" Add-on).
|
||||
|
||||
I placed all objects, apart from the wheels at the World Center for ease,
|
||||
so the start point for this component is 0.39,-0.32,-0.3.
|
||||
The first thing to do therefore is move this single vertex in Edit mode to that location.
|
||||
For this there are two choices:
|
||||
|
||||
+ Set Cartesian Coordinates to 0.39,-0.32,-0.3 respectively, set operation to ``Move`` and click ``Delta``.
|
||||
+ **OR** Key gd0.39,-0.32,-0.3 into Command Line.
|
||||
|
||||
Now we need to extrude this vertex 0.64 in Y:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0.64,0 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
||||
+ **OR** Key vd,0.64, into Command Line.
|
||||
|
||||
Select both vertices and extrude 0.7 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0,0.7 respectively, set operation to **Extrude Vertices** and click ``Delta``.
|
||||
+ **OR** Key vd,,0.7 into Command Line.
|
||||
|
||||
Copy leftmost of the new vertices 0,0.065,0.14:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0.065,0.14 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
||||
+ **OR** Key dd,0.065,0.14 into Command Line.
|
||||
|
||||
Extrude new vertex -0.04 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0,-0.04 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
||||
+ **OR** Key vd,,-0.04 into Command Line.
|
||||
|
||||
You should now have this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_3.png
|
||||
:width: 450px
|
||||
|
||||
I have selected two vertices, join these two together with **Join 2 Verts** Tool.
|
||||
|
||||
Select Top Left vertex and extrude it 0.02 in Y:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0.02,0 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
||||
+ **OR** Key vd,0.02, into Command Line.
|
||||
|
||||
Extrude 0.16 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0,0.16 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
||||
+ **OR** Key vd,,0.16 into Command Line.
|
||||
|
||||
You should now have this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_4.png
|
||||
:width: 450px
|
||||
|
||||
Duplicate the selected vertices to the other side:
|
||||
|
||||
Set 3D Cursor, SHIFT+D, CTRL+M Y - standard Blender commands.
|
||||
|
||||
Join the gaps using ``Join 2 Verts`` and you get this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_5.png
|
||||
:width: 450px
|
||||
|
||||
Select the vertices shown, they need filleting:
|
||||
|
||||
+ Set ``Radius`` to 0.03, ``Profile`` to 0.5 and ``Segments`` to 6, click ``Fillet``.
|
||||
+ **OR** Key fv0.03,6,0.5 into Command Line.
|
||||
|
||||
This is the result:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_6.png
|
||||
:width: 450px
|
||||
|
||||
Copy bottom left vertex 0.12 in Y & 0.1 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0.12,0.1 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
||||
+ **OR** Key dd,0.12,0.1 into Command Line.
|
||||
|
||||
Extrude 0.45 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,0,0.45 respectively, set operation to ``Extrude Geometry`` and click ``Delta``.
|
||||
+ **OR** Key vd,,0.45 into Command Line.
|
||||
|
||||
Extrude 0.15 in Y, 0.31 in Z:
|
||||
|
||||
+ Set Cartesian Coordinates to 0,015,0.31 respectively, set operation to ``Extrude Geometry`` and click ``Delta``.
|
||||
+ **OR** Key vd,0.15,0.31 into Command Line.
|
||||
|
||||
Duplicate these new vertices to the other side:
|
||||
|
||||
Set 3D Cursor, SHIFT+D, CTRL+M Y - standard Blender commands.
|
||||
|
||||
Join the gaps using ``Join 2 Verts`` and you get this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_7.png
|
||||
:width: 450px
|
||||
|
||||
Select the vertices shown, they need filleting:
|
||||
|
||||
+ Set ``Radius`` to 0.03, ``Profile`` to 0.5 and ``Segments`` to 6, click ``Fillet``.
|
||||
+ **OR** Key fv0.03,6,0.5 into Command Line.
|
||||
|
||||
You should now have this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_8.png
|
||||
:width: 450px
|
||||
|
||||
Join these two vertices each side using ``Join 2 Verts`` Tool giving this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_9.png
|
||||
:width: 450px
|
||||
|
||||
Select these vertices and key F - (Blender Face command) to give this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_10.png
|
||||
:width: 450px
|
||||
|
||||
Switch selection (CTRL+I), select four vertices across joins and make Face again giving this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_11.png
|
||||
:width: 450px
|
||||
|
||||
Duplicate entire geometry -0.02 in X:
|
||||
|
||||
+ Set Cartesian Coordinates to -0.02,0,0 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
||||
+ **OR** Key dd-0.02,, into Command Line.
|
||||
|
||||
You should now have this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_12.png
|
||||
:width: 450px
|
||||
|
||||
Select both outer edge rings and choose ``Edge`` => ``Bridge Edge Loops``,
|
||||
repeat for inner edge loops to get all the faces:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_13.png
|
||||
:width: 450px
|
||||
|
||||
Shown in Face Mode
|
||||
|
||||
Exit Edit Mode, name object "End-R" and duplicate Object (SHIFT+D), rename this new object "End-L".
|
||||
|
||||
Edit new "End-L" Object and mirror all faces about X Axis.
|
||||
|
||||
+ Set 3D Cursor.
|
||||
+ Select All Geometry.
|
||||
+ Key CTRL+M.
|
||||
+ Key SHIFT+N to normalize faces.
|
||||
|
||||
You should now have two ends like this:
|
||||
|
||||
.. figure:: /images/addons_pdt_scan_14.png
|
||||
:width: 450px
|
||||
|
||||
You should be able to see the advantages of making end profiles,
|
||||
then bridging the edge loops to make an extruded shape.
|
||||
This avoids duplicated geometry and also allows for holes in the object by making faces that split across the hole.
|
||||
I would then add an **Edge Modifier** to the objects to clean up the shading and of course make a suitable material.
|
||||
|
||||
You can also see that we can either use ``PDT Design Functions & Tools``,
|
||||
or use ``PDT Command Line`` to just type in the commands.
|
||||
|
||||
We can use the same principles to make all the other components.
|
||||
|
||||
_To Be Continued..._
|
@ -1,198 +0,0 @@
|
||||
|
||||
************
|
||||
Command Line
|
||||
************
|
||||
|
||||
This section deals with the PDT Command Line, a system whereby PDT Operations & Tools
|
||||
can be entered as keyed text rather than using the buttons and input boxes.
|
||||
|
||||
The Menu For Command Line
|
||||
|
||||
.. figure:: /images/addons_pdt_command_1.png
|
||||
:width: 450px
|
||||
|
||||
Here the Cursor has been set with the command **cd-1.5,,**
|
||||
placing the cursor negative 1.5 in X from the selected vertex.
|
||||
|
||||
PDT has a **Command Input**, which activates when you press Return. this takes two letters,
|
||||
followed by numbers separated by commas ",". Valid Primary letters are, can be capitals, or lower case:
|
||||
|
||||
* C = Cursor commands.
|
||||
* D = Duplicate commands
|
||||
* E = Extrude Geometry commands
|
||||
* F = Fillet Commands
|
||||
* G = Grab, or move commands.
|
||||
* N = New Vertex commands.
|
||||
* P = Pivot commands.
|
||||
* S = Split Edges.
|
||||
* V = Extrude Vertices only, not their edges, or faces.
|
||||
|
||||
Valid Secondary letters are, can be capitals, or lower case:
|
||||
|
||||
* A = Absolute, or World coordinates and requires 3 numbers separated by 2 commas,
|
||||
zeros may be omitted, so ***cd2,,1*** is valid.
|
||||
* D = Delta, or incremental coordinates and has the same requirements as A.
|
||||
* I = Direction and requires a distance and an angle, separated by a comma,
|
||||
from View Horizontal, so **ei2,135.6** means extrude geometry 2 units at 135.6 degrees
|
||||
from positive view X axis. Valid Angle range is +-180.
|
||||
* P = Use a percentage value to, for example, split an edge,
|
||||
so **sp30** means split edge at 30% of the way along it.
|
||||
|
||||
|
||||
Principles:
|
||||
===========
|
||||
|
||||
To operate the Command Line, first you must RMB-click in the input box, then type,
|
||||
or amend the command there, then press ``Return`` to activate the command.
|
||||
I will explore ways of capturing commands directly from the keyboard,
|
||||
maybe by using a "trigger" input first.
|
||||
|
||||
For example, key ALT+P first then the command, with a "watcher" routine
|
||||
to send subsequent inputs to the command line, I do not know if this is possible yet.
|
||||
|
||||
|
||||
Operations (First Letter):
|
||||
==========================
|
||||
|
||||
**Cursor** Commands will use the ``Plane`` setting for commands related to distance
|
||||
and angle and also will use the ``Mode`` setting of either Current, or Selected.
|
||||
This setting related to whether incremental cursor changes are relative
|
||||
to the current position of the cursor, or the ``Active`` vertex.
|
||||
|
||||
A command of **cp30** will place the cursor 30% of the way between two selected vertices for example.
|
||||
Error messages will tell you if your command is not a valid option,
|
||||
or if you do not have sufficient vertices/objects selected, or if you do not have sufficient values in your command.
|
||||
For example, **d** options (delta) require three values separated by two commas,
|
||||
**p** options require only one value. Mathematical Expressions are not evaluated in this way.
|
||||
In other cases, all missing values, or invalid values are converted to 0.
|
||||
|
||||
**Pivot Point** Commands, like cursor commands, will use the ``Plane`` setting for commands
|
||||
related to distance and angle and also will use the Mode setting of either Current, or Selected.
|
||||
This setting related to whether incremental cursor changes are relative
|
||||
to the current position of the cursor, or the Active vertex.
|
||||
|
||||
A command of **pi1,135** will place the Pivot Point 1m at 135 degrees from the Active vertex.
|
||||
|
||||
.. figure:: /images/addons_pdt_command_6.png
|
||||
:width: 450px
|
||||
|
||||
**Grab** commands will move selected objects, or vertices by the values input,
|
||||
so if ``Plane`` is set to ``View`` and the command is **gi1.5,38.75**
|
||||
the selection will be moved a distance of 1.5 at 38.75 degrees to the view's
|
||||
horizontal axis and in line with the views orientation to your screen.
|
||||
|
||||
**New Vertex** commands will place a new vertex as described by the values,
|
||||
so **na1.5,,1.2** will place a new vertex at Absolute (Global if you prefer) X = 1.5, Y = 0 , Z = 1.2.
|
||||
|
||||
**Extrude Vertices** commands will only extrude the selected vertices, not their associated edges, or faces.
|
||||
A command of **vd,3,** will extrude the selected vertices 0 in X, 3 in Y and 0 in Z.
|
||||
|
||||
**Duplicate Geometry** commands will duplicate the selected geometry.
|
||||
A command of **dd,5,** will duplicate the selected geometry 0 in X, 5 in Y and 0 in Z.
|
||||
|
||||
**Extrude Geometry** commands will extrude the selected geometry, edges and faces included.
|
||||
A command of **ed1,3,2** will extrude the selected geometry 1 in X, 3 in Y and 2 in Z.
|
||||
|
||||
**Split** commands can be operated in a number of geometry situations,
|
||||
so for example, if you want to split a Face like this:
|
||||
|
||||
.. figure:: /images/addons_pdt_command_2.png
|
||||
:width: 450px
|
||||
|
||||
Image showing the new vertex inserted 25% of the way along the edge using the command **sp25**.
|
||||
|
||||
In this next scenario, we have split an extruded Face, producing an Ngon:
|
||||
|
||||
.. figure:: /images/addons_pdt_command_3.png
|
||||
:width: 450px
|
||||
|
||||
Command was **sd0.2,,** a new edge has been created and topological integrity preserved.
|
||||
|
||||
In all cases the edges are split in two and then new vertex/vertices from these operations
|
||||
are then moved according to the command parameters. If you select such a combination of edges
|
||||
as to make a face, an error message is returned and the operation cancelled as this will,
|
||||
in all likelihood, result in bad topology.
|
||||
|
||||
**Fillet** commands will Fillet, or Bevel a corner, for single vertex corners, as in an edge loops,
|
||||
use the _v_ second letter, for edges, use _e_ second letter. this command requires 3 values;
|
||||
radius, number of segments and profile. Profile should be in range 0 to 1, 0.005 is a _convex_ fillet,
|
||||
0.5 is a _concave_ fillet. So a command of **fv1.5,6,0.5** will fillet vertices to radius 1.5,
|
||||
6 segments, concave fillet.
|
||||
|
||||
|
||||
Note!
|
||||
=====
|
||||
|
||||
Obviously unworkable commands like **da1,3,4** (duplicate geometry to an absolute location,
|
||||
resulting in all duplicate vertices having the same location) will quite reasonably result in an error message.
|
||||
|
||||
|
||||
Maths Mode:
|
||||
===========
|
||||
|
||||
Maths function ("M" primary letter) enable maths calculations to be input into other input boxes in PDT Design,
|
||||
so for example if you want to set the X input to **1.2 * Sine(54)**, that can be done.
|
||||
Additional Second Letters are introduced for this function, namely:
|
||||
|
||||
* X - send output to X Coord.
|
||||
* Y - send output to Y Coord.
|
||||
* Z - send output to Z Coord.
|
||||
* D - send output to Distance.
|
||||
* A - send output to Angle.
|
||||
* P - send output to Percent.
|
||||
* O - Send Output to Maths Out Field.
|
||||
|
||||
So, in the option quoted above, a command of **mx(1.2*sin(radians(54)))**
|
||||
results in the X coord being set to **0.97082**:
|
||||
|
||||
.. figure:: /images/addons_pdt_command_4.png
|
||||
:width: 300px
|
||||
|
||||
Alternatively a command of **md4*sqrt(2)** results in the Distance input being set to **5.65685**:
|
||||
|
||||
.. figure:: /images/addons_pdt_command_5.png
|
||||
:width: 300px
|
||||
|
||||
From Version 1.1.8, Maths Function now can output to the Maths Output field:
|
||||
|
||||
.. figure:: /images/addons_pdt_command_7.png
|
||||
:width: 300px
|
||||
|
||||
Here the command **mosqrt(34)*(2.3**3)** was used, meaning; Maths, Output, Square Root of 34 times 2.3 cubed.
|
||||
This value can be copied by floating your mouse over the field and keying CTRL+C, it can then be pasted anywhere.
|
||||
|
||||
There is also a **Re-Run Last Command** button to submit the last command line input, as shown in the image above.
|
||||
|
||||
|
||||
Command Line Additions for v1.2.0 & above.
|
||||
==========================================
|
||||
|
||||
With the introduction of v1.2.0, more commands have been introduced to the Command Line module, they are:
|
||||
|
||||
**ad2** Does what *Set A/D 2D* button does, ie. measure distance & angle from 2 points.
|
||||
|
||||
**ad3** Does what *Set A/D 3D* button does, ie. measure distance & angle from 3 points.
|
||||
|
||||
**j2V** Does what *Join 2 Verts* button does, i.e. join 2 vertices into an edge.
|
||||
|
||||
**bis** Does what *Bisect* button does, i.e. bisect two intersecting edges.
|
||||
|
||||
**etf** Does what *Edge To Face* button does, i.e. extrude edge to intersecting face.
|
||||
|
||||
**intall** Does what *Intersect All* button does, i.e. break a set of edges where they intersect.
|
||||
|
||||
**tap** Does what *Taper* button does, i.e. taper geometry at a user defined angle and axis set.
|
||||
|
||||
**otc** Does what *Origin To Cursor* button does, i.e. set the object origin to the cursor location.
|
||||
|
||||
Then there are the three special cases of **nml**, **cen** & **int**.
|
||||
These should be preceded by the Operation letter, see Valid First Letters above,
|
||||
so putting the cursor at the intersection of two edges would be done with the command **cint**,
|
||||
creating a new vertex at the normal intersection would be done with the command **vnml**.
|
||||
|
||||
Clicking on any of the buttons in ``PDT Design Operations``, or ``PDT Design Tools``
|
||||
will write the equivalent command line expression into the command line input.
|
||||
So for example, filleting edges at 0.5 radius, 6 segments and 0.05 profile,
|
||||
as set in the inputs & using the *Fillet* button will write **fe0.5,5,0.05** into the command line input.
|
||||
|
||||
Entering a blank expression into the command line will result in **No Action**, i.e. it will be ignored.
|
@ -1,251 +0,0 @@
|
||||
|
||||
************
|
||||
Design Tools
|
||||
************
|
||||
|
||||
The Menu for PDT Tools:
|
||||
|
||||
.. figure:: /images/addons_pdt_design_7.png
|
||||
:width: 400px
|
||||
|
||||
This section of the menu deals with the Tools, which work with their own variables,
|
||||
in some cases, they also use the Working Plane.
|
||||
|
||||
|
||||
Set A/D 2D:
|
||||
===========
|
||||
|
||||
This button is used to measure the angle relative to horizontal in the Working Plane subtended by two vertices,
|
||||
or two objects. You can see a full list of available options in the table on the previous page (Before You Begin)
|
||||
for both Edit and Object modes.. Here the ``Working Plane`` setting is important, because, if set to ``View``,
|
||||
the output will be calculated relative to the views local axes, however the view is oriented,
|
||||
otherwise it works with the global axes for the view.
|
||||
|
||||
Output: Sets the Distance, Angle, X, Y & Z input variables.
|
||||
|
||||
Selection: in Edit Mode select two vertices with your mouse,
|
||||
the Active vertex is considered to be the center of rotation, or fulcrum point.
|
||||
In Object Mode the Active object is similarly considered.
|
||||
|
||||
**Example 1**: Set the Input variables to two vertices in Edit Mode in Front view,
|
||||
set ``Working Plane`` to Front, select the rotational vertex, select the center vertex.
|
||||
The Distance variable is set to the apparent separation fo the two vertices in the front view,
|
||||
the Angle is set to the apparent angle relative to horizontal in the front view, the X, Y & Z
|
||||
inputs are set to the delta offset between the two vertices in the ``view`` axes.
|
||||
|
||||
**Example 2**: Set the Input variables to two objects in Object Mode in Top view,
|
||||
set ``Working Plane`` to Top(X-Y), select the rotational object, select the center object.
|
||||
The Distance variable is set to the apparent separation of the two objects in the top view,
|
||||
the Angle is set to the apparent angle relative to horizontal in the top view, the X, Y & Z
|
||||
inputs are set to the delta offset between the two vertices in the ``view`` axes.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_8.png
|
||||
:width: 400px
|
||||
|
||||
Parameters set from two Vertices in Front Working Plane.
|
||||
|
||||
|
||||
Set A/D 3D:
|
||||
===========
|
||||
|
||||
This button is used to measure the angle subtended by three vertices, or three objects.
|
||||
You can see a full list of available options in the table on the previous page (Before You Begin)
|
||||
for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant because the angle is calculated in 3D space.
|
||||
|
||||
Output: Sets the Distance, Angle, X, Y & Z input variables.
|
||||
|
||||
Selection: in Edit Mode select three vertices with your mouse,
|
||||
the Active vertex is considered to be the center of rotation, or fulcrum point.
|
||||
In Object Mode the Active object is similarly considered.
|
||||
|
||||
**Example 1**: Set the Input variables to three vertices in Edit Mode,
|
||||
select the two rotational vertices, select the center vertex.
|
||||
The Distance variable is set to the real separation of the first vertex and center vertex in the front view,
|
||||
the Angle is set to the real angle between the three vertices, X, Y & Z inputs
|
||||
are set to the delta offset between the first and center vertices.
|
||||
|
||||
**Example 2**: Set the Input variables to three objects in Object Mode, select the two rotational objects,
|
||||
select the center object. The Distance variable is set to the real separation of the first vertex
|
||||
and center vertex in the front view, the Angle is set to the real angle between the three vertices,
|
||||
X, Y & Z inputs are set to the delta offset between the first and center objects.
|
||||
|
||||
|
||||
Join 2 Vertices:
|
||||
================
|
||||
|
||||
This button is used to join two disconnected vertices that do not form part of the same face.
|
||||
You can see a full list of available options in the table on the previous page (Before You Begin)
|
||||
for both Edit and Object modes. Here the ``Working Plane`` setting is irrelevant.
|
||||
This Tool works only in Edit Mode.
|
||||
|
||||
Selection: Select two vertices by any method.
|
||||
|
||||
**Example 1**: Join two vertices, select two vertices that do not form part of the same face.
|
||||
If the vertices do form part of the same face you should use the standard Blender ``Join`` command (hotkey j).
|
||||
|
||||
.. figure:: /images/addons_pdt_design_9.png
|
||||
:width: 300px
|
||||
|
||||
The two Vertices have been joined to form, in this case, a Closed Loop, Before on the Left, After on the Right.
|
||||
|
||||
|
||||
Origin To Cursor:
|
||||
=================
|
||||
|
||||
This button is used to set the Object Origin to the current Cursor location.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works in Edit & Object Modes.
|
||||
|
||||
Selection: None required in Edit Mode, select one object in Object Mode.
|
||||
|
||||
**Example 1**: Set Object Origin to 1,3,2 in Edit Mode, set X, Y & Z inputs to 1,3,2 respectively,
|
||||
set ``Operation`` to Cursor, click ``Absolute`` button to move cursor. Click ``Origin To Cursor`` Tool,
|
||||
Origin is moved, but geometry is not moved from its absolute position in World Space.
|
||||
|
||||
|
||||
Taper:
|
||||
======
|
||||
|
||||
This button is used to set the Object Origin to the current Cursor location.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works only in Edit Mode.
|
||||
|
||||
Uses: ``Move/Rot`` Axis Selector.
|
||||
|
||||
Selection: Select vertices to be moved, then select fulcrum vertex with SHIFT+Mouse,
|
||||
active vertex is considered the rotational center.
|
||||
|
||||
**Example 1**: Taper the end of a cube in front view - 25 degrees,
|
||||
set Angle to -25 degrees (25 degrees clockwise), select all vertices to be tapered,
|
||||
SHIFT+Mouse select center of rotation point vertex, set Move/Rot selector to ``RotY,MovX``,
|
||||
set Working Plane to Front(X-Z), click ``Taper``.
|
||||
|
||||
The significance of ``RotY,MovX`` is that the Y axis is used as the rotation axis
|
||||
and vertices will be moved along the X axis, in View ``Working Plane`` Mode,
|
||||
remember these are then ``Local`` axes, not ``Global`` ones.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_10.png
|
||||
:width: 400px
|
||||
|
||||
Before, the face is at 90 degrees to horizontal.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_11.png
|
||||
:width: 400px
|
||||
|
||||
After the face is now at 65 degrees to horizontal.
|
||||
|
||||
|
||||
Intersect All:
|
||||
==============
|
||||
|
||||
This button is used to cut edges at any point they intersect with other selected edges.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works only in Edit Mode.
|
||||
|
||||
Selection: Select a set of Edges by any method.
|
||||
|
||||
**Example 1**: Cut a set of edges at every point where they overlap, or intersect,
|
||||
select required edges, click ``Intersect All`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_12.png
|
||||
:width: 400px
|
||||
|
||||
Selected Edges Before.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_13.png
|
||||
:width: 400px
|
||||
|
||||
Selected Edges After, some have been removed.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_14.png
|
||||
:width: 400px
|
||||
|
||||
Selected Edges After Extrusion.
|
||||
|
||||
|
||||
Bisect:
|
||||
=======
|
||||
|
||||
This button is used to form a Bisecting Edge between two other co-planar edges.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works only in Edit Mode.
|
||||
|
||||
Selection: Select two Edges by any method.
|
||||
|
||||
**Example 1**: Bisect two edges, select 2 co-planar edges, click ``Bisector`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_15.png
|
||||
:width: 400px
|
||||
|
||||
Bisected Edges, Before on Left, After on Right, you can see both Bisectors have been drawn.
|
||||
|
||||
|
||||
Edge To Face:
|
||||
=============
|
||||
|
||||
This button is used to project an edge to its intersection with a disconnected face.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works only in Edit Mode.
|
||||
|
||||
Selection: Select only one edge and one disconnected face.
|
||||
|
||||
The intersection point need to lie within the area of the face.
|
||||
|
||||
**Example 1**: Extend one edge to a disconnected face, select one edge and one face, click ``Edge To Face``.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_16.png
|
||||
:width: 400px
|
||||
|
||||
Edge Extended, Before on Left, After on Right.
|
||||
|
||||
|
||||
Fillet:
|
||||
=======
|
||||
|
||||
This button is used to fillet the corners of geometry, either closed edge loops, or edges.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
||||
setting is irrelevant. This Tool works only in Edit Mode.
|
||||
|
||||
Uses: ``Radius``, ``Segments`` & ``Profile`` inputs & ``Use Vertices`` checkbox.
|
||||
|
||||
Selection: Any number of vertices, or edges by any method.
|
||||
|
||||
The Profile settings is the same as for Blender Bevel command, i.e.
|
||||
ranges from 0 to 1, 0.05 is a convex fillet, 0.5 is a concave fillet.
|
||||
|
||||
**Example 1**: Fillet a closed loop of edges at each corner radius 0.5, 6 segments,
|
||||
profile 0.5, select corner vertices to be filleted, set ``Radius`` to 0.5,
|
||||
set ``Segments`` to 6, set Profile to 0.5, check ``Use Vertices``.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_17.png
|
||||
:width: 400px
|
||||
|
||||
The image shows two Before and Afters, in the bottom set Use Vertices was checked,
|
||||
in the top set it was not, this is how to fillet edges.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_24.png
|
||||
:width: 400px
|
||||
|
||||
Another Before and After, you can see the settings used to produce this.
|
||||
|
||||
Tip! Using an **even** number of segments will result in better topology (no tris)
|
||||
where three bevels meet at 90 degree offsets, for example.
|
||||
|
||||
Note! From version 1.1.8 the Fillet Tool now has an **Intersect** checkbox.
|
||||
When this is activated the toll will accept only two non-connected edges,
|
||||
or four vertices representing two non-connected edges. These two edges and first intersected,
|
||||
then the intersection vertex is filleted. The ``Use Verts``
|
||||
checkbox is ignored in this mode of operation. Should these two edges
|
||||
not intersect in the ``Working Plane``, an error is returned.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_25.png
|
||||
:width: 400px
|
||||
|
||||
Two examples of Before on the Left and After on the Right.
|
@ -1,60 +0,0 @@
|
||||
|
||||
******************
|
||||
Download & Install
|
||||
******************
|
||||
|
||||
Precision Drawing Tools (PDT) now ships with Blender.
|
||||
In this case you need only enable the Add-on in the Add-on Preferences.
|
||||
|
||||
However, the latest releases can be found on our GitHub.
|
||||
|
||||
Downloads should only be taken the from the
|
||||
`official releases page <https://github.com/Clockmender/Precision-Drawing-Tools/releases>`__.
|
||||
|
||||
|
||||
Patches and Commits, that may add new features and/or bug fixes may be downloaded
|
||||
from the Commits to the Master branch, no development code should be used
|
||||
in any Production Environment, unless you accept that it is at your own risk.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Installation should only be carried out in accordance with standard Blender Add-on procedure.
|
||||
|
||||
.. figure:: /images/addons_pdt_install.png
|
||||
:width: 420px
|
||||
|
||||
Add-on will be displayed in the "N" (Ui) Panel of the 3D view under its own Tab as shown below:
|
||||
|
||||
.. figure:: /images/addons_pdt_ui_menu.png
|
||||
:width: 220px
|
||||
|
||||
Only one PDT menu (Design) is shown as expanded, by default all menus are expanded when the add-on is loaded.
|
||||
|
||||
|
||||
Optional Button Labels, Messages, Descriptions, etc.
|
||||
====================================================
|
||||
|
||||
All Button labels, Input Descriptions & Messages in PDT are stored in the file:
|
||||
``pdt_msg_strings.py`` You may edit this file to reflect any changes you want in button names,
|
||||
etc. but only edit the portion in quotes, do not add any new lines, or delete any lines
|
||||
and do not change any of the ``PDT_`` assignments at the start of each line, for some options,
|
||||
alternatives have been suggested as shown below:
|
||||
|
||||
.. figure:: /images/addons_pdt_msg_edit.png
|
||||
:width: 620px
|
||||
|
||||
It is recommended that you save a backup of this file in a safe location
|
||||
on your computer before performing any edits.
|
||||
|
||||
You might also like to translate these into your own language,
|
||||
again only edit the message section in quotes, not the PDT assignments.
|
||||
|
||||
|
||||
Issues
|
||||
======
|
||||
|
||||
Please report any issues, or feature request, etc. using the Issues section of the
|
||||
`PDT Repository <https://github.com/Clockmender/Precision-Drawing-Tools/issues>`__,
|
||||
that way they can be properly tracked, actioned and incorporated into the add-on.
|
@ -1,103 +0,0 @@
|
||||
|
||||
************
|
||||
PDT Examples
|
||||
************
|
||||
|
||||
Example Models will be shown here, built Exclusively with PDT, Offset Edges and MeasureIt Add-ons.
|
||||
|
||||
This first one may not look too remarkable, except that it is totally accurate to dimensions,
|
||||
not approximately, taken from tracing a reference image.
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_1.png
|
||||
:width: 450px
|
||||
|
||||
The draft angles on this half-casting are exactly 5 degrees,
|
||||
the length of sides between the radii are exactly to a dimension.
|
||||
All intersect points of faces have been placed accurately using PDT,
|
||||
not guessed from a zoomed in view. All fillets are exactly to a dimension and exactly in the right place.
|
||||
|
||||
Most of the accuracy of this model would be either impossible, or so very complicated,
|
||||
to achieve with Blender on its own. With PDT and Offset Edges,
|
||||
it was quick and easy to achieve this kind of topology, suitable for mechanical models,
|
||||
at a very high level of precision (constrained only by the storage of coordinates in Blender).
|
||||
You can also see the Pivot Point of this model, stored in its Custom Property.
|
||||
|
||||
|
||||
Example 1 Construct a Casting:
|
||||
==============================
|
||||
|
||||
**Stage 1:**
|
||||
|
||||
This example has been executed from the PDT Command Line section.
|
||||
|
||||
* Set Move Mode to ``Selected Entities.``
|
||||
* Place Vertex at 0,0,0 – Command **na,,**
|
||||
* Extrude 20 at 0 degrees – Command **ei20**, Working Plane set to ``Front(X-Z)``
|
||||
* Place Cursor at fillet radius center. – Command **ci22.5,90**
|
||||
* Spin 85 Degrees – Blender Spin -85 degrees
|
||||
* Extrude 50 at 85 degrees – Command **ei50,85**
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_2.png
|
||||
:width: 450px
|
||||
|
||||
**Stage 2:**
|
||||
|
||||
* Duplicate first Vertex 150 in X 100 in Z – Command **dd150,,100**
|
||||
* Extrude 100 at 180 degrees – Command **ei100,180**
|
||||
* Intersect Corner – ``Operation`` = ``Move``, All/Active Selected, click ``Intersect``
|
||||
* Extrude 100 in Y – Command – **ei100,90** Working Plane set to ``Top(X-Y)``
|
||||
* Bevel Corner – Blender Command Bevel, 25mm
|
||||
* Offset Edges 2.5 – Offset Edges Extrude Command.
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_3.png
|
||||
:width: 450px
|
||||
|
||||
**Stage 3:**
|
||||
|
||||
* Spin in Top View – Blender Spin Command, 62.5 degrees
|
||||
* Extrude 47.5 at 27.5 degrees – Command **ei47.5,27.5**
|
||||
* Spin in Top View – Blender Spin Command, 27.5 degrees
|
||||
* Extrude 30 at 0 degrees – Command **ei30**,
|
||||
* Complete highlighted faces using standard Blender techniques to get this:
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_5.png
|
||||
:width: 450px
|
||||
|
||||
Then simply extrude the two front face corners level with the cursor
|
||||
in X and then selected vertices to make the faces with F key.
|
||||
|
||||
This model is accurate to dimensions, draft angles and corner radii.
|
||||
All the command line inputs could be replaced by using the ``Operation``
|
||||
options and ``Command`` buttons instead.
|
||||
|
||||
Optionally, to improve topology, one could rationalize the top faces to this:
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_6.png
|
||||
:width: 450px
|
||||
|
||||
It would depend on what we wanted to do ultimately with the top faces, like maybe cut holes in them.
|
||||
|
||||
|
||||
Example 2 - Modify a Hydraulic Cylinder:
|
||||
========================================
|
||||
|
||||
Take this mesh, we have no idea at what angle the mesh lies,
|
||||
since it was drawn to a delta measurement not a directional measurement:
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_7.png
|
||||
:width: 450px
|
||||
|
||||
We now want to make it longer along the angle at which it lies, by a known amount,
|
||||
so we first use the ``Set A/S 2D`` tool to set the angle:
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_8.png
|
||||
:width: 450px
|
||||
|
||||
You can see the angle was 9.9935 degrees, we then input the distance we require in the ``Distance`` input box,
|
||||
set ``Operation`` to ``Move`` and click the ``Direction`` command to get this:
|
||||
|
||||
.. figure:: /images/addons_pdt_examples_9.png
|
||||
:width: 450px
|
||||
|
||||
You can see the selected vertices have been moved exactly 3000mm at exactly 9.9935 degrees.
|
||||
This is one of the main reasons why PDT exists, to do just this type of precise alteration of geometry.
|
@ -1,61 +0,0 @@
|
||||
|
||||
**************
|
||||
Holes in Faces
|
||||
**************
|
||||
|
||||
This section will look at some alternative ways of dealing with holes in surface.
|
||||
In Blender, holes are generally dealt with by using boolean modifiers,
|
||||
or boolean operations in Edit mode.
|
||||
These result in many quad, or tri faces on what is essentially a flat surface.
|
||||
CAD Designers would traditionally want a flat complex face to be an Ngon,
|
||||
since Sub-Division modifiers would not be used for this type of modeling.
|
||||
|
||||
Alternative methods include using 2D curve surface, where any internal faces are treated as holes.
|
||||
The disadvantage of this system is that to include these in a vertex mesh they must first be converted to meshes,
|
||||
resulting in many tris on the flat face, again causing problems because these cannot be beveled.
|
||||
|
||||
|
||||
PDT Approach to Holes:
|
||||
======================
|
||||
|
||||
In PDT, we have adopted a new approach of cutting the front face into as few Ngons
|
||||
as possible to accommodate holes. This is still not ideal and two other options are being advocated:
|
||||
|
||||
* Allow holes in faces as they are in 2D curve surfaces and CAD software packages.
|
||||
* Introduce "Hybrid" objects that can accommodate 2D curve surfaces and vertex meshes.
|
||||
|
||||
Allowing holes would mean that certain functions, like sculpting would not be possible,
|
||||
so this type of face would be excluded from such functions.
|
||||
|
||||
.. figure:: /images/addons_pdt_holes_1.png
|
||||
:width: 400px
|
||||
|
||||
You can see the front face is in fact two faces split across the hole.
|
||||
|
||||
The process was to remove the existing front face, draw the hole as a cylinder,
|
||||
then use PDT Join 2 Vertices to make the joining edges between the outer edge and the hole,
|
||||
then making two faces, by selecting edges and using the Blender Face (Hotkey F) command.
|
||||
|
||||
Below is an example of a 2D curve surface, with the settings shown to make it a filled surface:
|
||||
|
||||
.. figure:: /images/addons_pdt_holes_2.png
|
||||
:width: 400px
|
||||
|
||||
These curve surface can then be placed in front of a mesh object to make a face,
|
||||
but this will require Align tools in awkward rotational angles, something we have not released yet.
|
||||
The proviso on this is that you can never ``Apply`` the rotations used, but that is no hardship.
|
||||
|
||||
Below is what this looks like if converted to a mesh,
|
||||
producing totally unsuitable topology for precision modeling, or even beveling:
|
||||
|
||||
.. figure:: /images/addons_pdt_holes_3.png
|
||||
:width: 400px
|
||||
|
||||
This object has 146 faces, versus only 3 curves for the donor 2D curve surface.
|
||||
|
||||
Here is another example of a holed surface using PDT techniques:
|
||||
|
||||
.. figure:: /images/addons_pdt_holes_4.png
|
||||
:width: 400px
|
||||
|
||||
Count the Faces! - 49 holes, 3 faces on the front and 3 on the back.
|
@ -1,21 +0,0 @@
|
||||
|
||||
*****************************
|
||||
Precision Drawing Tools (PDT)
|
||||
*****************************
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
introduction.rst
|
||||
download.rst
|
||||
begin.rst
|
||||
operations.rst
|
||||
design_tools.rst
|
||||
holes_in_faces.rst
|
||||
view_control.rst
|
||||
command.rst
|
||||
pivot_point.rst
|
||||
library.rst
|
||||
trig_waves.rst
|
||||
examples.rst
|
||||
book_scanner.rst
|
@ -1,54 +0,0 @@
|
||||
|
||||
************
|
||||
Introduction
|
||||
************
|
||||
|
||||
.. figure:: /images/addons_pdt_main.png
|
||||
:width: 620px
|
||||
|
||||
Objects drawn with PDT and Dimensioned with MeasureIt
|
||||
|
||||
PDT is designed to work with Blender 2.8, and all subsequent builds.
|
||||
There are no versions for earlier versions of Blender.
|
||||
|
||||
The key objective is to make precision modeling easier and more capable
|
||||
in Blender in order to allow Designers of all genres to model accurately.
|
||||
|
||||
|
||||
Interestingly
|
||||
=============
|
||||
|
||||
There is definitely a difference in the way that "CAD Designers" and "Polygon Modelers" work.
|
||||
Polygon Modelers, the traditional Blender users, tend to start off with a basic primitive 3D mesh,
|
||||
like a Cube, or a Cylinder, then start to add Edge Loops to cut it up, to extrude sections to make
|
||||
it more complex, to add "holes" and then work these. They will often use Sub-Division modifiers
|
||||
to make the model more detailed, whereas CAD Designers consider these to largely be unsuitable
|
||||
and reduce accuracy. This means more vertices in the mesh from CAD modeler,
|
||||
but probably about the same after all has been taken into account.
|
||||
|
||||
CAD modelers would virtually never trace off a previous drawing, or photograph to model something,
|
||||
they will always work from quoted dimensions only. To this end think about a drawing
|
||||
at a scale of 50:1 - a line of width 0.5mm is effectively 25mm thick in the real world.
|
||||
Many drawings carry the mantra "Do Not Scale" - this is for a reason,
|
||||
old tradition hand-drawn drawings are not necessarily accurately drawn in the first place!
|
||||
|
||||
Traditional CAD Designers (I am using the term "CAD" for what is considered to be Computer Aided Design,
|
||||
products like SolidWorks, AutoCAD, MicroStation, etc.) tend to make an accurate flat loop,
|
||||
like the front of a bracket, or wall of a building , then extrude, or "loft" this into a 3D mesh.
|
||||
It has long been considered that this approach leads to more accurate models that could,
|
||||
for example, be used in 3D printing.
|
||||
|
||||
PDT aims to introduce this method of working into Blender, for the benefit and inclusion
|
||||
of all genres of CAD Designers and to augment the tools for the Polygon Modeler.
|
||||
It has been developed by a former Mechanical Design Engineer with many years
|
||||
experience in drawing offices, using hand drawing and CAD techniques.
|
||||
|
||||
|
||||
Nomenclature
|
||||
============
|
||||
|
||||
There is also the situation where CAD Designers and Polygon Modelers use different terms,
|
||||
like Absolute versus World coordinates, Delta versus Incremental, Directional versus Polar.
|
||||
Primitives themselves are also named differently, Vertices, Edges & Faces versus Points,
|
||||
Lines & Polygons - PDT takes care of this by providing a file that users can edit
|
||||
to input their own terms, including their own languages.
|
@ -1,120 +0,0 @@
|
||||
|
||||
*****************
|
||||
PDT Parts Library
|
||||
*****************
|
||||
|
||||
The Menu For Parts library
|
||||
|
||||
.. figure:: /images/addons_pdt_library_1.png
|
||||
:width: 300px
|
||||
|
||||
This module is in its infancy for releases up to and including 1.1.5 and is an attempt
|
||||
to organize a collection of parts, as objects, in a central repository.
|
||||
This library will consist of Objects, Collections and Materials.
|
||||
For now, these are placed in a holding blend file in Blender's:
|
||||
|
||||
"...../Scripts/Addons/clockworxpdt" folder (the location of the PDT Add-on).
|
||||
|
||||
|
||||
Principles:
|
||||
===========
|
||||
|
||||
The concept is to store parts as either individual objects, or in the case of more complex parts,
|
||||
like an engine assembly for example, as collections. The way Blender handles materials for append,
|
||||
or linked, objects is that if you load an object using Append, it will bring the materials of the object with it.
|
||||
If you append the part many times, you get many copies of the same material – not a situation that is efficient.
|
||||
So the recommendation for this trial system is to leave the materials off the objects and store them
|
||||
either against a "holder" object, or set a **fake user** so the material is always held in the library blend file.
|
||||
Then you can append, or link the material once and assign it to many copies of the appended, or linked object.
|
||||
|
||||
The plan is to expand the system so users can send objects, or collections, or material from their current
|
||||
open blend file to the Library blend file. This will be a further development in a later release,
|
||||
if this is possible. Parts Libraries have been in existence in CAD systems since the 1980’s
|
||||
where they were called "Cells" and had one, or many "Cell Libraries" to store them in, each cell
|
||||
had a user defined origin point that was used to place the part. The process was to put the cursor
|
||||
where you wanted the part, then call it by name and it would be placed with its origin at the cursor location.
|
||||
|
||||
PDT Parts Library uses the same method to store, recall and place parts at the cursor location:
|
||||
|
||||
.. figure:: /images/addons_pdt_library_2.png
|
||||
:width: 450px
|
||||
|
||||
This shows the Parts Library Menu and some sample parts brought in by either ``Appending``, or ``Linking``.
|
||||
|
||||
|
||||
Parts Library File:
|
||||
===================
|
||||
|
||||
The Parts Libraries can be located wherever you want them on your system. The location of your file,
|
||||
a normal Blender blend file, is set in the PDT Add-on Preference (:menuselection:`Preferences --> Add-ons`):
|
||||
|
||||
.. figure:: /images/addons_pdt_library_4.png
|
||||
:width: 450px
|
||||
|
||||
You can either type in the location and name of the file, or click the ``Folder`` icon and use Blender
|
||||
file select tools to navigate to your file. The Selectors in PDT are then automatically updated
|
||||
with your file's objects, collections and materials, subject to any search criteria.
|
||||
this can be changed at any time in your session to access data from another library file.
|
||||
|
||||
|
||||
The Options are:
|
||||
================
|
||||
|
||||
``Append`` – this will append the chosen Object, Collection,
|
||||
or Material from the library into your current blend file.
|
||||
|
||||
``Link`` – this will link the chosen Object, Collection,
|
||||
or Material from the library into your current blend file.
|
||||
|
||||
Whether you are going to work with objects, collections,
|
||||
or materials depends on the setting of the **Selector** next to the Link button.
|
||||
|
||||
The next three **Selectors** will show the ``Objects``, ``Collections`` and ``Materials``
|
||||
in the Library blend file, either all of them, or filtered by the Search input next to each Selector.
|
||||
|
||||
The ``Search`` strings consist of any characters that appear anywhere in the Object’s,
|
||||
Collection’s, or Material’s Name. So searching with ``gear`` in the search box will find,
|
||||
for example, objects named ``25T 20mm gear``, or ``gears – 20mm 25teeth``, etc.
|
||||
|
||||
The principle of operation is therefore:
|
||||
|
||||
* Place the 3D cursor where you want the objects to be located.
|
||||
* Enter any required search criteria, to narrow the list shown in the selector.
|
||||
* Select the type to work with; Objects, Collections, or Materials.
|
||||
* Select the required object, collection, or material.
|
||||
* Click either ``Append``, or ``Link``.
|
||||
|
||||
At the moment, if you bring in a collection, ALL objects in that collection are placed
|
||||
at the cursor location. The purpose of this is to bring in complex models and assume
|
||||
that they will be placed "as one" at the cursor location, this also assumes that
|
||||
they were built as a number of objects with a shared origin in the library.
|
||||
|
||||
The suggestion at this stage that materials can be imported and used on each object
|
||||
to which they are appropriate, it may be that many parts share a common material,
|
||||
in which case, using this approach does not result in many duplicate materials in the blend file.
|
||||
|
||||
The ``Show Library File`` button will show the user in a popup the location of the parts library file,
|
||||
this is also printed to the console, if you are running Blender from a Terminal.
|
||||
This purpose of this is to make it easier to locate the parts library for editing.
|
||||
|
||||
The library file can be opened in Blender and edited like
|
||||
any blend file to add your own objects, collections and materials.
|
||||
|
||||
Here is an example of a series of engines that are used in many different bikes,
|
||||
trikes and three-wheelers, these have been Appended from the library file to
|
||||
a working blend file, then the materials assigned:
|
||||
|
||||
.. figure:: /images/addons_pdt_library_3.png
|
||||
:width: 450px
|
||||
|
||||
Each engine is modeled as a set of individual objects, organized as collections
|
||||
in the library blend file. All individual objects in each collection share a common
|
||||
origin point so they can be placed in the correct relative location.
|
||||
|
||||
An alternative under consideration at this stage would be to store in the parts library,
|
||||
only the unique components of these engines, they share cylinder barrels for example,
|
||||
then append, or link these into a project file and build whichever engine is required.
|
||||
|
||||
The system has been left deliberately fluid at this stage in development,
|
||||
so ideas can be explored and the system refined. it may be obviated
|
||||
by developments in Blender towards better and more capable Asset Management Systems.
|
@ -1,124 +0,0 @@
|
||||
|
||||
**********
|
||||
Operations
|
||||
**********
|
||||
|
||||
This section will deal with explaining what the various **Operations** do.
|
||||
You can see a full list of available options in the table on the previous page
|
||||
(Before You Begin) for both Edit and Object modes.
|
||||
|
||||
|
||||
Cursor:
|
||||
=======
|
||||
|
||||
This operation is concerned with placing the **Cursor** according to the various operators.
|
||||
it can place the Cursor by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional``
|
||||
Coordinates and either relative to its current position or an ``Active`` vertex, or Object.
|
||||
|
||||
|
||||
Pivot Point:
|
||||
============
|
||||
|
||||
This operation is concerned with placing the **Pivot Point** according to the various operators.
|
||||
it can place the Cursor by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional``
|
||||
Coordinates and either relative to its current position or an ``Active`` vertex, or Object.
|
||||
|
||||
|
||||
Move:
|
||||
=====
|
||||
|
||||
This operation is concerned with **Moving** Geometry, or Objects according to the various operators.
|
||||
geometry can be moved by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional`` Coordinates.
|
||||
in Edit mode, selected geometry is moved, in Object Mode selected Objects are moved.
|
||||
|
||||
**Example 1**: Move selected geometry 0.8 units at 34 degrees in front view, Set Operation to ``Move``,
|
||||
set Working Plane to ``Front(X-Z)``, set Distance to 0.8, set angle to 34, select geometry,
|
||||
click ``Direction`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_18.png
|
||||
:width: 400px
|
||||
|
||||
You can see the geometry Before and After the move.
|
||||
|
||||
|
||||
New Vertex:
|
||||
===========
|
||||
|
||||
This operation is concerned with placing a **New Vertex** according to the various operators,
|
||||
the new vertex is set selected so it can then be manipulated.
|
||||
|
||||
**Example 1:** Place a New Vertex and the intersection of two edges, set Operation to ``New Vertex``,
|
||||
set Working Plane to ``Front(X-Z)``, select two edges, click ``Intersect`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_19.png
|
||||
:width: 400px
|
||||
|
||||
A new Vertex has been placed at the intersection of the two Edges.
|
||||
|
||||
|
||||
Extrude Vertices:
|
||||
=================
|
||||
|
||||
This operation only **Extrudes** the vertices from selected geometry, so if you select a Face,
|
||||
and use this operation, only the vertices of the face will be extruded.
|
||||
this can also be used to "chase" a single vertex around a path, for example the edge of a complex bracket.
|
||||
|
||||
**Example 1**: Extrude the vertices of a face, set operation to ``Extrude Vertices``,
|
||||
select the face, set some delta offsets, click ``Delta`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_20.png
|
||||
:width: 400px
|
||||
|
||||
Only the Vertices from the Face have been extruded as edges.
|
||||
|
||||
|
||||
Split Edges:
|
||||
============
|
||||
|
||||
This operation will **Split** edges according to the operator you use.
|
||||
It will result in the face having one more vertex per operation, so a quad becomes a 5 sided Ngon.
|
||||
This initial split point is halfway along the chosen edge(s). If the system detects that you are
|
||||
going to split connecting edges of a face, which would ruin the topology, an error is given
|
||||
and the operation does not complete.
|
||||
|
||||
**Example 1**: Split the edge of a face at 25% of the way along it, set Operation to ``Split``,
|
||||
set Percent to 25, select one edge, click ``Percent`` button.
|
||||
|
||||
**Example 2**: Split two edges of an extruded prism and move the split 0.8 in X, 0.4 in Z,
|
||||
set Operation to ``Split``, set Working Plane to ``Front(X-Z)``, set X to 0.8 & Z to 0.4,
|
||||
select two edges, click ``Delta`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_21.png
|
||||
:width: 400px
|
||||
|
||||
You can see Before and after of the two examples described above.
|
||||
|
||||
|
||||
Duplicate Geometry:
|
||||
===================
|
||||
|
||||
This operation will duplicate geometry according to which operator is chosen.
|
||||
|
||||
**Example 1**: **Duplicate** selected geometry 3 units at 78 degrees in front view,
|
||||
set Operation to ``Duplicate Geometry``, set working plane to ``Front(X-Z)``,
|
||||
set Distance to 3 & Angle to 78, click ``Direction`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_22.png
|
||||
:width: 400px
|
||||
|
||||
You can see Before and After states of a Duplication.
|
||||
|
||||
|
||||
Extrude Geometry:
|
||||
=================
|
||||
|
||||
This operation will **Extrude** geometry, not just the vertices
|
||||
as with Extrude Vertex, but faces and edges as well.
|
||||
|
||||
**Example 1**: Extrude selected face 1 in X, 0.5 in Y and 0.6 in Z, set Operation to ``Extrude Geometry``,
|
||||
set Working Plane to ``Front(X-Z)``, set X, Y & Z to 1,0.5,0.6 respectively, click ``Delta`` button.
|
||||
|
||||
.. figure:: /images/addons_pdt_design_23.png
|
||||
:width: 400px
|
||||
|
||||
You can see the Top Face has been Extruded in all three axes as one operation.
|
@ -1,113 +0,0 @@
|
||||
|
||||
***********
|
||||
Pivot Point
|
||||
***********
|
||||
|
||||
The PDT **Pivot Point**, hereafter **PP**, is intended to provide a location
|
||||
for rotating and scaling geometry in Edit Mode Only. It works as an independent
|
||||
location to the 3D Cursor. It can, however, be placed relative to Object Geometry.
|
||||
|
||||
The Menu For Pivot Point
|
||||
|
||||
.. figure:: /images/addons_pdt_pivot_1.png
|
||||
:width: 450px
|
||||
|
||||
Here the pivot point has been placed relative to the selected vertex.
|
||||
|
||||
|
||||
Operations:
|
||||
===========
|
||||
|
||||
Most operations only work in **Edit** Mode, so these are greyed out if you are in any other mode.
|
||||
|
||||
Starting from the top, the first row is the ``Show Pivot`` button with three inputs alongside.
|
||||
|
||||
To show the PP, click the ``Show`` button, to remove it press ``Hide`` button,
|
||||
Show will change to Hide when PP is displayed.
|
||||
|
||||
You can still use the PP location, whether you can see it, or not.
|
||||
|
||||
The three inputs are; ``Size Factor`` ranging from 0.2 to 2 and will adjust the relative size
|
||||
of the PP, the PP is drawn relative to the 3D View scale. The next is the ``Width`` and this
|
||||
determines how bold the PP arms are ranging from 1 to 5. The last is the ``Alpha``
|
||||
and determines the translucency (Color Alpha) of the PP, values range from 0.2 to 1.
|
||||
|
||||
The next row shows the ``Pivot Location``, values can be entered here,
|
||||
or the boxes may be "scrubbed" and the PP will move as you do so.
|
||||
|
||||
On the next row is ``To Selected``, which locates the PP on a selected set of geometry.
|
||||
The middle button is ``To Cursor``, which locates the PP at the 3D Cursor location.
|
||||
The right button is ``To Origin``, which locates the PP on the selected Object's Origin,
|
||||
you must have a selected Object.
|
||||
|
||||
.. figure:: /images/addons_pdt_pivot_2.png
|
||||
:width: 450px
|
||||
|
||||
Here the PP has been located on the weighted center of the selected face.
|
||||
|
||||
The next row has **Rotate** and **Angle**, To rotate selected geometry about the PP,
|
||||
first set the ``Angle`` and click ``Rotate``. Geometry is rotated about the View Plane
|
||||
(an axis normal to your screen).
|
||||
|
||||
.. figure:: /images/addons_pdt_pivot_3.png
|
||||
:width: 450px
|
||||
|
||||
Here the selected geometry has been rotated 30 degrees about the PP.
|
||||
|
||||
The next row has ``Scale`` on the left, this button is used to scale the selected geometry
|
||||
about the PP. this uses factors as set in the last row showing X, Y and Z values.
|
||||
the scaling is performed about the ``Global`` Axes. There are many ways in Blender
|
||||
to Scale about different axes, so it was decided not to replicate all this,
|
||||
this is the function I use the most for scaling.
|
||||
|
||||
The button on the right is ``Cursor To Pivot``, it will locate the 3D Cursor to the PP,
|
||||
this is useful if you want to use other Blender techniques for rotating, scaling, etc.
|
||||
but want to use the PP location.
|
||||
|
||||
The PP cannot be used to move geometry, it was decided that there are already
|
||||
sufficient methods of doing this in Blender.
|
||||
|
||||
|
||||
Setting Scales by Two Measures:
|
||||
===============================
|
||||
|
||||
Underneath you will see the ``Scale Distance`` & ``System Distance`` Inputs,
|
||||
``System Distance`` is merely a copy of ``Distance`` from the ``PDT Design`` Section.
|
||||
This can be set by a variety of methods, one of which is to select two vertices
|
||||
and then use the Set A/D 2D Tool, found in PDT Design, or you can just type a value in.
|
||||
|
||||
There are circumstances where you know that a dimension in the model,
|
||||
lets say two vertices measure 14.3 units and that is wrong.
|
||||
You know that either a section, or the whole mesh needs scaling
|
||||
so this dimension becomes 16.2. Instead of you having to work out
|
||||
the scale factor yourself, you can merely type 16.2 into ``Scale Distance``,
|
||||
having set ``System Distance`` to 14.3 and the system will calculate the scales for you,
|
||||
in this case; **1.14085**. Should you only want to scale in one axis, set the other two to 1.
|
||||
|
||||
You would then select the required geometry, set the position of the PP
|
||||
and use the PP ``Scale`` button.
|
||||
|
||||
|
||||
Read & Write PP to Object:
|
||||
==========================
|
||||
|
||||
You can write the PP location to the **Object** using the ``PP Write`` button,
|
||||
these are stored in the form a ``Custom Property``, you will be required to confirm this,
|
||||
clicking OK on the popup accepts this operation, moving your cursor off the confirm dialogue
|
||||
cancels the operation. This facility allows you to store a PP location, easily readable,
|
||||
against each object, this could be, for example, the rotational center of a hydraulic cylinder for example,
|
||||
where you do not want this location to also be the object origin point.
|
||||
|
||||
You can then read back this information to place the PP using the ``PP Read`` button.
|
||||
If the custom property are not there, either because it hasn’t been written,
|
||||
or because you have deleted it, an error is displayed.
|
||||
|
||||
.. figure:: /images/addons_pdt_pivot_4.png
|
||||
:width: 450px
|
||||
|
||||
Confirmation is Required for the Write Operation.
|
||||
|
||||
.. figure:: /images/addons_pdt_pivot_5.png
|
||||
:width: 300px
|
||||
|
||||
This is the custom property stored against the Object.
|
@ -1,50 +0,0 @@
|
||||
|
||||
*************************
|
||||
PDT Trigonometrical Waves
|
||||
*************************
|
||||
|
||||
The Menu for Trigonometrical Waves
|
||||
|
||||
.. figure:: /images/addons_pdt_trig_1.png
|
||||
:width: 300px
|
||||
|
||||
This section of PDT is used to generate Trigonometrical Waves in a selected Object.
|
||||
In order to enable the ``Generate`` button, the use must first select
|
||||
an object using the ``Object Selector`` box.
|
||||
|
||||
There are then a number of parameters that need to be set:
|
||||
|
||||
* The ``Working Plane`` - this is just a duplicate display of the main PDT ``Working Plane``.
|
||||
* The ``Wave Form`` - Sine Cosine, or Tangent.
|
||||
* The number of ``Cycles`` - each cycle is 180 degrees, NOT a full circle,
|
||||
so a value of 1 will result in one peak with a sine wave for example.
|
||||
* The ``Cycle Length`` - the length in blend file units of one cycle.
|
||||
* The ``Amplitude`` - the height of the wave.
|
||||
* Whether to ``Empty`` the target object, set to true this will delete all vertices in the target object.
|
||||
* The ``Resolution`` - the number of vertices on one cycle.
|
||||
* If you are generating a ``Tangent`` wave, the maximum amplitude of the wave.
|
||||
Tangent functions range from 0 to infinity over a 90 degree wave,
|
||||
so this limits the extent to which the tangent wave will extend.
|
||||
* The ``Start Location`` - the point at which the first vertex will appear in Global Coordinates.
|
||||
* Whether ``Absolute`` values are required.
|
||||
In this context Absolute means greater than 0, so all peaks will be positive.
|
||||
|
||||
Here is a "Before" image:
|
||||
|
||||
.. figure:: /images/addons_pdt_trig_2.png
|
||||
:width: 450px
|
||||
|
||||
And here is an "After" image:
|
||||
|
||||
.. figure:: /images/addons_pdt_trig_3.png
|
||||
:width: 450px
|
||||
|
||||
Here is an example of "Absolute" values using a Sine Wave:
|
||||
|
||||
.. figure:: /images/addons_pdt_trig_4.png
|
||||
:width: 450px
|
||||
|
||||
And finally an example of a Tangent Wave limited to a maximum value of 5:
|
||||
|
||||
.. figure:: /images/addons_pdt_trig_5.png
|
||||
:width: 450px
|
@ -1,73 +0,0 @@
|
||||
|
||||
************
|
||||
View Control
|
||||
************
|
||||
|
||||
The Menu for View Control.
|
||||
|
||||
.. figure:: /images/addons_pdt_view_1.png
|
||||
:width: 300px
|
||||
|
||||
This section deals with the View Control section of PDT, this menu uses its own variables.
|
||||
|
||||
|
||||
Rotate Absolute:
|
||||
================
|
||||
|
||||
This button will rotate the view using absolute rotational values as set in the three inputs underneath.
|
||||
These are X, Y & Z rotations and should be entered as degrees, not radians.
|
||||
A rotation of 0,0,0 is the same as Blender ``Top`` view.
|
||||
|
||||
Uses: ``X Rot``, ``Y Rot`` & ``Z Rot``.
|
||||
|
||||
**Example 1**: Rotate view 25 in X, 17 in Y and 90 in Z, set X Rot,
|
||||
Y Rot & Z Rot to 25, 17 & 90 respectively, click ``Rotate Abs`` button.
|
||||
|
||||
The next row of icons Orbit the view about its horizontal & vertical screen axes,
|
||||
or Roll the view about its normal axis to your screen.
|
||||
All of these 5 options use the ``Angle`` input from this menu.
|
||||
|
||||
|
||||
Orbit Left:
|
||||
===========
|
||||
|
||||
Set Angle, click ``Orbit Left`` icon (Left Arrow), view rotates about its vertical axis.
|
||||
|
||||
|
||||
Orbit Right:
|
||||
============
|
||||
|
||||
Set Angle, click ``Orbit Right`` icon (Right Arrow), view rotates about its vertical axis.
|
||||
|
||||
|
||||
Orbit Up:
|
||||
=========
|
||||
|
||||
Set Angle, click ``Orbit Up`` icon (Up Arrow), view rotates about its horizontal axis.
|
||||
|
||||
|
||||
Orbit Down:
|
||||
===========
|
||||
|
||||
Set Angle, click ``Orbit Down`` icon (Down Arrow), view rotates about its horizontal axis.
|
||||
|
||||
|
||||
Roll View:
|
||||
==========
|
||||
|
||||
Set angle, click ``Roll View`` icon (Roll), view rotates about its normal axis to your screen.
|
||||
|
||||
|
||||
Isometric View:
|
||||
===============
|
||||
|
||||
This button sets the view orientation to what a Draftsman understands as a true Isometric view.
|
||||
This is achieved by rotating a ``Front`` view 45 degrees about its vertical axis, then 35.2644
|
||||
degrees about its horizontal axis. In the system this is achieved using an Absolute View Rotation of:
|
||||
|
||||
**Quaternion(0.8205, 0.4247, -0.1759, -0.3399)**
|
||||
|
||||
.. figure:: /images/addons_pdt_view_2.png
|
||||
:width: 500px
|
||||
|
||||
The Top Plane Axes Appear to be at 30 degrees to the View's Horizontal Axis.
|
@ -1,78 +0,0 @@
|
||||
|
||||
************
|
||||
Stored Views
|
||||
************
|
||||
|
||||
Stored Views has three modes of operation, depending on which the following are saved or restored.
|
||||
Save stored views to your blend-file to easily have access to saved views later.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click 3D View then Stored Views to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
||||
|
||||
.. figure:: /images/addons_3d-view_stored-views_ui.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
View
|
||||
Save multiple view locations for easy navigation between views.
|
||||
POV
|
||||
Save Point of View --> Perspective and Local modes.
|
||||
|
||||
Camera to View
|
||||
Move the selected camera to current view.
|
||||
New Camera to View
|
||||
Create a new camera to current view.
|
||||
Save Current
|
||||
Save the View or :abbr:`POV (Point Of View)`.
|
||||
|
||||
Camera Selector
|
||||
Tools for camera selection and management.
|
||||
|
||||
Camera
|
||||
Make the camera active.
|
||||
Preview Camera
|
||||
Make the camera active, selected and *Camera to View* in one button.
|
||||
Add Camera Marker
|
||||
Add a camera marker to help animating between cameras.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
- First activate the user interface and storage by pressing *Initialize*.
|
||||
- With the *View* button active, Zoom, move or rotate the camera into a position you like.
|
||||
(Useful setting up camera locations and modeling specific areas of a mesh.)
|
||||
- Or with the *POV* button active, change the user perspective or local views.
|
||||
- Press *Save Current* to create a list of each stored view or point of view.
|
||||
- You can move selected camera or create a new camera to the stored view.
|
||||
(Useful for setting up camera shots to different views.)
|
||||
- The camera selector works in a similar way. Each camera is listed and
|
||||
you can make a camera active by pressing the camera icon.
|
||||
- You can view each camera pressing the screen icon and also add camera markers using the arrow icon.
|
||||
(Useful for setting up camera switching during animations.)
|
||||
|
||||
As all stored definitions are saved in the blend-file, you can save the file and
|
||||
the next time you use it, the stored views or point of view will be ready.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: 3D View
|
||||
:Description: Save and restore user defined views, :abbr:`POV (Point Of View)` and camera locations.
|
||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
||||
:File: space_view3d_stored_views.py
|
||||
:Author: nfloyd, Francesco Siddi
|
||||
:Maintainer: Brendon Murphy (meta-androcto)
|
||||
:Contributors: ramboblender
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,73 +0,0 @@
|
||||
|
||||
*****************
|
||||
Assign Shape Keys
|
||||
*****************
|
||||
|
||||
This add-on lets you assign one or more Bézier curve(s) as shape keys to other curve.
|
||||
Useful for morphing curves and curve based text objects.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Assign Shape Keys to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Edit tab`.
|
||||
|
||||
.. figure:: /images/addons_add-curve_assign-shape-keys_ui.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
#. Select the target and shape key Bézier curve objects.
|
||||
#. Make sure the target is the active object; you can do this by
|
||||
:kbd:`Shift-RMB`-clicking the target curve after the other selections are made.
|
||||
#. Go to the *Curve Shape Keys* tab and click *Assign Shape Keys* button.
|
||||
#. Now a copy of the active object curve will be created, which will have the other selected curves as its target.
|
||||
|
||||
If the *Remove Shape Key Objects* option is checked, the selected curve objects will be deleted
|
||||
and only the target is kept.
|
||||
|
||||
There are some options to align the closed (cyclic spline) target and the shape-key curves.
|
||||
Also it's possible to match individual parts from a multipart (multiple splines) of target
|
||||
and shape key curves (e.g. a text object converted into a curve) based on various criteria.
|
||||
|
||||
For smoother transition, you can subdivide the segments of one of the curves in the selection group.
|
||||
|
||||
|
||||
Manual Alignment of Starting Vertices
|
||||
-------------------------------------
|
||||
|
||||
In Edit Mode the *Assign Shape Keys* panel shows a single button -- *Mark Starting Vertices*.
|
||||
When clicked, all the starting vertices of the closed splines (disconnected parts) of
|
||||
the selected curves are indicated by a marking point. Now if you select any vertex,
|
||||
the marker moves to this selected vertex, indicating the new starting vertex.
|
||||
You need to confirm the new positions by pressing :kbd:`Return`.
|
||||
Pressing :kbd:`Esc`, reverts the positions to the earlier order.
|
||||
|
||||
|
||||
Tutorial
|
||||
========
|
||||
|
||||
See this `tutorial video <https://www.youtube.com/watch?v=Ly64vezt0Go>`__
|
||||
on how to activate the add-on along with basic usage.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Assigns one or more Bézier curves as a shape key for another Bézier curve.
|
||||
:Location: :menuselection:`Sidebar --> Edit tab`
|
||||
:File: curve_assign_shapekey.py
|
||||
:Author: Shrinivas Kulkarni
|
||||
:Maintainer: Shrinivas Kulkarni
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,80 +0,0 @@
|
||||
|
||||
*******
|
||||
BTracer
|
||||
*******
|
||||
|
||||
The purpose of this script is to add tools that are similar to C4D Tracer.
|
||||
Btrace provides several ways to trace objects and particles and animate the resulting curve.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then BTracer to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Edit tab`.
|
||||
|
||||
The default setting in the interface is Choose Tool, here you pick what trace methods and functions.
|
||||
|
||||
.. figure:: /images/addons_add-curve_btracer_ui.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
|
||||
Information
|
||||
===========
|
||||
|
||||
The five main tools (Object Trace, Object Connect, Mesh Follow, Particle Trace, Particle Connect)
|
||||
all share common settings for the most part. Each tool creates a curve as the end result.
|
||||
The settings for the curve created can be setup under the *Curves Settings* button.
|
||||
|
||||
The tools have access to a few other features. All of them have access to
|
||||
the grow curve animation tool which animates the curve radius.
|
||||
As well as the Color Blender tool.
|
||||
|
||||
Object Trace
|
||||
Creates a curve by joining points of a mesh in a continuous manner or by all edges.
|
||||
Options to modulate the curves radius or add distortion to mesh before converting.
|
||||
|
||||
Objects Connect
|
||||
Join selected objects with a curve and add hooks to each node.
|
||||
|
||||
Particle Trace
|
||||
Creates a curve from each particle of a system. Keeping particle amount under 250 will make this run faster.
|
||||
|
||||
Particle Connect
|
||||
Connects each particle of a system with a continuous curve.
|
||||
|
||||
Mesh Follow
|
||||
Creates curve from animated mesh object. Following the path of
|
||||
either the vertices, edges or faces, and also the option to follow the object's origin.
|
||||
|
||||
Grow Curve Animation
|
||||
Animate the radius of a curve over time. Can be run alone on a curve object, or run with the tools above.
|
||||
|
||||
F-Curve Noise
|
||||
Quick link to add an F-Curve modifier to an object.
|
||||
|
||||
Color Blender
|
||||
Assign colors, create color palettes and randomize colors.
|
||||
|
||||
Each script has a number of different options which can be used to create some very interesting effects.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Tools for converting/animating objects/particles into curves.
|
||||
:Location: :menuselection:`Sidebar --> Create tab`
|
||||
:File: btrace folder
|
||||
:Author: liero, crazycourier
|
||||
:Contributors: Atom, MacKracken, meta-androcto
|
||||
:Maintainer: Brendon Murphy (meta-androcto)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,188 +0,0 @@
|
||||
|
||||
***********
|
||||
Curve Tools
|
||||
***********
|
||||
|
||||
This add-on provides an extensive set of tools for the manipulating
|
||||
and editing of curves. Several :abbr:`CAD (Computer-Aided Design)` style curve tools are included.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Curve Tools to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
This add-on is split into sub panels with each panel having it's own specific set of tools.
|
||||
|
||||
|
||||
Curve Info
|
||||
----------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Curve Info`
|
||||
|
||||
Curve
|
||||
Print splines, segments and empty splines information to the Info header and Info editor.
|
||||
Spline
|
||||
Print splines information to the Info header and Info editor.
|
||||
Segment
|
||||
Print segments information to the Info header and Info editor.
|
||||
Length
|
||||
Calculate the length of the curve and show in the add-on's panel.
|
||||
|
||||
|
||||
Curve Edit
|
||||
----------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Curve Edit`
|
||||
|
||||
Fillet/Chamfer
|
||||
Round or chamfer Bézier point fillets.
|
||||
Outline
|
||||
Create an outline around a selected curve object.
|
||||
Recursive Offset
|
||||
Create an offset array.
|
||||
Separate Offset/Selected
|
||||
Separate the outline mesh from the original.
|
||||
|
||||
Subdivide
|
||||
Subdivide selection or filleted corners.
|
||||
Multi Subdivide
|
||||
Subdivide with level of details.
|
||||
Split at Vertex
|
||||
Cuts the selected points creating openings.
|
||||
Discretize Curve
|
||||
Disconnect the selected points.
|
||||
Array Splines
|
||||
Create an array of the selected curves in Edit Mode.
|
||||
|
||||
|
||||
Intersect
|
||||
---------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Intersect`
|
||||
|
||||
2D Curve Boolean
|
||||
Boolean selected curves on a 2D plane.
|
||||
Intersect Curves
|
||||
Create an intersection between flat curves on the same plane.
|
||||
|
||||
|
||||
Surfaces
|
||||
--------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Surfaces`
|
||||
|
||||
Birail
|
||||
It creates a surface from a profile and two paths.
|
||||
The order in which you select the curves and its direction is important to make this function properly.
|
||||
Convert Bézier to Surface
|
||||
Convert the selected curve to a NURBS surface.
|
||||
Convert Faces to Bézier
|
||||
Select faces and convert them to Bézier curves.
|
||||
|
||||
|
||||
Loft
|
||||
^^^^
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Surfaces --> Loft`
|
||||
|
||||
Loft
|
||||
Loft a mesh object between two Bézier curves.
|
||||
Auto Loft
|
||||
Turn on to store the loft data if you move or edit the curves.
|
||||
Update Auto Loft
|
||||
Press this button to update the new loft mesh position after moving or editing parent curves.
|
||||
|
||||
|
||||
Sanitize
|
||||
--------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Sanitize`
|
||||
|
||||
Set Origin to Spline Start
|
||||
Move the origin of the curve to the first point.
|
||||
Reset Scale
|
||||
Reset the objects scale to (1, 1, 1).
|
||||
|
||||
|
||||
.. rubric:: Cleanup:
|
||||
|
||||
Remove Doubles
|
||||
Remove doubled points.
|
||||
Short Splines
|
||||
Remove selected splines based on a threshold.
|
||||
|
||||
|
||||
.. rubric:: Join Splines:
|
||||
|
||||
Join Neighboring Splines
|
||||
Join selected splines based on a threshold.
|
||||
|
||||
|
||||
Utilities
|
||||
---------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Utilities`
|
||||
|
||||
|
||||
.. rubric:: Curve Resolution:
|
||||
|
||||
Show [ESC]
|
||||
Display the resolution in the interface with a colored overlay.
|
||||
|
||||
|
||||
.. rubric:: Spline Order:
|
||||
|
||||
Show [ESC]
|
||||
Display and arrange the sequence.
|
||||
|
||||
|
||||
Path Finder
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Tool: :menuselection:`Sidebar --> Edit --> Utilities --> Path Finder`
|
||||
|
||||
Tools for paths.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Adds functionality for Bézier/NURBS curve/surface modeling.
|
||||
:Location: :menuselection:`Sidebar --> Edit tab`
|
||||
:File: curve_tools folder
|
||||
:Authors: MacKracken, cwolf3d, Alexander Meißner (Lichtso)
|
||||
:Contributors: guy lateur, Alexander Meißner (Lichtso), Dealga McArdle (zeffii), Marvin K. Breuer (MKB)
|
||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,63 +0,0 @@
|
||||
|
||||
***********************
|
||||
Add Curve Extra Objects
|
||||
***********************
|
||||
|
||||
This add-on groups many curve object creation add-ons into a single one.
|
||||
|
||||
.. figure:: /images/addons_add-curve_extra-objects_torus.jpg
|
||||
:align: center
|
||||
:width: 640px
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Extra Objects to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Curve`.
|
||||
|
||||
|
||||
Information
|
||||
===========
|
||||
|
||||
Included curve object add-ons:
|
||||
|
||||
Curve Profiles (Curveaceous Galore) by Jimmy Hazevoet, testscreenings
|
||||
Arc, Arrow, Cogwheel, Cycloid, Flower, Helix, Noise, N-sided, Profile, Rectangle, Splat and Star types.
|
||||
Braid by Jared Forsyth
|
||||
Adds a Braided Knot type curve.
|
||||
Celtic Knot by Adam Newgas
|
||||
Wrap a mesh object in a knotted curve.
|
||||
Curly Curve by Cmomoney
|
||||
Adds a "Flourish" type curve.
|
||||
Simple Curve by Vladimir Spivak (cwolf3d)
|
||||
Point, Line, Distance, Angle, Ellipse, Arc, Sector, Segment,
|
||||
Rectangle, Rhombus, Polygon, Polygon ab, Trapezoid curve types.
|
||||
Spirals by Alejandro Omar Chocano Vasquez
|
||||
Archimedean, Logarithmic, Spherical, Torus curve types.
|
||||
SpiroFit, BounceSpline and Catenary by Antonio Osprite, Liero, Atom, Jimmy Hazevoet
|
||||
Spiral fit curve to mesh, Bounce Spline inside a mesh, Catenary curve between two mesh objects.
|
||||
Torus Knots, by Marius Giurgi (DolphinDream), testscreenings
|
||||
Adds many types of (torus) knots including ten presets.
|
||||
Bevel/Taper Curve, by Cmomoney
|
||||
Adds bevel and/or taper curve to active curve.
|
||||
Surface Objects, by Folkert de Vries
|
||||
Adds a NURBS surface Plane, Cone, Star, Wedge.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Add multiple extra curve object types.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Curve`
|
||||
:File: add_curve_extra_objects folder
|
||||
:Author: Multiple Authors
|
||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,17 +0,0 @@
|
||||
|
||||
#############
|
||||
Add Curve
|
||||
#############
|
||||
|
||||
These add-ons relate to curve object creation and curve based tools.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
assign_shape_keys.rst
|
||||
btracer.rst
|
||||
curve_tools.rst
|
||||
extra_objects.rst
|
||||
ivy_gen.rst
|
||||
sapling.rst
|
||||
simplify_curves.rst
|
@ -1,63 +0,0 @@
|
||||
|
||||
*******
|
||||
Ivy Gen
|
||||
*******
|
||||
|
||||
Based on the wonderful code by Thomas Luft and
|
||||
his original `IvyGen program <http://graphics.uni-konstanz.de/~luft/ivy_generator/>`__.
|
||||
|
||||
Original Blender port by testscreenings, further advances by PKHG and TrumanBlending.
|
||||
|
||||
.. figure:: /images/addons_add-curve_ivy-gen_example.jpg
|
||||
:align: center
|
||||
:width: 640px
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Ivy Gen to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
.. figure:: /images/addons_add-curve_ivy-gen_ui.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create tab`.
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Operator`.
|
||||
|
||||
The Update Ivy operator is separate from the main menu and appears in the 3D Viewport.
|
||||
You can adjust settings in the panel and press the *Update* button to update parameters.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
#. Select the object you want to grow ivy on.
|
||||
#. Enter Edit Mode and select a vertex that you want the ivy to spawn from.
|
||||
#. Snap the cursor to the selected vertex.
|
||||
#. Enter Object Mode and with the object selected:
|
||||
:menuselection:`Sidebar --> Create --> Ivy Generator panel` adjust settings and choose *Add New Ivy*.
|
||||
|
||||
The *Add Default Ivy* operator will use the default parameters during creation.
|
||||
This will generate your initial Ivy Curve and Leaves.
|
||||
From here you can access the *Ivy* menu in the Sidebar.
|
||||
I suggest to make small changes and then press *Update Ivy* in the 3D Viewport operator.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Adds generated ivy to a mesh object starting at the 3D Cursor.
|
||||
:Location: :menuselection:`Sidebar --> Create tab`
|
||||
:File: add_curve_ivygen.py
|
||||
:Author: testscreenings, PKHG, TrumanBlending
|
||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,170 +0,0 @@
|
||||
|
||||
****************
|
||||
Sapling Tree Gen
|
||||
****************
|
||||
|
||||
This add-on creates trees. There are many preset tree types to choose from or create your own.
|
||||
The method is presented by Jason Weber & Joseph Penn in their paper "Creation and Rendering of Realistic Trees".
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Sapling Tree Gen to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
.. figure:: /images/addons_add-curve_sapling_example.jpg
|
||||
:align: center
|
||||
:width: 640px
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Curve` menu.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
Once the tree is created there are eight settings to build your tree.
|
||||
When creating your tree it's often best to use the settings in order until your familiar with them.
|
||||
|
||||
|
||||
Geometry
|
||||
--------
|
||||
|
||||
Bevel
|
||||
This determines whether the curve should be shown with its full thickness or only the underlying curve.
|
||||
Disabled by default to permit rapid feedback on parameter changes.
|
||||
Bevel Resolution
|
||||
Determines how smooth the outline of the beveled curve is.
|
||||
The lower this value, the smaller the number of vertices but
|
||||
the resulting geometry will be coarser.
|
||||
Curve Resolution
|
||||
Changes the smoothness of the curve along its length. This is only relevant if *Handle Type* is set to Auto.
|
||||
|
||||
Handle Type
|
||||
Determines the method of interpolation of the curve between Bézier points.
|
||||
Vector type results in fewer vertices but straight segments.
|
||||
Auto type smooths the segments but requires more expensive geometry.
|
||||
Shape
|
||||
Governs the distribution of branches in order to effect the overall shape of the tree.
|
||||
|
||||
Custom Shape
|
||||
Customize the branch shape along the branch length.
|
||||
|
||||
Secondary Splits
|
||||
Change the style of secondary branches.
|
||||
Branch Distribution
|
||||
Adjust branch distribution towards the top or bottom of the tree.
|
||||
Branch Rings
|
||||
Grow the Branches in Rings.
|
||||
Random Seed
|
||||
Sets the basis on which all random values for the tree are generated.
|
||||
This can be changed to allow different trees with the same basic parameters to be generated.
|
||||
|
||||
Tree Scale:
|
||||
Scale
|
||||
The underlying size of the tree in Blender units.
|
||||
Scale Variation
|
||||
The maximum amount that the scale of the tree can vary (up or down) from the value of *Scale*.
|
||||
Radius Scale
|
||||
The scale of the radius at the base of the tree.
|
||||
Radius Variation
|
||||
The maximum amount that the radius scale of the tree can vary (up or down) from the value of *Radius Scale*.
|
||||
|
||||
Preset:
|
||||
Preset Name
|
||||
The name of the preset to be exported. This will export all current properties of the tree to
|
||||
the Sapling preset folder as a py-file.
|
||||
Export Preset
|
||||
Export all current properties.
|
||||
Load Preset
|
||||
Any presets found in the Sapling preset directory may be imported when selected here.
|
||||
Limit Import
|
||||
This can be used to restrict what geometry is created when a preset is imported.
|
||||
If selected, only two levels of branches and no leaves will be generated.
|
||||
|
||||
|
||||
Branch Radius
|
||||
-------------
|
||||
|
||||
This sub menu contains the settings for the branch radius.
|
||||
You can adjust the bevel and taper of the branches here.
|
||||
|
||||
|
||||
Branch Splitting
|
||||
----------------
|
||||
|
||||
This sub menu contains the settings for branch splitting.
|
||||
You can adjust how the branches form and split here.
|
||||
Settings include levels, height and angle of the split.
|
||||
|
||||
|
||||
Branch Growth
|
||||
-------------
|
||||
|
||||
This sub menu contains the settings for branch growth.
|
||||
You can adjust how the branches grow here.
|
||||
Settings include length, angle and curvature.
|
||||
|
||||
|
||||
Pruning
|
||||
-------
|
||||
|
||||
This sub menu contains the settings for pruning the branches.
|
||||
|
||||
#. Press the *Prune* checkbox and you will see the prune object next to the tree.
|
||||
#. Change the settings to adjust the prune objects shape to form your tree.
|
||||
|
||||
|
||||
Leaves
|
||||
------
|
||||
|
||||
This sub menu contains the settings for leaves.
|
||||
|
||||
#. Press the *Show Leaves* checkbox and you will see leaves on the tree.
|
||||
#. Press the *Make mesh* checkbox if you want to convert the curve to a mesh.
|
||||
|
||||
Settings include shape, object type, rotations and scale.
|
||||
|
||||
|
||||
Armature
|
||||
--------
|
||||
|
||||
This sub menu contains the settings to add an armature to your tree.
|
||||
It's not recommended to use this function on highly complex trees as it may take time to compute.
|
||||
|
||||
#. Turn off leaves and prune if you have them on.
|
||||
#. Press the *Use Armature* checkbox to add the armature to the tree.
|
||||
#. Adjust the armature levels and bone length to your liking.
|
||||
#. Do not pose the bones until you have finished the tree.
|
||||
#. you are now ready to use the next sub menu *Animation*.
|
||||
|
||||
|
||||
Animation
|
||||
---------
|
||||
|
||||
This sub menu contains the settings to animate your tree.
|
||||
It's recommended to finalize all your settings now.
|
||||
|
||||
#. You will need to have an armature already created above.
|
||||
#. Press the *Armature Animation* checkbox to add the animation to the tree.
|
||||
#. Press the *Leaf Animation* checkbox to add the animation to the leaves if you have them.
|
||||
#. Press the *Fast Preview* checkbox to hide the leaves and bevel for fast animation playback in the viewport.
|
||||
|
||||
Settings include speed, wind strength and leaf animation.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Adds a parametric tree.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Curve --> Sapling Tree Gen`
|
||||
:File: add_curve_sapling folder
|
||||
:Author: Andrew Hale (TrumanBlending), Aaron Butcher, CansecoGPC
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,47 +0,0 @@
|
||||
|
||||
***************
|
||||
Simplify Curves
|
||||
***************
|
||||
|
||||
The Simplify Curves tool works on a single selected curve object.
|
||||
It generates a new curve based on the original one.
|
||||
The higher the *Distance Error* threshold is set the more control points are removed.
|
||||
|
||||
The Simplify F-Curves tool works the same way, but on selected F-Curves.
|
||||
|
||||
*Merge by Distance* tool glues nearby points on a single Bézier curve.
|
||||
In fact it is an analog of the usual *Merge by Distance* on a mesh, but for curves.
|
||||
Unlike the mesh one, it does not connect the points from different parts of the curves,
|
||||
even if they are on the ends of the two curves.
|
||||
To glue such points, you must first connect them with *Make Segment*.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Curve then Simplify Curves to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
The *Merge By Distance* and *Curve Simplify* buttons are located in
|
||||
the :menuselection:`3D Viewport --> Curve Context Menu` in curve Edit Mode.
|
||||
|
||||
The *Simplify F-Curves* tool can be accessed by enabling :ref:`Developer Extras <prefs-interface-dev-extras>`
|
||||
and using the :ref:`bpy.ops.wm.search_menu` to search for "Simplify F-Curves" in the Dope Sheet or Graph Editor.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Curve
|
||||
:Description: Simplify curves in the 3D Viewport, and Dope Sheet, merge by distance in 3D Viewport.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Curve --> Curve Simplify`,
|
||||
:menuselection:`Dope Sheet and Graph editors --> Channel --> Simplify F-Curves`
|
||||
:File: curve_simplify.py
|
||||
:Author: testscreenings, Michael Soluyanov
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,98 +0,0 @@
|
||||
|
||||
*************
|
||||
ANT Landscape
|
||||
*************
|
||||
|
||||
This add-on creates landscapes and planets using various noise types. A.N.T. stands for Another Noise Tool.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then A.N.T. Landscape to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
.. figure:: /images/addons_add-mesh_ant-landscape_ui.jpg
|
||||
:align: right
|
||||
:width: 220px
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create` tab.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
After creating your landscape mesh there are three main areas in
|
||||
the :ref:`bpy.ops.screen.redo_last` panel to design your mesh.
|
||||
|
||||
- Main Settings: Object and mesh related settings like size and subdivisions.
|
||||
- Noise Settings: Noise related settings that give shape to your terrain.
|
||||
- Displace Settings: Settings for terrain height and edge falloff.
|
||||
|
||||
|
||||
Landscape Panel
|
||||
---------------
|
||||
|
||||
Landscape
|
||||
Landscape will create the mesh and add several panels and tools to the Sidebar.
|
||||
|
||||
|
||||
Landscape Tools
|
||||
---------------
|
||||
|
||||
Mesh Displace
|
||||
Displace selected mesh vertices along normal or X, Y, Z direction.
|
||||
Weight from Slope
|
||||
Generates a weighted vertex group slope map based on the Z normal value.
|
||||
Landscape Eroder
|
||||
Apply various kinds of erosion to an A.N.T. Landscape grid,
|
||||
also available in the *Weights* menu in Weight Paint Mode.
|
||||
|
||||
|
||||
Landscape Main
|
||||
--------------
|
||||
|
||||
Here we can adjust the main settings and regenerate the mesh.
|
||||
|
||||
Smooth the mesh, Triangulate the mesh, Rename and add materials that you have in your blend-file.
|
||||
|
||||
|
||||
Landscape Noise
|
||||
---------------
|
||||
|
||||
Here we can adjust the noise settings and refresh only those settings.
|
||||
|
||||
There are many settings and noise types that allow you to customize your landscape.
|
||||
|
||||
|
||||
Landscape Displace
|
||||
------------------
|
||||
|
||||
Here we can adjust the displacement settings and refresh only those settings.
|
||||
|
||||
Adjust Height, Falloff and Strata in this section.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To Do
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Another Noise Tool: Landscape, erosion and displace.
|
||||
:Location: :menuselection:`Sidebar --> Create tab`
|
||||
:File: ant_landscape folder
|
||||
:Author: Jimmy Hazevoet
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,50 +0,0 @@
|
||||
|
||||
*********
|
||||
Archimesh
|
||||
*********
|
||||
|
||||
This tool is specially designed to generate architecture elements, like:
|
||||
|
||||
- Rooms
|
||||
- Doors
|
||||
- Windows
|
||||
- Kitchen cabinets
|
||||
- Shelves
|
||||
- Columns
|
||||
- Stairs
|
||||
- Tile roofs
|
||||
- Books
|
||||
- Lamps
|
||||
- Venetian blinds
|
||||
- Roller curtain
|
||||
- Japanese curtains
|
||||
|
||||
The original video documentation can be found here:
|
||||
`Video Playlist <https://www.youtube.com/playlist?list=PLQAfj95MdhTJ7zifNb5ab-n-TI0GmKwWQ>`__.
|
||||
Note that the videos were created for Blender 2.7 series but are still a valid resource.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then Archimesh to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create` tab.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Generate rooms, doors, windows and architecture objects.
|
||||
:Location: :menuselection:`Sidebar --> Create tab`
|
||||
:File: archimesh folder
|
||||
:Author: Antonio Vazquez (antonioya)
|
||||
:Maintainer: Antonio Vazquez (antonioya)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,42 +0,0 @@
|
||||
|
||||
************
|
||||
Bolt Factory
|
||||
************
|
||||
|
||||
This add-on creates bolts and nuts with options for bolt/nut, bit type and head type.
|
||||
|
||||
.. figure:: /images/addons_add-mesh_boltfactory_example.jpg
|
||||
:align: center
|
||||
:width: 640px
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then BoltFactory to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To Do
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Add a bolt or nut.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Bolt`
|
||||
:File: add_mesh_BoltFactory folder
|
||||
:Author: Aaron Keith
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,99 +0,0 @@
|
||||
|
||||
***************
|
||||
Discombobulator
|
||||
***************
|
||||
|
||||
This add-on creates a greeble object based on selected faces.
|
||||
It quickly creates science fiction style panels across your mesh.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then Discombobulator to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
.. figure:: /images/addons_add-mesh_discombobulator_ui.jpg
|
||||
:align: right
|
||||
:width: 310px
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
||||
|
||||
Discombobulator works in mesh Object Mode and mesh Edit Mode.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
#. Select the quad faces you want to add greebles to.
|
||||
#. :menuselection:`3D Viewport --> Add --> Mesh --> Discombobulator`.
|
||||
#. Now you will see the interface but nothing happens to the mesh.
|
||||
#. It's useful at this point to read the *Usage Information* at the top of the panel.
|
||||
#. With the default settings press *OK* and you will see a new mesh object created that has raised areas.
|
||||
#. Let's look at the settings below.
|
||||
|
||||
|
||||
Protrusions Settings
|
||||
--------------------
|
||||
|
||||
Make Protrusions
|
||||
This checkbox turns on the functions for protrusions.
|
||||
If you turn it off, nothing will happen when you run the script.
|
||||
You may want to turn Protrusions off if you are using only the Doodads function described further below.
|
||||
|
||||
Min/Max Height
|
||||
Adjust the height of the protrusions, you can use negative and positive values.
|
||||
The negative values will create the protrusions on the opposite side of the selected face(s).
|
||||
|
||||
Min/Max Taper
|
||||
Adjust the taper of the protrusions. This will affect the pointiness of the protrusions.
|
||||
|
||||
1, 2, 3, 4
|
||||
These checkboxes provide options for the subdivision of the faces or the amount of protrusions per face.
|
||||
Based on random, if you have all selected, each face will have either 1, 2, 3 or 4 protrusions.
|
||||
Use only one or any combination and the faces will only have your selected value(s).
|
||||
|
||||
Repeat Protrusions
|
||||
This button creates extra levels of protrusions built on top of the first set of protrusions.
|
||||
It's important not to set this too high as it may take time to compute.
|
||||
Note also that repeating protrusions is based on face normals and
|
||||
will create protrusions on all faces created in the previous iteration.
|
||||
|
||||
|
||||
Doodads Settings
|
||||
----------------
|
||||
|
||||
This checkbox allows you to use your own mesh object and have it applied on top of the protrusions.
|
||||
|
||||
Doodads can be a little tricky to set up:
|
||||
|
||||
#. Select the object(s) you want to use as a doodad.
|
||||
#. Run Discombobulator and press *Pick Doodad*.
|
||||
#. Select your mesh to scatter doodads on and run Discombobulator.
|
||||
|
||||
|
||||
Materials Settings
|
||||
------------------
|
||||
|
||||
These settings allow you to add materials to the sides and tops of the protrusions.
|
||||
|
||||
#. It's best to set up your materials first. Add two different materials to your mesh (two materials slots).
|
||||
#. Number 0 will be the first slot in your materials, number 1 will be the second slot.
|
||||
#. Run Discombobulator and you can pick the material for the top or sides.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Add Greeble type effect to a mesh.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
||||
:File: add_mesh_discombobulator folder
|
||||
:Author: Evan J. Rosky (syrux)
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,165 +0,0 @@
|
||||
|
||||
**************
|
||||
Geodesic Domes
|
||||
**************
|
||||
|
||||
Original introduction from Andy Houston (Blender 2.4 series)
|
||||
|
||||
- Geodesic spheres based on icosahedrons, octahedrons and tetrahedrons.
|
||||
- Triangular, hexagonal and hex/tri combo face options.
|
||||
- A function that turns the current shape into its geometric dual (sort of).
|
||||
- Grid, Cylinder, Parabola, Torus and Ball primitives.
|
||||
- Hubs and Struts. Fill out those edges and vertices with your custom, decorative meshes.
|
||||
- Superformula deforming. Create rounded triangles, wobbly shapes, etc.
|
||||
|
||||
Introduction by Brendon Murphy (Blender 2.6/7 series)
|
||||
|
||||
- This script can be used to create geodesic objects, not limited to domes or spheres.
|
||||
- Each mesh type created has it's own set of editable parameters.
|
||||
- By editing the parameters, you can create many simple or complex mesh shapes.
|
||||
- Create an equal-sided pyramid, a soccer ball, a wine glass and more.
|
||||
- Limited only by your imagination (and some cool math limitations).
|
||||
- Create complex mesh deformations with the superformula parameters.
|
||||
- In the next section we will cover the menu types and how to use the parameters to "design" your mesh.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then Geodesic Domes to enable the script.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
Main
|
||||
The *Main* menu is where you will do most of your work.
|
||||
The geodesic default triangle will be shown in the 3D Viewport and
|
||||
the Object Creation parameters can be accessed here.
|
||||
Please note: I find it's easier to use the Object Creation parameters first before moving on to
|
||||
Faces, Struts and Hubs, these will be explained in the sections below.
|
||||
|
||||
For now, let's look at the Object Types and their parameters:
|
||||
|
||||
Objects
|
||||
There are six Object types you can create by default.
|
||||
Using the parameters you can build upon these objects to create more object types.
|
||||
Object Types have unique parameter sets and share the Superformula parameters (described below).
|
||||
|
||||
|
||||
Geodesic Object Class Types
|
||||
===========================
|
||||
|
||||
Geodesic
|
||||
Please note, the *Frequency* parameters have a high impact on object creation.
|
||||
To create a Geodesic Dome you must increase the *Frequency* or the default Triangle.
|
||||
|
||||
Subdivide Basic/Triacon
|
||||
Class 1 is the "equilateral triangle".
|
||||
Class 2 is the "cube".
|
||||
|
||||
Hedron
|
||||
Choose between Tetrahedron, Octahedron, Icosahedron.
|
||||
|
||||
Point
|
||||
Point (vertex), edge or face pointing upwards.
|
||||
|
||||
Shape
|
||||
Choose between tri, hex or star face types.
|
||||
|
||||
Round
|
||||
Choose between spherical or flat. (May not work for all object types.)
|
||||
|
||||
|
||||
Geodesic Object Parameters
|
||||
--------------------------
|
||||
|
||||
Frequency
|
||||
Subdivide base triangles.
|
||||
|
||||
Radius
|
||||
Overall radius.
|
||||
|
||||
Eccentricity
|
||||
Scaling on the X/Y axis.
|
||||
|
||||
Squish
|
||||
Scaling on the Z axis.
|
||||
|
||||
Square (X/Y)
|
||||
Superellipse action in X/Y.
|
||||
|
||||
Square (Z)
|
||||
Superellipse action in Z.
|
||||
|
||||
Rotate (X/Y)
|
||||
Rotate superellipse action in X/Y.
|
||||
|
||||
Rotate (Z)
|
||||
Rotate superellipse action in Z.
|
||||
|
||||
Dual
|
||||
Faces become vertices, vertices become faces, edges flip.
|
||||
|
||||
|
||||
Geodesic Object Types
|
||||
=====================
|
||||
|
||||
There are six Object types you can create.
|
||||
Each type has it's own set of parameters.
|
||||
As you can see most menu items are self explanatory.
|
||||
The tooltips will give you further information on individual parameters.
|
||||
|
||||
Gap
|
||||
Shrink faces in direction.
|
||||
Add or remove rows of faces based on height (Z) or (X/Y).
|
||||
|
||||
Phase
|
||||
Rotate around a pivot.
|
||||
Useful for rotating deformation or use with *Gap*.
|
||||
|
||||
|
||||
Import Your Mesh
|
||||
================
|
||||
|
||||
You can import your own mesh into Geodesic Domes for use within the script.
|
||||
This is limited to the Faces, Struts and Hubs menus.
|
||||
|
||||
|
||||
Faces
|
||||
=====
|
||||
|
||||
This Section adds extrusions and edits face structures on a mesh.
|
||||
|
||||
|
||||
Struts
|
||||
======
|
||||
|
||||
This section allows you to extrude an object along the edges of a mesh.
|
||||
|
||||
|
||||
Hubs
|
||||
====
|
||||
|
||||
This section allows you to place an object at the vertex on a mesh.
|
||||
|
||||
|
||||
Superformula Menu
|
||||
=================
|
||||
|
||||
The superformula settings add a variety of settings such as pinching, twisting, inflate and
|
||||
more complex edit types.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Create Geodesic object types.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
||||
:File: add_mesh_geodesic_domes folder
|
||||
:Author: Andy Housten
|
||||
:Maintainer: To Do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,16 +0,0 @@
|
||||
|
||||
############
|
||||
Add Mesh
|
||||
############
|
||||
|
||||
These add-ons relate to Mesh object creation.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
ant_landscape.rst
|
||||
archimesh.rst
|
||||
boltfactory.rst
|
||||
discombobulator.rst
|
||||
geodesic_domes.rst
|
||||
mesh_extra_objects.rst
|
@ -1,77 +0,0 @@
|
||||
|
||||
**********************
|
||||
Add Mesh Extra Objects
|
||||
**********************
|
||||
|
||||
This add-on groups many mesh object creation add-ons into a single one.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Add Mesh then Extra Objects to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh menu`.
|
||||
|
||||
|
||||
Information
|
||||
===========
|
||||
|
||||
Included mesh object add-ons:
|
||||
|
||||
Parent to Empty by Liero
|
||||
Parent the selected mesh to an empty object type.
|
||||
3D Function Surface by Buerbaum Martin (Pontiac), Elod Csirmaz
|
||||
Create objects with XYZ math functions. Includes several presets by elfnor.
|
||||
Beam Builder by revolt_randy, Jambay
|
||||
Create five types of beams.
|
||||
Gears by Michel J. Anders (varkenvarken)
|
||||
Create gear and worm type mesh.
|
||||
Gemstones by Pontiac, Fourmadmen, Dreampainter, Dominic Kroper, (dommetysk)
|
||||
Create three types of diamond shapes.
|
||||
Honeycomb by Kayo Phoenix
|
||||
Create a honeycomb patterned mesh.
|
||||
Menger Sponge by sugiany
|
||||
Create iterated Menger sponges.
|
||||
Pipe Joints by Buerbaum Martin (Pontiac)
|
||||
Create angled and crossed pipes.
|
||||
Step Pyramid by Phil Cote (cotejrp1)
|
||||
Create a step pyramid with variable settings.
|
||||
Round Cube by Alain Ducharme (phymec)
|
||||
Create a quad mesh sphere with several presets.
|
||||
Regular Solid by DreamPainter
|
||||
Create polyhedron based objects.
|
||||
Star by Fourmadmen
|
||||
Create a simple star shape.
|
||||
Supertoroid by DreamPainter
|
||||
Create a torus object with new parameters for boxed shape and more.
|
||||
Teapot by Anthony D'Agostino
|
||||
Traditional style mesh teapot and a secondary spoon object.
|
||||
Torus Knot by Anthony D'Agostino
|
||||
A simple mesh torus knot with three types.
|
||||
Triangles by Sjaak-de-Draak
|
||||
Create math based triangles.
|
||||
Twisted Torus by Paulo_Gomes
|
||||
Standard torus object with a variable twisted mesh.
|
||||
Add Vertex by meta-androcto, Pablo Vazquez, Liero, Richard Wilks
|
||||
Add a single vertex object or object origin as a fast start to mesh editing.
|
||||
Wall Factory by dudecon, jambay
|
||||
Add castle type walls with settings for openings.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Add Mesh
|
||||
:Description: Create many extra object types.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
||||
:File: add_mesh_extra_objects folder
|
||||
:Author: Multiple Authors
|
||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,38 +0,0 @@
|
||||
|
||||
*******
|
||||
Animall
|
||||
*******
|
||||
|
||||
Allows animation of mesh, lattice, curve and surface data.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Animation then AnimAll to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Animate tab`.
|
||||
|
||||
|
||||
Tutorial
|
||||
========
|
||||
|
||||
See this `tutorial video <https://www.youtube.com/watch?v=xlJ71XChDuY>`__
|
||||
on how to activate the add-on along with basic usage.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Animation
|
||||
:Description: Allows animation of mesh, lattice, curve and surface data.
|
||||
:Location: :menuselection:`Sidebar --> Animation tab`
|
||||
:File: animation_animall.py
|
||||
:Author: Daniel Salazar (zanqdo)
|
||||
:Maintainer: Damien Picard (pioverfour)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,48 +0,0 @@
|
||||
|
||||
*******************
|
||||
Bone Selection Sets
|
||||
*******************
|
||||
|
||||
This add-on allows the creation, deletion and editing of selection sets.
|
||||
|
||||
Selection Sets are a feature that allows the definition of sets of bones for easy selection while animating.
|
||||
The sets can be created in local and linked armature overrides.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Animation then Bone Selection Sets to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`Properties --> Armature --> Selection Sets`.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The *Select* and *Deselect* buttons are used to manipulate the current selection of bones,
|
||||
while the *Assign* and *Remove* buttons serve to add or remove
|
||||
the currently selected bones to the currently selected set.
|
||||
A bone can belong to more than one selection set.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:doc:`/animation/armatures/properties/bone_collections` for a way to organise groups of bones.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Animation
|
||||
:Description: List of Bone sets for easy selection while animating.
|
||||
:Location: :menuselection:`Properties --> Armature --> Selection Sets`
|
||||
:File: bone_selection_sets.py
|
||||
:Author: Inês Almeida, Sybren A. Stüvel, Antony Riakiotakis, Dan Eicher
|
||||
:Maintainer: to do
|
||||
:License: GPL 2+
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
BIN
manual/addons/animation/copy_global_transform-fix_to_camera.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-fix_to_camera.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-main.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-main.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-mirror_options.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-mirror_options.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-relative.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-relative.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -23,11 +23,14 @@ Activation
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in :menuselection:`3D Viewport --> N-panel --> Animation tab`.
|
||||
|
||||
.. figure:: /images/addons_animation_copy-global-transform.png
|
||||
.. figure:: copy_global_transform-main.webp
|
||||
:align: right
|
||||
|
||||
Located in :menuselection:`3D Viewport --> N-panel --> Animation tab`.
|
||||
|
||||
The figure on the right shows the main functionality of the Copy Global
|
||||
Transform panel. The collapsed panels are described each in their own section
|
||||
below.
|
||||
|
||||
Description
|
||||
===========
|
||||
@ -59,7 +62,10 @@ Paste and Bake
|
||||
.. _copy-global-transform-mirror-options:
|
||||
|
||||
Mirror Options
|
||||
==============
|
||||
++++++++++++++
|
||||
|
||||
.. figure:: copy_global_transform-mirror_options.webp
|
||||
:align: right
|
||||
|
||||
The copied transform can be mirrored relative to an object or a :term:`Bone`.
|
||||
This requires choosing that object or bone first.
|
||||
@ -80,6 +86,61 @@ After pasting with 'Paste Mirrored', the mirror axes can be chosen in the
|
||||
:ref:`redo panel <bpy.ops.screen.redo_last>`.
|
||||
|
||||
|
||||
.. _copy-global-transform-fix-to-camera:
|
||||
|
||||
Fix to Camera
|
||||
+++++++++++++
|
||||
|
||||
.. figure:: copy_global_transform-fix_to_camera.webp
|
||||
:align: right
|
||||
|
||||
Also known as "bake to camera", this operator will ensure selected objects/bones
|
||||
remain static (relative to the camera) on unkeyed frames.
|
||||
|
||||
This is done by generating new keys. These keys will be of :ref:`type
|
||||
'Generated' <keyframe-type>` so that it remains clear which keys were manually
|
||||
created, and which were generated. This way the tool can be re-run to
|
||||
re-generate the keys.
|
||||
|
||||
1. Ensure your animation is keyed using constant interpolation. If this is not
|
||||
the case yet, bake your animation (at least the transform channels). This
|
||||
tool does _not_ work with the :ref:`"Stepped" F-Curve modifier <bpy.types.FModifierStepped>`
|
||||
2. Choose which of the Location/Rotation/Scale channels you want to fix to the
|
||||
camera. When unsure, make sure they are all checked.
|
||||
3. Press the "Fix to Camera" button.
|
||||
|
||||
To undo the effect of the "Fix to Camera" operator, click on the trash bin
|
||||
button. That will remove all the generated keys in either the scene range or the
|
||||
frame range.
|
||||
|
||||
The tool operates on the scene frame range, or on the preview range if that is
|
||||
active. Keys outside that range are ignored, both when fixing to the camera and
|
||||
when removing generated keys.
|
||||
|
||||
.. warning::
|
||||
|
||||
This tool assumes that *all* keys with type 'Generated' are equal. It will
|
||||
overwrite them (or remove them, depending on which button you press).
|
||||
|
||||
|
||||
Relative Copy-Paste
|
||||
+++++++++++++++++++
|
||||
|
||||
.. figure:: copy_global_transform-relative.webp
|
||||
:align: right
|
||||
|
||||
The "Relative" panel has copy/paste buttons that work relative to a chosen
|
||||
object. When copying, the world-space transform is determined, and then adjusted
|
||||
to become relative to the world-space transform of the chosen object. When
|
||||
pasting, this happens in reverse.
|
||||
|
||||
If no object is chosen, the copy/paste will happen relative to the active scene
|
||||
camera. What is the active scene camera is determined for every action, so when
|
||||
you paste it can be different from when you copied. This can help to keep an
|
||||
object visually in the same place when switching cameras, or when switching
|
||||
between scenes.
|
||||
|
||||
|
||||
Limitations
|
||||
===========
|
||||
|
||||
|
@ -1,61 +0,0 @@
|
||||
|
||||
*********************
|
||||
Corrective Shape Keys
|
||||
*********************
|
||||
|
||||
From the Author(s):
|
||||
|
||||
I merged and converted two old scripts, to let you make corrective shape keys.
|
||||
The first `script <http://www.apexbow.com/randd.html>`__ was created by Tal Trachtman in 2007 and
|
||||
the second one I believe was done by Brecht. That one works with any combination of modifiers,
|
||||
but it is very slow (like three minutes for a mesh with 4,000 points).
|
||||
The other one works only with objects that have no more than one armature.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Animation then Corrective Shape Keys to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`Properties --> Object Data --> Shape Keys Specials`.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
#. Select a posed character object and click on *Create duplicate for editing* in the shape keys panel.
|
||||
This will create a copy of the mesh that you can edit/sculpt.
|
||||
#. Select your sculpted copy and then the character object.
|
||||
Click on the little black arrow in the shape keys panel and choose one of the options shown in the image.
|
||||
If your object has only Armature modifiers, choose the faster method.
|
||||
If other (more complex?) modifiers are involved, or you want to incorporate dual quaternion skinning
|
||||
(now called *Preserve Volume* in the UI) you will have to use the slower method.
|
||||
|
||||
If all went right, your character or object should have the new shape key for your pose.
|
||||
If not, double check that your mesh and armature object have no translation or rotation and try again.
|
||||
|
||||
|
||||
Known Limitations
|
||||
=================
|
||||
|
||||
- Target mesh may not have any transformation at object level, it will be set to zero.
|
||||
- Fast/Armature method does not work with Bone envelopes or dual quaternions,
|
||||
both settings will be disabled in the modifier.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Animation
|
||||
:Description: Creates a corrective shape key for the current pose.
|
||||
:Location: :menuselection:`Properties --> Object Data --> Shape Keys Specials`
|
||||
:File: animation_corrective_shape_key.py
|
||||
:Author: Ivo Grigull (loolarge), Tal Trachtman, Tokikake
|
||||
:Maintainer: to do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -8,8 +8,4 @@ These add-ons relate to helper tools for the animation process and animation.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
animall.rst
|
||||
bone_selection_sets.rst
|
||||
copy_global_transform.rst
|
||||
corrective_shape_keys.rst
|
||||
turnaround_camera.rst
|
||||
|
@ -1,43 +0,0 @@
|
||||
|
||||
*****************
|
||||
Turnaround Camera
|
||||
*****************
|
||||
|
||||
This add-on creates an animated camera turn around an object,
|
||||
suitable for product visualizations and character turnarounds.
|
||||
Executing the script creates an empty object linked to the camera at
|
||||
the selected object position or cursor position if chosen.
|
||||
The rotation can be defined by revolutions in X, Y, or Z axis.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Animation then Turnaround Camera to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
||||
|
||||
|
||||
Tutorial
|
||||
========
|
||||
|
||||
See this `tutorial video <https://www.youtube.com/watch?v=sgjx0ycmTAo>`__
|
||||
on how to activate the add-on along with basic usage.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Animation
|
||||
:Description: Add a camera rotation around selected object.
|
||||
:Location: :menuselection:`Sidebar --> View tab --> Turnaround Camera`
|
||||
:File: camera_turnaround.py
|
||||
:Author: Antonio Vazquez (antonioya)
|
||||
:Maintainer: to do
|
||||
:License: GPL 2+
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,11 +0,0 @@
|
||||
|
||||
##########
|
||||
Baking
|
||||
##########
|
||||
|
||||
These add-ons add UI elements for faster baking access.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
vdm_brush_baker.rst
|
@ -1,42 +0,0 @@
|
||||
|
||||
***************
|
||||
VDM Brush Baker
|
||||
***************
|
||||
|
||||
This is a small add-on that makes it easy to create vector displacement map (aka VDM) brushes in Blender.
|
||||
Sculpting setups and the brushes can be created with one click.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Switch the category to "Baking"
|
||||
- Enable the "VDM Brush Baker" addon.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Tools`.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Use the "Create Sculpting Plane" button for an optimal starting setup for sculpting your own VDM brush.
|
||||
|
||||
Use the "Render and Create VDM Brush" button to convert bake the plane into a new brush.
|
||||
The brush will be added with all relevant options and a vector displacement map
|
||||
is saved near the blender file as an Open EXR file (or a 'tmp' folder if the blender file wasn't saved).
|
||||
New brushes can be found as Draw brushes in sculpt mode.
|
||||
The add-on won't create any preview images for these brushes.
|
||||
|
||||
|
||||
Tips
|
||||
----
|
||||
|
||||
- While Sculpting make sure to mask the borders of the plane for a better result.
|
||||
- If your VDM brush gets cut off at the corners,
|
||||
you can increase the size inside the texture panel of the brush settings to 1.1 or 1.2 for each axis.
|
||||
- A vdm-resolution of 512 px or lower is usually enough. Unless you have extremely detailed sculptings.
|
@ -1,197 +0,0 @@
|
||||
|
||||
***************
|
||||
Add Camera Rigs
|
||||
***************
|
||||
|
||||
.. figure:: /images/addons_camera_camera-rigs_ui.png
|
||||
:align: center
|
||||
|
||||
This add-on extends the functionality of a camera by creating control rigs with widgets
|
||||
and adds a panel to quickly access the camera's settings from the 3D Viewport.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Camera then Add Camera Rigs to enable the script.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
After activating the add-on, it will place three menu items in the :menuselection:`Add --> Camera` menu.
|
||||
They are Dolly Rig, Crane Rig and 2D Camera Rig.
|
||||
|
||||
The first two rigs are very similar except the "Crane Rig" has two extra adjustable bones (Arm Height and Arm Length)
|
||||
to make it easier to achieve a cinematic crane shot.
|
||||
|
||||
The 2D Camera Rig is mostly useful for 2D shots, when the camera is static and
|
||||
the action happens in front of it (like a theater stage).
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Add a :menuselection:`Add --> Camera --> Dolly Camera Rig, Crane Camera Rig or 2D Camera Rig`.
|
||||
This will build the rig at the cursor location, add a new camera, making it the new active scene camera.
|
||||
|
||||
When the Rig is selected, the camera properties will be displayed in the Sidebar.
|
||||
|
||||
|
||||
3D Rigs (Dolly & Crane)
|
||||
=======================
|
||||
|
||||
Root Bone
|
||||
This is the parent of the entire rig.
|
||||
Control Bone
|
||||
This is the bone (named ``Camera``) that will translate the camera around. By default it will track to the aim
|
||||
bone.
|
||||
Aim Bone
|
||||
The camera will point at this bone (named ``Aim``).
|
||||
You can also tilt the camera by rotating the aim on the Y axis.
|
||||
|
||||
|
||||
2D Rig
|
||||
======
|
||||
|
||||
This rig is designed to provide fine controls over the framing while aiming at one direction. With it, you can
|
||||
frame the action by moving two of the corners of the camera, instead of moving and rotating it. It produces smooth
|
||||
movements that would be hard to achieve without it, by using complex drivers to calculate the appropriate camera
|
||||
settings.
|
||||
|
||||
Root Bone
|
||||
This is the parent of the entire rig.
|
||||
It is the only bone that you should rotate to aim approximately at the action.
|
||||
Left_corner and Right_corner Bones
|
||||
These are the most important bones in this rig.
|
||||
You can move them to quickly set and animate a framing.
|
||||
The camera will adjust its parameters to adapt to this framing (focal length, rotation / shift).
|
||||
They should always be at the same height (Y axis in the camera's coordinate system).
|
||||
Camera Bone
|
||||
You can move the camera around, and it will compensate its settings to frame the two corners.
|
||||
For instance, if you leave the corners fixed on both sides of the subject and move the camera forward,
|
||||
you will achieve an efficient dolly zoom effect.
|
||||
|
||||
|
||||
Modes
|
||||
-----
|
||||
|
||||
There are two modes of operation for the 2D rig: Rotation and Shift.
|
||||
You can switch between the two modes in the add-on's Interface_.
|
||||
|
||||
Rotation is the default mode, and will rotate the camera to aim at and keep the corners in its frame.
|
||||
Shift mode, on the other hand, uses the Shift properties on the Camera to achieve a cropping effect instead of a pan.
|
||||
|
||||
|
||||
Limitations
|
||||
-----------
|
||||
|
||||
- When moving the corners too far to the side in rotation mode, perspective makes the rig much less accurate.
|
||||
- Rotation mode is unsupported for orthographic cameras.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Widgets
|
||||
-------
|
||||
|
||||
When a rig is built, the add-on will create a collection for all the custom bone shapes
|
||||
(named ``Widgets``). When the custom shapes (widgets) are built
|
||||
they will use the prefix ``WGT-``. If you have more than one rig in the scene,
|
||||
it will use the same widgets in the same collection rather than duplicating them.
|
||||
The default collection name and the widget prefix can be set in the preferences of the add-on.
|
||||
(This will not change the name of any existing widgets or collection,
|
||||
only ones that are created after you change the setting.)
|
||||
|
||||
.. figure:: /images/addons_camera_camera-rigs_prefs.png
|
||||
:align: center
|
||||
|
||||
|
||||
Panel
|
||||
-----
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: All Modes
|
||||
:Panel: :menuselection:`3D Viewport --> Sidebar --> Item --> Camera Rig`
|
||||
|
||||
The panel will display the most used camera settings.
|
||||
Only the added features will be explain here, for more information refer to the :doc:`/render/cameras` section.
|
||||
|
||||
Set DOF Bone
|
||||
The *Set DOF Bone* button will automatically set up the camera so that it uses the camera rig’s Aim bone as a
|
||||
target for the depth of field (DOF).
|
||||
|
||||
Focal Distance/F-Stop/Focal Length
|
||||
These are custom properties on the camera bone that drive the equivalent setting on the actual camera.
|
||||
This makes it animatable inside the armature object rather than having to animate the armature and the camera.
|
||||
|
||||
Show in Front
|
||||
Will make the rig object visible through all other geometry.
|
||||
(Useful if you have a fly through scene or if other meshes are in the way.)
|
||||
|
||||
Lock Camera Select
|
||||
The *Lock Camera Select* is a toggle button to make the camera unselectable (so you can't accidentally delete it).
|
||||
Tracking (Aim Lock)
|
||||
This slider controls the Track To constraint on the control bone.
|
||||
Turn it off and the bone will not point to the aim bone anymore.
|
||||
|
||||
.. figure:: /images/addons_camera_camera-rigs_crane-arm.png
|
||||
:align: center
|
||||
:width: 240px
|
||||
|
||||
Crane Rig Height, Arm Length
|
||||
The *Arm Height* and *Arm Length* sliders at the bottom of the UI show the Y axis scale of the relevant bone.
|
||||
By default, both the height and the arm length are at 1 unit in size.
|
||||
These values only show in the interface when a crane rig is selected, they are also animatable.
|
||||
|
||||
Rotation/Shift
|
||||
The Rotation/Shift slider lets you switch between Rotation and Shift Modes_ for the 2D Camera rig.
|
||||
You can also choose an intermediate value to have a bit of both.
|
||||
|
||||
|
||||
Multiple Cameras
|
||||
================
|
||||
|
||||
It is possible to add as many rigs as your scene needs.
|
||||
The *Make Camera Active* will appear if the camera attached to the selected rig is **not** the active camera.
|
||||
By pressing this, it will make this camera the active one.
|
||||
|
||||
|
||||
Camera Switching
|
||||
----------------
|
||||
|
||||
If you wish to switch cameras during an animation, you can do this with the *Add Marker and Bind* button.
|
||||
This uses Blender's built-in camera binding tool to a Timeline marker.
|
||||
When pressed, it will add a marker to the Timeline and bind it to the camera controlled by the selected rig.
|
||||
Go to another frame, select a different camera rig and press it again.
|
||||
Now you have two markers and when you scrub the Timeline you will see the active camera switch accordingly.
|
||||
(Repeat this process as many times as needed).
|
||||
These markers can then also be dragged around in the Timeline to change the frame at which they will switch.
|
||||
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
If the Aim tracking or 2D rig are not functioning, check that you have "Auto Run Python Scripts"
|
||||
enabled in the Preferences :menuselection:`Preferences --> Save & Load --> Auto Run Python Scripts`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
- The `author's Github repository <https://github.com/waylow/add_camera_rigs>`__.
|
||||
- A `blog post <https://lacuisine.tech/2d-camera-rig/>`__ explaining the 2D rig by its authors.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Camera
|
||||
:Description: Adds a camera rig with a UI.
|
||||
:Location: :menuselection:`3D Viewport --> Add --> Camera`
|
||||
:File: add_camera_rigs folder
|
||||
:Author: Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez
|
||||
:Maintainer: to do
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,11 +0,0 @@
|
||||
|
||||
##########
|
||||
Camera
|
||||
##########
|
||||
|
||||
These add-ons relate to camera objects and tools.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
camera_rigs.rst
|
@ -1,26 +0,0 @@
|
||||
|
||||
**********************
|
||||
Dependency Graph Debug
|
||||
**********************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Development
|
||||
:Description: Various dependency graph debugging tools.
|
||||
:Location: :menuselection:`Properties --> View Layers`
|
||||
:File: depsgraph_debug.py
|
||||
:Author: Sergey Sharybin
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- This add-on is bundled with Blender.
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Development then Dependency Graph Debug to enable the script.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
- To Do
|
@ -1,46 +0,0 @@
|
||||
|
||||
********************
|
||||
Edit Operator Source
|
||||
********************
|
||||
|
||||
This add-on allows searching for operator names (``bl_idname``) and opens source files containing them.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Development then Edit Operator Source to enable the script.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In the :menuselection:`Text Editor --> Sidebar` on the left find the Edit Operator panel and
|
||||
press the *Edit Operator* button. A searchable menu will show up. Scroll down until the operator is found.
|
||||
Enter the keywords in the search field to narrow down the available options.
|
||||
The source file containing the operator will open pointing to it's line.
|
||||
|
||||
To access the previously opened text files, select them from the header data-block menu.
|
||||
|
||||
.. note::
|
||||
|
||||
Similar to the *Operator Cheat Sheet*, the script will produce a small memory leak (~0.03mb)
|
||||
when enabled by accessing the Operator attributes from Python.
|
||||
It is a conscious trade-off made by Blender developers, as the needed setting/call
|
||||
in the source C code for this purpose, would increase the size of every Python instance by 4 bytes.
|
||||
In case of complex scenes, the increased memory footprint would be nontrivial compared to
|
||||
the few usage cases where it is currently needed.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Development
|
||||
:Description: Opens source file of chosen operator or call locations, if source not available.
|
||||
:Location: :menuselection:`Text Editor --> Sidebar --> Edit Operator`
|
||||
:File: development_edit_operator.py
|
||||
:Author: scorpion81
|
||||
:Maintainer: scorpion81
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,46 +0,0 @@
|
||||
|
||||
***********
|
||||
Icon Viewer
|
||||
***********
|
||||
|
||||
An add-on that will help you to find an icon for your script and copy its name to the clipboard.
|
||||
|
||||
.. figure:: /images/addons_development_icon-viewer_ui.jpg
|
||||
:align: center
|
||||
:width: 700px
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Development then Icon Viewer to enable the script.
|
||||
|
||||
|
||||
Interface
|
||||
=========
|
||||
|
||||
Located in the :menuselection:`Text Editor --> Sidebar --> Icon Viewer`.
|
||||
|
||||
Located in the :menuselection:`Python Console --> Header --> Icon Viewer`.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
#. Use the search field to filter the icons displayed by name.
|
||||
#. Click on an icon in the display and it's name will be copied to the clipboard.
|
||||
#. Paste the name into the text editor of choice to use it in your add-on.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Development
|
||||
:Description: Click an icon to copy its name to the clipboard.
|
||||
:Location: :menuselection:`Text Editor --> Dev Tab --> Icon Viewer`
|
||||
:File: development_icon_get.py
|
||||
:Author: roaoao
|
||||
:Maintainer: Blender Foundation
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,14 +0,0 @@
|
||||
|
||||
###############
|
||||
Development
|
||||
###############
|
||||
|
||||
These add-ons relate to Development tools.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
dependency_graph.rst
|
||||
edit_operator.rst
|
||||
icon_viewer.rst
|
||||
is_key_free.rst
|
@ -1,41 +0,0 @@
|
||||
|
||||
***********
|
||||
Is Key Free
|
||||
***********
|
||||
|
||||
Primarily used to check the availability of shortcuts and the editor types they are associated with.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Development then Is key Free to enable the script.
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
Search
|
||||
All the registered keys associated with the pattern entered in the *Key* field and
|
||||
selected modifier shortcuts will be displayed. Click the Search icon to list the associated keys.
|
||||
|
||||
Quick Type
|
||||
Alternatively, a list with free shortcuts is available for quick access of keys from
|
||||
the *Quick Type* selector.
|
||||
|
||||
List All Shortcuts
|
||||
Print a list of all used shortcuts to the Text editor.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Development
|
||||
:Description: Find free shortcuts, inform about used and print a key list.
|
||||
:Location: :menuselection:`Text Editor --> Sidebar --> Dev tab`
|
||||
:File: development_iskeyfree.py
|
||||
:Author: Antonio Vazquez (antonioya)
|
||||
:Maintainer: Blender Foundation
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,61 +0,0 @@
|
||||
|
||||
****************
|
||||
Camera Animation
|
||||
****************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Export --> Cameras & Markers (.py)`
|
||||
|
||||
Exports a .py file containing information about the animation of cameras in the scene.
|
||||
This file can be used to 'import' these cameras and their animation to another .blend file.
|
||||
|
||||
|
||||
Exported Data
|
||||
=============
|
||||
|
||||
This is the type of data associated with the camera that get included in the .py file.
|
||||
|
||||
|
||||
Static Data
|
||||
-----------
|
||||
|
||||
- Shift X
|
||||
- Shift Y
|
||||
- Depth of Field Focus Distance
|
||||
- Clip Start
|
||||
- Clip End
|
||||
- Viewport Display Size
|
||||
- Render Visibility
|
||||
|
||||
|
||||
Animated Data
|
||||
-------------
|
||||
|
||||
- Focal Length
|
||||
- Location
|
||||
- Rotation
|
||||
- Scale
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
Export
|
||||
------
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Start / End
|
||||
Sets the range of animation frames to export to the .py file.
|
||||
Only Selected
|
||||
Toggle between exporting only selected cameras or all cameras in the scene.
|
||||
|
||||
|
||||
Import
|
||||
------
|
||||
|
||||
To import the .py file, go to Blender's Text Editor.
|
||||
:menuselection:`Text --> Open --> YourExportedFile (.py)`
|
@ -1,58 +0,0 @@
|
||||
|
||||
*********************
|
||||
Nuke Animation (chan)
|
||||
*********************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> Nuke (.chan)`
|
||||
|
||||
The chan format is used to store camera animations, including location, rotation and optionally field of view.
|
||||
This add-on can import and export chan files using the active object's animation.
|
||||
|
||||
A chan file is an ASCII file with parameter values saved in columns, one column per parameter, one line per frame.
|
||||
The properties saved and read by this script are:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
frame location.x location.y location.z rotation_euler.x rotation_euler.y rotation_euler.z angle_y
|
||||
|
||||
The file format itself is as simple as can be, but its simplicity is its greatest advantage.
|
||||
It is being used by applications like Nuke and Houdini, and since it is so simple
|
||||
to write an import or export script for it is both fast and easy.
|
||||
|
||||
``angle_y`` stands for vertical field of view. It is used for calculation of the camera lens,
|
||||
and only applies to camera animations, while importing/exporting object animation this parameter is skipped.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
The add-on gets the currently active object (works in Object Mode only) and
|
||||
saves/loads its transformations from or to a simple ASCII file, through the whole animation range
|
||||
(set either in the Timeline or in the render settings). All you need to do is to select an object
|
||||
and run the add-on in :menuselection:`File --> Import/Export --> Nuke (.chan)`.
|
||||
|
||||
Note that Chan saves only the raw property values (``rotation_x``, ``rotation_y``, ``rotation_z``, etc.),
|
||||
so you have to mind the rotation order. In other words --
|
||||
the rotation orders during export and import must be the same
|
||||
(both are being set in the File Browser while importing/exporting).
|
||||
|
||||
Another thing is the camera sensor size and its influence on camera lens.
|
||||
You can set the sensor size so you can fit a real life cameras (default in Blender is 32 × 18),
|
||||
the best practice in this case is using horizontal fit for the camera (Nuke is using this as a default).
|
||||
While importing the camera from a chan file you have to remember to set the same sensor size as
|
||||
you had in Nuke (or other software that this camera has been exported).
|
||||
|
||||
.. tip:: File names
|
||||
|
||||
It is a good practice to save the chan files with it's rotations order and sensor size stored in a file name
|
||||
(i.e. ``camera_for_shot_ZXY_36x24.chan``) so you don't have to look for those values in old files.
|
||||
|
||||
.. tip:: Exporting Geometry to Other Software
|
||||
|
||||
If you want to export the objects movement to other software via the OBJ format,
|
||||
you have to save it with the Z up, Y forward setting.
|
||||
After loading it to the other software it will be rotated 90 degrees,
|
||||
but when you apply the chan file it'll jump into its place.
|
@ -1,12 +0,0 @@
|
||||
|
||||
***************
|
||||
3D-Coat Applink
|
||||
***************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Panel: :menuselection:`Properties --> Scene --> 3D-Coat Settings`
|
||||
|
||||
3D-Coat is a sculpting/painting program. With this 3D-Coat/Blender applink add-on you can exchange
|
||||
objects and textures between these two programs.
|
@ -1,207 +0,0 @@
|
||||
|
||||
****************
|
||||
Images as Planes
|
||||
****************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import --> Images as Planes`,
|
||||
:menuselection:`3D Viewport --> Add --> Image --> Images as Planes`
|
||||
|
||||
.. figure:: /images/addons_import-export_images-as-planes_panel.png
|
||||
:align: right
|
||||
:width: 200px
|
||||
|
||||
Properties panel.
|
||||
|
||||
This add-on imports images and creates planes with them as textures.
|
||||
It automates the process of creating a plane, resizing it to fit the dimensions of the image,
|
||||
and creating a material with the image texture to it.
|
||||
The name of the plane, material, and texture will be derived from the name of the image file.
|
||||
|
||||
You can import a single image, multiple images, or an image sequence/movie clip.
|
||||
If you choose a single image, it creates one plane; if you choose multiple images,
|
||||
it creates as many planes as the number of images you selected, either stacked on top of each other or spaced apart.
|
||||
Selecting a movie clip or an image sequence will create a single plane with an animation.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
You can save the current import settings as an :ref:`Operator Preset <ui-presets>`.
|
||||
|
||||
|
||||
Import Options
|
||||
--------------
|
||||
|
||||
Relative Path
|
||||
Set link to the image file using a :ref:`relative file path <files-blend-relative_paths>`.
|
||||
|
||||
Force Reload
|
||||
Reload the image file if it already exists as an image data-block.
|
||||
|
||||
Animate Image Sequences
|
||||
Import sequentially numbered images as
|
||||
an animated :doc:`image sequence </video_editing/edit/montage/strips/image>` instead of separate planes.
|
||||
They will be imported as a *Clip* texture on a single plane.
|
||||
The frame range will be automatically set but can be changed later.
|
||||
|
||||
|
||||
Compositing Nodes
|
||||
-----------------
|
||||
|
||||
Setup Corner Pin
|
||||
Add a compositing setup of the Image Texture, Scale, and
|
||||
:doc:`Corner Pin </compositing/types/transform/corner_pin>` nodes to inject a warped view of the image into the
|
||||
compositor output. The add-on adds drivers to the corner values of the Corner Pin node so that transforms of the
|
||||
plane and camera drive them. Make sure to have an active camera in the scene before the import.
|
||||
|
||||
.. note::
|
||||
|
||||
You may want to disable the plane object from the final render to prevent it from overlapping the image in
|
||||
the composite.
|
||||
|
||||
|
||||
Material Settings
|
||||
-----------------
|
||||
|
||||
Images as Planes sets up a material to display the image. You can set the type of material and related settings
|
||||
before the import.
|
||||
|
||||
Material Type
|
||||
:Principled:
|
||||
The material will have a :doc:`Principled BSDF </render/shader_nodes/shader/principled>` shader node
|
||||
with default settings as its main component.
|
||||
An Image Texture node linked to the imported image will be connected to the Base Color of the Principled
|
||||
BSDF node.
|
||||
:Shadeless:
|
||||
A shadeless material is a material that does not respond to light from other objects and always has the same
|
||||
color in any lighting environment.
|
||||
This option creates a material with a node group of a mix between a Diffuse and an Emission shader controlled
|
||||
by a Light Path node.
|
||||
:Emit:
|
||||
The material will have a Principled BSDF shader node as its main component, but the Color output from
|
||||
the Image Texture node will be linked to the Emission input instead of the Base Color.
|
||||
|
||||
Strength
|
||||
Set the strength of the emission.
|
||||
|
||||
.. note::
|
||||
|
||||
*Blend Mode* and *Shadow Mode* options are specific to the EEVEE renderer.
|
||||
For a detailed explanation of each option, see :doc:`Material Settings </render/eevee/materials/settings>`.
|
||||
|
||||
Blend Mode
|
||||
Set the alpha blend mode of the material.
|
||||
|
||||
Show Backface
|
||||
Show backside of the transparent part.
|
||||
|
||||
Shadow Mode
|
||||
Set the shadow mode of the material.
|
||||
|
||||
Backface Culling
|
||||
Hide backside of the plane.
|
||||
|
||||
Overwrite Material
|
||||
The add-on sets the name of the new material from the name of the imported image. However, if there is already
|
||||
a material with the same name, Blender will append a number to the name of the material to avoid conflict.
|
||||
This *Override Material* option makes it overwrite the existing material of the same name in that case.
|
||||
|
||||
|
||||
Texture Settings
|
||||
----------------
|
||||
|
||||
.. note::
|
||||
|
||||
For a detailed explanation of each option, see :doc:`Image Texture Node </render/shader_nodes/textures/image>`.
|
||||
|
||||
Interpolation
|
||||
Set the method to scale the image.
|
||||
|
||||
Extension
|
||||
Set how the image is extrapolated past the original bounds.
|
||||
|
||||
Use Alpha
|
||||
Use the alpha channel of the image for transparency.
|
||||
|
||||
Auto Refresh
|
||||
Automatically refresh the images in the viewport on frame changes.
|
||||
|
||||
|
||||
Position
|
||||
--------
|
||||
|
||||
Images as Planes creates the plane at the 3D Cursor's location. With *Offset Planes*, multiple planes will be
|
||||
placed with distance intervals set in *Offset*, along the axis set in *Local Axis*, beginning at the 3D Cursor's
|
||||
location.
|
||||
|
||||
Offset Planes
|
||||
Place multiple planes with an offset. If disabled, all planes will be created at the same location.
|
||||
|
||||
Local Axis
|
||||
Choose a local axis (not the global axis) to offset the planes. For example, if you choose *X+*, the planes
|
||||
will be placed along the positive direction of the plane's local X axis.
|
||||
|
||||
Offset
|
||||
Set a distance between each plane.
|
||||
|
||||
|
||||
Plane Dimensions
|
||||
----------------
|
||||
|
||||
Set how the plane's size will be determined.
|
||||
|
||||
Absolute
|
||||
The size of the plane will be set based on the height value set in *Height*. The width will be set in direct
|
||||
ratio to the height value. For example, with the default height value of 1 m, an image of 800 × 600 pixels
|
||||
will have a width of 1 / 600 × 800 or 1.33 m.
|
||||
|
||||
Height
|
||||
Set the height of the plane.
|
||||
|
||||
Camera Relative
|
||||
The size of the plane will be set to fit or fill the camera frame. This will automatically set the *Align*
|
||||
option to *Face Camera*. Make sure to have an active camera in the scene before the import.
|
||||
|
||||
:Fit:
|
||||
Scale the plane to fit inside the camera frame while preserving the aspect ratio.
|
||||
:Fill:
|
||||
Scale the plane so that it fills the entire camera view while preserving the aspect ratio, but some part of
|
||||
the image can spill outside the camera frame.
|
||||
|
||||
:abbr:`DPI (Dots per inch)`
|
||||
The size of the plane will be set based on the pixels per inch value set in *Definition*. With the *Unit System*
|
||||
set to *Metric* and the default definition of 600 DPI, an image of 800 × 600 pixels will have a size of
|
||||
0.0339 × 0.0254 units since 600 pixels are defined as 1 inch (0.0254 m).
|
||||
|
||||
Definition
|
||||
Set the number of pixels to fit in 1 inch.
|
||||
|
||||
Dots/BU
|
||||
The size of the plane will be set based on the pixels per Blender Unit set in *Definition*. With the default
|
||||
definition value of 600, an image of 800 × 600 pixels will have a size of 1.33 × 1 units.
|
||||
|
||||
Definition
|
||||
Set the number of pixels to fit in 1 Blender Unit.
|
||||
|
||||
|
||||
Orientation
|
||||
-----------
|
||||
|
||||
Align
|
||||
Set the rotation of the plane.
|
||||
|
||||
:Main Axis:
|
||||
The plane will be aligned to a major axis that is best to face the camera's view direction.
|
||||
If there is no camera in the scene, the plane will face toward Z+ (Up) axis.
|
||||
:Face Camera:
|
||||
Similar to the *Main Axis* but the plane will be rotated to directly face the camera's view direction.
|
||||
:Z- (Down), Y-, X-, Z+ (Up), Y+, X+:
|
||||
The plane will be rotated to face toward the selected axis.
|
||||
|
||||
Track Camera
|
||||
Add a :doc:`Locked Track </animation/constraints/tracking/locked_track>` constraint to make the plane always
|
||||
face the camera, even if the camera moves. This option is only available when *Main Axis* or *Face Camera*
|
||||
option is selected in the *Align* menu.
|
@ -3,30 +3,12 @@
|
||||
Import-Export
|
||||
#################
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
node_shaders_info.rst
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:name: addons-io
|
||||
|
||||
coat3D.rst
|
||||
mesh_atomic.rst
|
||||
anim_bvh.rst
|
||||
scene_dxf.rst
|
||||
scene_3ds.rst
|
||||
anim_camera.rst
|
||||
paper_model.rst
|
||||
pc2.rst
|
||||
scene_fbx
|
||||
images_as_planes.rst
|
||||
palettes.rst
|
||||
shape_mdd.rst
|
||||
anim_nuke_chan.rst
|
||||
mesh_stl.rst
|
||||
curve_svg.rst
|
||||
mesh_uv_layout.rst
|
||||
scene_x3d.rst
|
||||
scene_gltf2.rst
|
||||
|
@ -1,424 +0,0 @@
|
||||
|
||||
************************
|
||||
Atomic Blender (PDB/XYZ)
|
||||
************************
|
||||
|
||||
The Atomic Blender (PDB/XYZ) add-on imports atomic structures
|
||||
(molecules, crystals, clusters, particles, surfaces, etc.), which are described in
|
||||
PDB (``.pdb``) and XYZ files (``.xyz``) (`Import PDB/XYZ`_). The add-on reads the coordinates of
|
||||
all atoms in the PDB/XYZ file and represents the atoms as balls in the Blender world.
|
||||
Also the sticks, which are described in PDB files only,
|
||||
are shown if the sticks are *explicitly* listed in the PDB file.
|
||||
The :doc:`Principled BSDF shader </render/shader_nodes/shader/principled>`
|
||||
is used to describe the material properties of the atoms.
|
||||
|
||||
For the import, many options can be chosen, which allow representing the atoms and sticks in different ways.
|
||||
With help of several tools in the `Atomic Blender Utilities panel`_, the atomic structures can be modified
|
||||
after the import.
|
||||
|
||||
Note that the coordinates of selected atomic structures in the Blender 3D world
|
||||
can also be *exported* into PDB/XYZ files.
|
||||
|
||||
|
||||
**General motivation:** Atomic Blender (PDB/XYZ) is interesting for scientists, who want to
|
||||
visualize with Blender their atomic structures described in PDB or XYZ files.
|
||||
Thanks to Blender, fancy graphics of molecules, crystal structures, surfaces,
|
||||
nanoparticles, clusters and complex atomic arrangements can be obtained.
|
||||
Such graphics meet the standards of top-level journals, which have a high impact factor.
|
||||
See `Examples`_ at the end of this page.
|
||||
|
||||
.. seealso:: **Info about PDB and XYZ**
|
||||
|
||||
- Description of the PDB file format:
|
||||
`Wikipedia <https://en.wikipedia.org/wiki/Protein_Data_Bank_(file_format)>`__ and
|
||||
`RCSB <http://www.wwpdb.org/documentation/file-format>`__.
|
||||
- Description of the XYZ file format:
|
||||
`Wikipedia <https://en.wikipedia.org/wiki/XYZ_file_format>`__ and
|
||||
`Open Babel <https://openbabel.org/docs/dev/FileFormats/XYZ_cartesian_coordinates_format.html>`__.
|
||||
- Some notes about PDB and XYZ files can also be found
|
||||
`here <https://development.root-1.de/Atomic_Blender_PDB_XYZ.php>`__ and
|
||||
`here <https://development.root-1.de/Atomic_Blender_PDB_XYZ_Remarks.php>`__.
|
||||
- Many molecules can be downloaded from the `RCSB site <https://www.rcsb.org/>`__ (go to 'Download').
|
||||
- A list of software that deals with PDB in different ways can be found on
|
||||
the `RCSB site <https://www.rcsb.org/docs/additional-resources/molecular-graphics-software>`__. There also is
|
||||
`Vesta <https://jp-minerals.org/vesta/en/>`__, `ASE <https://wiki.fysik.dtu.dk/ase/>`__ and all the
|
||||
`quantum chemical calculators
|
||||
<https://en.wikipedia.org/wiki/List_of_quantum_chemistry_and_solid-state_physics_software>`__
|
||||
used in research, which can create or even calculate atomic structures and store them in PDB/XYZ files.
|
||||
|
||||
.. seealso:: **Forum**
|
||||
|
||||
- Please, use the `Blender Artists forum
|
||||
<https://blenderartists.org/t/atomic-blender-pdb-xyz-for-blender-2-8-and-higher/1197801>`__
|
||||
for comments and questions or directly the `Blender chat <https://blender.chat/home>`__.
|
||||
- There also is the possibility to ask questions on `Stack Exchange <https://blender.stackexchange.com/>`__.
|
||||
However, note that some of the developers like Blendphys don't have enough credits, which are, however, needed to
|
||||
have the permission for giving answers on Stack Exchange.
|
||||
|
||||
.. hint:: **Defects in an Atomic Structure**
|
||||
|
||||
If you want to show defects like vacancies in an atomic structure, use an 'X' for
|
||||
the element name in the PDB or XYZ file
|
||||
(`see here <https://development.root-1.de/Atomic_Blender_PDB_XYZ_Remarks.php>`__).
|
||||
A defect is shown in the form of a cube.
|
||||
|
||||
|
||||
Import PDB/XYZ
|
||||
==============
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_import-PDB.png
|
||||
:align: right
|
||||
:width: 239px
|
||||
|
||||
The panel with the options for PDB import.
|
||||
|
||||
|
||||
Camera & Lamp
|
||||
-------------
|
||||
|
||||
A camera and/or a light source are placed into the 3D world.
|
||||
Both are placed such that the entire atomic structure can be well seen by
|
||||
the camera with enough light from the light source.
|
||||
|
||||
|
||||
Object to Origin (PDB)
|
||||
----------------------
|
||||
|
||||
The atomic structure is placed into the origin (0.0, 0.0, 0.0) of the 3D world.
|
||||
|
||||
|
||||
Object to Origin (XYZ)
|
||||
----------------------
|
||||
|
||||
Either in only *the first* or in *all frames*, the atomic structure is put into
|
||||
the origin (0.0, 0.0, 0.0) of the 3D world.
|
||||
|
||||
|
||||
Balls/Atoms
|
||||
-----------
|
||||
|
||||
Type Of
|
||||
Choose either *NURBS*, *Mesh* or *Metaballs* for the atoms.
|
||||
For option *Mesh*, the *Azimuth* and *Zenith* values can be chosen.
|
||||
Metaballs can lead to some fancy effects: for instance,
|
||||
if enough large, their shapes melt together showing some kind of surface effect.
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_import-XYZ.png
|
||||
:align: right
|
||||
:width: 238px
|
||||
|
||||
The panel with the options for XYZ import.
|
||||
|
||||
Scaling Factors
|
||||
The atom radii as well as the distances between the atoms can be scaled by a simple factor.
|
||||
|
||||
Type
|
||||
The type of atom radius (atomic, van der Waals or as predefined) can be chosen.
|
||||
|
||||
|
||||
Sticks/Bonds (only PDB)
|
||||
-----------------------
|
||||
|
||||
Use Sticks
|
||||
Use sticks or not. Note that the sticks must be listed in the PDB file.
|
||||
The add-on does not 'calculate' possible bonds between atoms, which are then
|
||||
shown as sticks!
|
||||
|
||||
Type
|
||||
In general, the options *Sector* and *Radius* determine the precision and dimension of the sticks, respectively.
|
||||
Option *Smooth* always means that a Smooth operator is applied on the sticks.
|
||||
Option *Color* means that the stick is divided into two parts,
|
||||
showing the colors of the respective two atoms which it connects.
|
||||
|
||||
Instancing Vertices
|
||||
The sticks of one element are put into one instancing vertex structure and the sticks appear as cylinders.
|
||||
The instancing vertex structure makes the displaying and loading of many sticks relatively fast
|
||||
(see Section `The instancing vertex structure`_ for more info). Options *Unit* is the length of a unit
|
||||
(a small cylinder): several of such units are put together forming actually the stick (cylinder).
|
||||
The longer the unit length is the less is the number of such units and
|
||||
thus the faster is the displaying. However, if the unit length is too long the stick becomes
|
||||
eventually longer than the bond length (distance between atoms).
|
||||
This can then lead to a 'overlapping effect' where a stick intersects the atoms. Option *Bonds*
|
||||
displays apart from single also double, triple, etc. bonds whereas
|
||||
option *Distance* is the distance between the bonds measured in stick diameter.
|
||||
Skin
|
||||
The skin and subdivision modifiers are used to build the sticks.
|
||||
This gives a nice network of sticks, which can be used to show,
|
||||
e.g. only the bonds of the structure (delete the atoms before!).
|
||||
Options *SubDivV* and *SubDivR* are parameters of the subdivision operator.
|
||||
If option *Smooth* is activated, the initial squarish profile of the sticks changes to a more circular one.
|
||||
Note that if this option is chosen, there is only one object representing all sticks.
|
||||
Normal
|
||||
Normal cylinders are used. For each bond, one individual cylinder is used.
|
||||
If option *One Object* is activated, about *No* sticks are joined into one mesh object.
|
||||
This makes displaying the sticks very fast. However, individual sticks do not exist anymore.
|
||||
|
||||
|
||||
Frames (only XYZ)
|
||||
-----------------
|
||||
|
||||
Load All Frames
|
||||
Load only the first or all frames.
|
||||
|
||||
Skip Frames
|
||||
Skip and load only each n-th frame. This is quite useful for large data
|
||||
where it might be sufficient to show only each 4th frame.
|
||||
|
||||
Frames/Key
|
||||
Show a specific number of frames per key. Many frames in a key lead to a more fluid presentation.
|
||||
|
||||
.. important::
|
||||
|
||||
**Please, keep in mind**: the number of atoms in a frame has to be the **same** for all frames!
|
||||
|
||||
|
||||
The instancing vertex structure
|
||||
===============================
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_dupli_1.png
|
||||
:align: right
|
||||
:width: 300px
|
||||
|
||||
The NaCl structure in the outliner.
|
||||
|
||||
It is essential to understand, how the atoms (and sticks) of an atomic structure are
|
||||
organized inside Blender. This is why we focus a little bit onto this in the following:
|
||||
|
||||
When atomic structures are imported via the PDB or XYZ importer, the atoms are put
|
||||
into a so-called *instancing vertex structures*, somewhat into 'groups' of elements.
|
||||
For instance, all sodium atoms of a NaCl structure form one instancing vertex structure,
|
||||
and the same applies for the chlorine atoms (see figure). In the case of the sodium
|
||||
atoms, there is a collection *Sodium* that includes the collection *Sodium_atom*.
|
||||
Within the latter, the *Sodium_mesh* is composed of the mesh itself (*Mesh_Sodium*)
|
||||
and a ball called *Sodium_ball*. The mesh only contains vertices (no objects!),
|
||||
and the vertices are located at the x,y,z positions specified in the PDB/XYZ file.
|
||||
What Blender is doing is simply 'duplicating' the 'representative'
|
||||
ball *Sodium_ball* at all the vertices! Because only **one ball** is used, it
|
||||
makes things incredibly fast by representing, e.g., a thousand of atoms inside Blender.
|
||||
Note that the representative ball is in the center of the structure,
|
||||
without having any meaning. This is the reason why the visibility switch
|
||||
of the representative ball is switched off (see red arrow)!
|
||||
|
||||
There are some consequences:
|
||||
a) The representative ball appears at all vertices with the same orientation.
|
||||
b) Changing the material properties of the representative ball changes the properties of
|
||||
all duplicated balls.
|
||||
c) A ball is NOT an individual object, it is rather a linked member of the
|
||||
structure. Actually, the object as such does not exist.
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_dupli_2.png
|
||||
:align: right
|
||||
:width: 300px
|
||||
|
||||
The NaCl structure in the outliner.
|
||||
|
||||
|
||||
Modifications
|
||||
-------------
|
||||
|
||||
Displacing an 'individual' atom
|
||||
For this, the respective vertex has to be displaced: go into the *Edit Mode*
|
||||
and select the atom. You can now displace the atom (vertex).
|
||||
|
||||
Changing material properties (of all atoms)
|
||||
For this, the material properties of the representative ball must be changed:
|
||||
in the outliner, switch on the visibility of the representative ball (here,
|
||||
*Sodium_ball*, see red arrow in figure). You can then select the ball and change the
|
||||
material properties. After, make invisible the representative ball, otherwise
|
||||
it appears in the structure.
|
||||
|
||||
Separate an atom
|
||||
For this, see Section `Separate Atoms`_.
|
||||
|
||||
For making the handling of the atomic structures a bit more easy, the utility
|
||||
panel can be used, see the next Section.
|
||||
|
||||
|
||||
.. hint:: **Converting All Atoms of an Instancing Vertex Structure to Real Independent Objects**
|
||||
|
||||
Do the following: Select the atomic structures
|
||||
with the mouse and use :ref:`bpy.ops.object.duplicates_make_real`.
|
||||
With this, you produce real independent objects!
|
||||
In the Outliner, delete the remaining instancing vertex structures,
|
||||
named like "Carbon", "Hydrogen", etc.
|
||||
|
||||
Note that if the structures represent many hundreds and thousands
|
||||
of atoms, Blender can be become quite slow: at once, all these new
|
||||
atoms are represented as individual ball objects and Blender has to deal with
|
||||
all of them in several ways. As mentioned above, for each instancing vertex
|
||||
structure, there is only *one representative ball object*!
|
||||
|
||||
|
||||
Atomic Blender Utilities Panel
|
||||
==============================
|
||||
|
||||
The *Atomic Blender Utilities* panel makes your life easier during manipulating
|
||||
atoms of imported structures.
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_custom_file.png
|
||||
:align: right
|
||||
:width: 300px
|
||||
|
||||
The entry for hydrogen in the custom data file.
|
||||
|
||||
|
||||
Custom Data File
|
||||
----------------
|
||||
|
||||
A separate custom data file can be loaded, which contains for each element the following
|
||||
information:
|
||||
|
||||
* All types of radii (atomic, VdW, ionic) in Å
|
||||
* Ball color
|
||||
* Other material properties for the Principled BSDF shader.
|
||||
|
||||
Such an option is useful when it is desired to use predefined values for atom
|
||||
radii and shader properties. An example can be downloaded from here:
|
||||
`Custom data file <https://development.root-1.de/X-Download/atom_info.dat>`__.
|
||||
|
||||
The custom data file is an ASCII file, which can be duplicated and modified by
|
||||
the user. The radius and material properties of the atoms can be
|
||||
changed as follows: open the ASCII file with a standard text editor, search
|
||||
the name of the atom and change the radius (``Radius used``). Do the same
|
||||
with, e.g., the RGB values for the color (``Color``). The value
|
||||
RGBA(1.0, 1.0, 1.0, 1.0) corresponds to white and RGBA(0.0, 0.0, 0.0, 1.0) is
|
||||
black. Note that the last value of a color tuple is the alpha value of the
|
||||
color. Furthermore, several other properties such as ``Metallic``,
|
||||
``Roughness`` and ``Transmission`` can be changed. These are the properties
|
||||
in the :doc:`Principled BSDF shader </render/shader_nodes/shader/principled>`.
|
||||
There are also some properties for :doc:`EEVEE </render/eevee/index>`, which
|
||||
can be used to determine the object's transparency etc.
|
||||
|
||||
|
||||
Note that in the header of the custom data file,
|
||||
all possible values of the string options ``P BSDF Subsurface method``,
|
||||
``P BSDF Distribution``, ``EEVEE Blend Method`` and ``EEVEE Shadow Method``
|
||||
are listed.
|
||||
|
||||
.. figure:: /images/addons_import-export_mesh-atomic_utilities-panel.png
|
||||
:align: right
|
||||
:width: 211px
|
||||
|
||||
The *Atomic Blender Utilities* panel.
|
||||
|
||||
Inside Blender, the data file needs to be loaded first. The colors and material
|
||||
properties are changed after executing *Apply*. **Note that only selected atoms
|
||||
are changed!**
|
||||
|
||||
|
||||
Measure Distances
|
||||
-----------------
|
||||
|
||||
With this tool the distance of two objects in the *Object Mode* but also
|
||||
in the *Edit Mode* can be measured. The unit is Ångström.
|
||||
|
||||
|
||||
Change Atom Size
|
||||
----------------
|
||||
|
||||
Note that the atomic structures must be selected!
|
||||
|
||||
Type of Radii
|
||||
Type
|
||||
With this selector the type of radii can be chosen.
|
||||
Either one uses *Predefined*, *Atomic* or *Van der Waals* radii.
|
||||
The default values for Predefined radii are the *Atomic* radii.
|
||||
Charge
|
||||
For option *Ionic radii*, the charge state can be chosen and the radii of selected objects
|
||||
are instantaneously changed. Select one type of atom (e.g. only all hydrogen ones)
|
||||
and then apply the charge state. Changes only apply if a charge state of an atom is available.
|
||||
See, e.g., in the `Custom data file <https://development.root-1.de/X-Download/atom_info.dat>`__.
|
||||
|
||||
Radii in pm
|
||||
The radii of all atoms that belong to one element can be manipulated.
|
||||
Type in the name of the atom (e.g. 'Hydrogen') and choose the radius in picometer.
|
||||
|
||||
Radii by Scale
|
||||
This modifies the radii of all selected atoms and atom structures with one scaling factor.
|
||||
Type in the scaling factor and increase or decrease the size of the radii by
|
||||
using the *Bigger* or *Smaller* button, respectively.
|
||||
|
||||
|
||||
Change Stick Size
|
||||
-----------------
|
||||
|
||||
The diameter of selected sticks are changed. The buttons *Bigger* and *Smaller*
|
||||
allow increasing or decreasing the diameter, respectively.
|
||||
The scale factor determines, how strong the change of diameter will be.
|
||||
By using the *Outliner*, one can apply these operators on only a selection of sticks
|
||||
(e.g. only the sticks of the hydrogen atoms). Note that changes only apply
|
||||
if the sticks are individual objects, e.g. single cylinders or if the sticks are described
|
||||
in instancing vertex structures.
|
||||
|
||||
|
||||
Change Atom Shape
|
||||
-----------------
|
||||
|
||||
It is possible to change the atom's shape to a sphere, cube, icosphere, etc.
|
||||
Furthermore, the material of the atom can be changed. First, select your atoms
|
||||
in the 3D Viewport or the Outliner.
|
||||
|
||||
Shape
|
||||
Choose the shape in the first selector.
|
||||
Material
|
||||
Choose one of the materials in the second selector. The materials are only examples,
|
||||
further refinements can be done in the Materials tab of the Properties.
|
||||
Special
|
||||
Here, you can choose an object with a special shape, material, etc.
|
||||
Such objects are quite nice to represent defects in atomic structures.
|
||||
When choosing such a special object, you cannot anymore separately choose
|
||||
the shape and material from above. In the Objects and Materials tabs of the Properties
|
||||
further changes can be done.
|
||||
|
||||
Button Replace
|
||||
After all, push the *Replace* button. The shape and/or material of all
|
||||
selected atoms are then changed. This option works for objects and
|
||||
instancing vertex object structures.
|
||||
|
||||
Button Default
|
||||
If you want to have the default values (NURBS spheres and specific element
|
||||
colors and sizes) of selected atoms push the *Default* button.
|
||||
|
||||
|
||||
Separate Atoms
|
||||
--------------
|
||||
|
||||
To separate single atoms, select the atoms (vertices) first in the *Edit Mode*.
|
||||
Upon choosing *Edit Mode*, the *Separate* button appears at the bottom of the
|
||||
*Atomic Blender Utilities* panel. If the selectors in *Change atom shape* remain on
|
||||
*Unchanged* the type of object (NURBS, mesh, meta) and its properties will not be changed
|
||||
upon separation.
|
||||
|
||||
After having chosen the atoms, use button *Separate Atoms* to separate
|
||||
the selected atoms: the atoms are now single, new objects, which can be
|
||||
manipulated in standard way. They appear in the Outliner and carry the suffix ``_sep``.
|
||||
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
.. list-table::
|
||||
|
||||
* - .. figure:: /images/addons_import-export_mesh-atomic_molecule-representations.jpeg
|
||||
|
||||
Different presentations of one and the same molecule.
|
||||
|
||||
- .. figure:: /images/addons_import-export_mesh-atomic_DNA.jpeg
|
||||
|
||||
Part of a DNA molecule.
|
||||
|
||||
* - .. figure:: /images/addons_import-export_mesh-atomic_JPCC-2014.jpg
|
||||
|
||||
Functionalized [5]helicene molecules on the NaCl(001) surface
|
||||
(Clemens Barth et al. -- `Link to publication <https://pubs.acs.org/doi/10.1021/jp501738c>`__).
|
||||
|
||||
- .. figure:: /images/addons_import-export_mesh-atomic_ESE-2017.jpeg
|
||||
|
||||
Solar cell structure to underline the properties of silicon nanocrystals deposited by pulsed spray system
|
||||
(Mickael Lozac'h et al. -- `Link to publication <https://onlinelibrary.wiley.com/doi/10.1002/ese3.174>`__).
|
||||
|
||||
`This video <https://www.youtube.com/watch?v=8WmCn5xGebs>`__
|
||||
was created by Sébastien Coget (responsible researcher: Frank Palmino)
|
||||
at the `Femto-ST institute <https://www.femto-st.fr/en>`__ in Besançon (France).
|
||||
The movie demonstrates that with Blender, professional movies can be done for research.
|
||||
It was rendered with Cycles.
|
@ -1,106 +0,0 @@
|
||||
|
||||
***
|
||||
STL
|
||||
***
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> Stl (.stl)`
|
||||
|
||||
This format is useful if you intend to import/export the files for CAD software.
|
||||
It is also commonly used for loading into 3D printing software.
|
||||
|
||||
.. warning::
|
||||
|
||||
Currently the script does not handle importing or exporting of normals
|
||||
and does not handle endian-ness, there is nothing in the STL specification about it.
|
||||
|
||||
|
||||
Importing
|
||||
=========
|
||||
|
||||
.. note::
|
||||
|
||||
The STL importer Add-on is deprecated and being replaced with the much faster
|
||||
:ref:`Integrated STL Importer <bpy.ops.wm.stl_import>`.
|
||||
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Scale
|
||||
Value by which to scale the imported objects in relation to the world's origin.
|
||||
Scene Unit
|
||||
Apply current scene's unit (as defined by unit scale) to imported data.
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
|
||||
Forward and up axes -- By mapping these to different axes you can convert rotations
|
||||
between applications default up and forward axes.
|
||||
|
||||
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||
For example, it is common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Geometry
|
||||
^^^^^^^^
|
||||
|
||||
Facet Normals
|
||||
Use (import) facet normals (note that this will still give flat shading).
|
||||
|
||||
|
||||
Exporting
|
||||
=========
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
ASCII
|
||||
TODO.
|
||||
Batch Mode
|
||||
TODO.
|
||||
|
||||
|
||||
Include
|
||||
^^^^^^^
|
||||
|
||||
Selection Only
|
||||
When checked, only selected objects are exported.
|
||||
Instanced objects, for example collections that are instanced in the scene,
|
||||
are considered 'selected' when their instancer is selected.
|
||||
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Scale
|
||||
Value by which to scale the exported objects in relation to the world's origin.
|
||||
Scene Unit
|
||||
Apply current scene's unit (as defined by unit scale) to exported data.
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for 'Up', these are axis conversion for these settings,
|
||||
Forward and Up axes -- By mapping these to different axes you can convert rotations
|
||||
between applications default up and forward axes.
|
||||
|
||||
Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
|
||||
For example, it's common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.
|
||||
|
||||
|
||||
Geometry
|
||||
^^^^^^^^
|
||||
|
||||
Apply Modifiers
|
||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Use the operator to import ASCII or binary STL-files, you can select multiple files at once.
|
||||
For exporting you can select multiple objects and they will be exported as a single STL-file.
|
||||
You can select between ASCII/binary file format (binary is more compact).
|
||||
You can also choose to enable or disable the modifiers during the export.
|
@ -1,66 +0,0 @@
|
||||
|
||||
*******************************
|
||||
Import & Export of Node Shaders
|
||||
*******************************
|
||||
|
||||
While Blender now only supports the advanced node-based shading model for its materials,
|
||||
most :abbr:`IO (Input/Output)` formats only support a basic shading model,
|
||||
similar to the legacy fixed pipeline of old GPUs.
|
||||
|
||||
Blender features a way to convert between those, which any add-on can use, but it is currently pretty basic still.
|
||||
Especially for exporting from Blender materials, the node system must follow some strict requirements.
|
||||
|
||||
.. note::
|
||||
|
||||
Currently, only the :doc:`FBX </addons/import_export/scene_fbx>`
|
||||
and the :doc:`3DS </addons/import_export/scene_3ds>` IO add-on uses this method.
|
||||
|
||||
.. tip::
|
||||
|
||||
The :doc:`glTF </addons/import_export/scene_gltf2>` format
|
||||
uses a more detailed conversion to and from shader nodes.
|
||||
|
||||
.. note::
|
||||
|
||||
The wrapper is designed to be as symmetrical as possible
|
||||
(i.e. it is expected to give reproducible results across several import/export cycles).
|
||||
|
||||
.. figure:: /images/addons_import-export_node-shaders-info_example.png
|
||||
:align: center
|
||||
|
||||
A typical setup of shader nodes that can be exported.
|
||||
|
||||
|
||||
Supported Node Setup
|
||||
====================
|
||||
|
||||
This is especially important for exporting, importing will simply re-generate a similar setup.
|
||||
|
||||
Note that the features listed below are those supported by the wrapper.
|
||||
Each add-on may have its own way to adapt them to its material system, some may not be handled by it, etc.
|
||||
|
||||
Principled BSDF
|
||||
The main shader must be a :doc:`Principled BSDF </render/shader_nodes/shader/principled>`.
|
||||
Only parameters defined there, and textures linked to it, will be exported.
|
||||
|
||||
Currently handled parameters:
|
||||
|
||||
- Base color
|
||||
- Specular intensity
|
||||
- Specular tint
|
||||
- Roughness
|
||||
- Metallic
|
||||
- IOR
|
||||
- Transmission
|
||||
- Emission
|
||||
- Emission Strength
|
||||
- Alpha
|
||||
|
||||
Normal Map
|
||||
If linked to the Normal input of the Principled BSDF node,
|
||||
the :doc:`Normal Map </render/shader_nodes/vector/normal_map>` node is also supported
|
||||
(including its texture obviously).
|
||||
|
||||
Textures
|
||||
Only :doc:`Image </render/shader_nodes/textures/image>` textures using a UV mapping are supported.
|
||||
You may also use a :doc:`Mapping </render/shader_nodes/vector/mapping>` node to move/rotate/scale it.
|
@ -1,14 +0,0 @@
|
||||
|
||||
***************
|
||||
Import Palettes
|
||||
***************
|
||||
|
||||
This add-on imports color palettes from Krita and Photoshop.
|
||||
|
||||
Todo.
|
||||
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import Palettes`
|
@ -1,310 +0,0 @@
|
||||
|
||||
***********
|
||||
Paper Model
|
||||
***********
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Export --> Paper Model (.pdf/.svg)`
|
||||
:Panel: :menuselection:`Properties --> Mesh --> Paper Model Islands`
|
||||
:Menu: :menuselection:`Mesh --> Unfold`
|
||||
|
||||
This add-on generates a flat net of a given mesh.
|
||||
It creates either PDF or SVG files suitable for direct printing and paper modeling.
|
||||
The main goal is a maximal possible automation of the whole process.
|
||||
Common tasks like baking the model's texture into the output document are also supported.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To avoid eventual issues, switch to Object Mode.
|
||||
Then, select the mesh you want to export so that it is the active one.
|
||||
If you want to get results quickly, just execute this add-on from the :menuselection:`File --> Export` menu.
|
||||
It will ask for a file name and do everything else automatically.
|
||||
All relevant settings are in the bottom left corner.
|
||||
These are described in more detail below.
|
||||
|
||||
If you are unhappy with the generated net, you can edit it manually.
|
||||
For this, you have to execute the *Unfold* tool first (available Mesh tab in the Properties).
|
||||
Edges that will be cut in order to flatten the mesh must be marked as Edit Mode seams.
|
||||
You can use *Clear Seam* and *Mark Seam* tools to organize them as you wish,
|
||||
or use the helper button *Clear All Seams* in Object Mode to start from scratch.
|
||||
When you export the model, it will use all the given seams and add some more cuts if necessary.
|
||||
|
||||
You can also call the *Unfold* tool just for a preview of the net.
|
||||
It will list all islands of the produced net in the panel and if you enable so in the tool's settings,
|
||||
it will also create a UV layout showing the islands.
|
||||
Note that island positions are not calculated in this stage, so that they will all just lay on top of each other.
|
||||
You can use Blender's *Pack Islands* tool to arrange them.
|
||||
|
||||
There are a few kinds of topology that are possible in Blender but not in paper reality:
|
||||
|
||||
- N-gon faces (everything except triangles) that are not perfectly flat.
|
||||
- Zero-length edges (two vertices exactly in the same spot and connected by an edge)
|
||||
- Zero-area faces (typically their vertices lie all in line)
|
||||
|
||||
If any of these cases is detected, the add-on will throw an error message and will not export.
|
||||
The error message guides you how to fix the issues.
|
||||
|
||||
|
||||
Exporting Textured Meshes
|
||||
-------------------------
|
||||
|
||||
To export your model with a hand-painted texture, you have to unwrap the model, paint an image and
|
||||
assign it to the model so that it has an effect during render.
|
||||
You can use any tools you like for these tasks.
|
||||
What the add-on does is simply that it uses baking in *Textures* mode.
|
||||
|
||||
Switch to Object Mode and deselect any objects except the one to be exported.
|
||||
Then execute *Export Paper Model* and in the File Browser switch the *Textures* selector to *From Materials*.
|
||||
|
||||
If you choose to export an SVG file, you get several options how to attach the images.
|
||||
All the options are explained in more detail `Properties`_.
|
||||
|
||||
The resulting texture does not depend on any scene settings except for the given material,
|
||||
and on the other hand, all settings should be intact after doing the export.
|
||||
|
||||
|
||||
How to Read the Net
|
||||
-------------------
|
||||
|
||||
Most of the document's appearance can be customized during export (see below).
|
||||
However, the default style is supposed to be familiar to paper modelers:
|
||||
dashed lines represent folding outwards, dash-dotted lines inwards (i.e., to form concave shapes).
|
||||
Boundary of each part of the net is rendered in solid lines.
|
||||
Sticking tabs have a grayish fill color to be distinguishable from other parts of the net.
|
||||
|
||||
A label is written on a tab when its target edge might not be clear.
|
||||
Specifically, the label is omitted if the edge will be stuck to the same place as its both neighbors or
|
||||
if one of these is the target itself.
|
||||
The format of labels is ``island_abbreviation: edge_number``.
|
||||
Island abbreviation is written in square brackets under the corresponding island, before to its full-length name.
|
||||
Edge number is written as a triangle arrow next to that target edge, outside the net.
|
||||
|
||||
If *Create Tabs* is disabled, the same format is used for labels along each of the related edges, inside the net.
|
||||
This method is designed for modeling from hard and/or thick materials, for which sticking tabs are quite pointless.
|
||||
If *Create Numbers* is disabled, the labels are omitted; this may be necessary for highly detailed models.
|
||||
|
||||
|
||||
How to Print the Net
|
||||
--------------------
|
||||
|
||||
The PDF file can be directly printed almost anywhere.
|
||||
However, things become difficult if you need to change the net by hand.
|
||||
|
||||
If you select the SVG format, you can edit the exported files in a vector graphics editor such as Inkscape.
|
||||
One reason why you may want to do is to pack the islands manually and save paper.
|
||||
Another reason is that the tabs and numbers often make a lot of clutter around the model and
|
||||
it can be helpful to remove some of them by hand.
|
||||
|
||||
If printed document gets cropped around the page borders,
|
||||
it means you should increase the *Margin* setting during export.
|
||||
|
||||
|
||||
Placing Marks on the Net
|
||||
------------------------
|
||||
|
||||
Edges with a Freestyle Mark (:menuselection:`Edge --> Mark Freestyle Edge`) will be highlighted
|
||||
in the net with a user-defined color and drawing style.
|
||||
This is helpful especially when used on flat edges, which would normally not be drawn at all.
|
||||
If you draw a shape with the *Knife* tool and then mark some of the edges as Freestyle ones,
|
||||
you can make a simple line drawing on the model.
|
||||
|
||||
When used on folding edges, the highlight will be drawn below the folding line.
|
||||
So you will probably have to change the *Freestyle Lines* drawing style to make it wider and not black,
|
||||
so that the lines stay distinguishable.
|
||||
|
||||
|
||||
Settings
|
||||
========
|
||||
|
||||
Paper Model Islands
|
||||
-------------------
|
||||
|
||||
The *Paper Model Islands* tab in the Mesh tab offers two buttons for calling
|
||||
the *Unfold* and *Export Paper Model* tools conveniently.
|
||||
It also offers buttons for marking and clearing seams, depending on the context,
|
||||
and the experimental functionality *Limit Island Size*.
|
||||
|
||||
Once the *Unfold* tool is called, the model is split into flattened parts and
|
||||
these are presented in a list called *Islands* below.
|
||||
The list allows you to change the label of each island.
|
||||
If *Create Numbers* is enabled during export, abbreviations of these labels will be used to
|
||||
describe which tab should be stuck to which island.
|
||||
After running the *Unfold* tool, these island labels are recalculated so
|
||||
that as many faces as possible remain under the same label.
|
||||
|
||||
If you select an island and enable the *Highlight Selected Island* button
|
||||
(and the mesh you unfolded is the active one), the island will be highlighted in orange in the 3D Viewport.
|
||||
Using the slider below, you can change the opacity of the highlight.
|
||||
|
||||
|
||||
Unfold
|
||||
^^^^^^
|
||||
|
||||
The first option from top is *Create UV map*.
|
||||
If enabled, a new UV map will be generated to show all the islands.
|
||||
However, their positions are not calculated yet at this time of the export process,
|
||||
so they are all just placed in the bottom left corner.
|
||||
This option is useful when editing the cutting lines by hand.
|
||||
You can use the *Unwrap* tool and get a similar result.
|
||||
|
||||
The tool has three sliders, which all adjust edge cutting priority
|
||||
(namely: *Face Angle Convex*, *Face Angle Concave*, *Edge Length*).
|
||||
A high value gives an edge with the corresponding property a higher chance to be cut.
|
||||
Because of that, it is usually better to set Edge Length to a negative value, letting long edges stay connected.
|
||||
Randomly modifying these values may often help to reduce the count of islands in the net.
|
||||
For information about the meaning of these values, read the Unfold section in the `Technical Details`_.
|
||||
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
When the export is initiated, the add-on silently unfolds the mesh (without marking any seams) and
|
||||
divides all faces into islands, which may take a few seconds for complex meshes.
|
||||
Then, a File Browser is displayed. With SVG format, the file name you choose will get a ``_page<number>.svg`` suffix,
|
||||
even if only one page was needed.
|
||||
|
||||
Settings of this exporter are presented in the bottom left corner of the File Browser.
|
||||
|
||||
Preset
|
||||
The *Preset* menu allows to quickly save and recall all the settings below it,
|
||||
including model scale and color style.
|
||||
Model Scale
|
||||
Model Scale can be used to scale the whole net.
|
||||
If you want to have a model in 1:72 scale, just set this to 72.
|
||||
This is an important option also because the add-on often produces islands bigger than the page.
|
||||
|
||||
By default, this value is set so that even the biggest island fits onto the page.
|
||||
If set to one, the real model will have the same dimensions as the virtual one.
|
||||
Create UV Map
|
||||
Has a similar effect as the similar named option of the *Unfold* tool, but not the same.
|
||||
It will create a new UV map that exactly reflects the placement of all the model's islands.
|
||||
Unfortunately, islands from all pages are placed on top of each other,
|
||||
and it is quite impossible to tell them apart.
|
||||
|
||||
|
||||
Document Settings
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Settings closely related to the format of the output document are in the Document Settings subpanel.
|
||||
|
||||
Format
|
||||
First selector switches between PDF and SVG document formats.
|
||||
Page Size
|
||||
Another selector below allows you to choose one of the most common paper sizes quickly.
|
||||
If you need something else, choose *User Defined* and set the dimensions manually.
|
||||
Page Margin
|
||||
Makes it easier to export models in exact scale (if you set the *Model Scale* slider to 1).
|
||||
|
||||
You can set it to the width of the non-printable border of your printer,
|
||||
in order for the resulting SVG document to be printable without further scaling. However,
|
||||
exporting in-scale models is still difficult, as the add-on does not automatically split oversize islands.
|
||||
DPI
|
||||
The next value is *DPI*, which defines the overall resolution of the net.
|
||||
That is, not only resolution of baked images (if any), but also line thickness.
|
||||
|
||||
Create Tabs
|
||||
Controls if the sticking tabs are created at all.
|
||||
For example, uncheck this if you want to stick the model using tape.
|
||||
Create Numbers
|
||||
Adds numbers to some edge pairs that are supposed to be stuck together.
|
||||
These numbers are excluded if the correct destination is easy to guess from the neighboring edges.
|
||||
In more complex models, they may overlap a lot with each other and with the net itself.
|
||||
Disabling this option may help solve such issues.
|
||||
If *Create Tabs* is disabled, the numbers will be rendered inside of the net.
|
||||
Tabs and Text Size
|
||||
Sets the maximal width of the sticking tabs around islands.
|
||||
The actual size of each tab is adjusted to be at most half the length of the corresponding edge.
|
||||
In some special cases, tabs are made not to overlap with real faces, but it does not work reliably yet.
|
||||
If *Create Tabs* is disabled, this slider controls the size of numbers on edges.
|
||||
Hidden Edge Angle
|
||||
Edges with folding angle below Hidden Edge Angle will not be drawn at all.
|
||||
Increasing this value may produce nicer results when exporting smooth surfaces, such as cylinders:
|
||||
it will spare a lot of unnecessary lines.
|
||||
Decreasing it could possibly help in some special cases.
|
||||
Textures
|
||||
The *Textures* select menu lists options for exporting textured meshes.
|
||||
|
||||
No Texture
|
||||
Just creates the net on a white background (this used to be called "Pure Net").
|
||||
The remaining options invoke texture baking and therefore are noticeable slower.
|
||||
From Materials
|
||||
Exports the image that is assigned to each of the model's faces in their active material.
|
||||
Full Render, Selected to Active
|
||||
Correspond to the respective *Bake Type* options.
|
||||
They both render all the materials and illumination: *Full Render* renders the model only,
|
||||
while *Selected to Active* projects other nearby selected objects onto the model.
|
||||
It may be helpful for creating patterns such as fur or leaves procedurally.
|
||||
Images
|
||||
The *Images* select menu allows you to choose how to include the baked images in the SVG file.
|
||||
If you want to edit the layout of the net in an SVG editor, choose either *Linked* or *Embedded*.
|
||||
|
||||
Embedded
|
||||
Creates standalone SVG files, making them bigger but portable.
|
||||
Single Linked
|
||||
Remains mostly for compatibility reasons.
|
||||
|
||||
|
||||
Colors and Style
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Options related to the drawing style are packed in the *Colors and Style* subpanel.
|
||||
They should be quite self-explanatory.
|
||||
|
||||
|
||||
Technical Details
|
||||
=================
|
||||
|
||||
Unfold
|
||||
------
|
||||
|
||||
Firstly, the algorithm assigns every edge a "priority", depending on its angle and length.
|
||||
Edges with higher priority will more probably be cut apart in the final net.
|
||||
Shorter edges have higher priority (they are easier to glue on) and sharper angles too
|
||||
(that makes the net easier to visually understand).
|
||||
|
||||
Faces form a concave angle if their normals are pointing against each other.
|
||||
Such angles have even a bit higher priority which is supposed to help for typical models.
|
||||
If some face normals are flipped, the algorithm always assumes the angle between them be convex.
|
||||
|
||||
If more than two faces are connected by an edge, two of them are designated as the main ones and
|
||||
all others will have to be glued. The main faces are chosen so that they form the smallest angle possible.
|
||||
|
||||
The actual priority effect of angle versus length may change the resulting net very much.
|
||||
The default values were chosen by trial and error for some basic models, but may be a bad choice for others.
|
||||
If you want to tweak them, the *Unfold* tool allows you to: they are the tool's three only settings.
|
||||
|
||||
The cutting algorithm begins with all faces separated and tries to connect them to form bigger islands,
|
||||
ordered by the connecting edge's priority. If some of the faces of the resulting island would overlap,
|
||||
the operation is canceled and the algorithm continues with another edge.
|
||||
If some vertices or edges end up close enough to each other, they are merged.
|
||||
During this process, each edge is visited exactly once.
|
||||
|
||||
The overlap check is basically the Bentley-Ottmann algorithm for line segment intersection,
|
||||
applied to the boundary of the resulting island. To handle some special cases,
|
||||
the algorithm automatically switches between a slightly quicker and a more robust version of itself.
|
||||
Another check is applied to detect if the boundary crosses itself in just a vertex of the resulting island --
|
||||
such cases have to be tested explicitly as they need not cause any intersecting line segments.
|
||||
|
||||
|
||||
Positioning the Nets on Pages
|
||||
-----------------------------
|
||||
|
||||
Because the nets are not consisting only of the real faces, but also of the gluing tabs around,
|
||||
they cannot be positioned by the internal Blender tool (*Pack Islands*).
|
||||
Therefore, a standalone algorithm had to be written.
|
||||
|
||||
For a great simplification of the process, all nets are packed into (smallest possible) bounding rectangles.
|
||||
These are then ordered by size (largest first) and in this order the algorithm tries to position them on a page.
|
||||
The positions tested for the lower left corner are given by an n × n grid resulting from
|
||||
all the corners of islands already positioned. A position is accepted or rejected by checking overlaps
|
||||
with each of the islands' bounding rectangles.
|
||||
|
||||
When there are any islands left that could not be placed onto the page, a new free page is created.
|
||||
|
||||
This algorithm should work reliably and quite fast.
|
||||
However, it is clearly inefficient if the bounding rectangles contain much free space.
|
||||
Also, the packing depends heavily on the order in which the islands are processed, which is in no way optimal.
|
@ -1,51 +0,0 @@
|
||||
|
||||
****************
|
||||
Pointcache (pc2)
|
||||
****************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Export --> Pointcache (.pc2)`
|
||||
|
||||
This exporter produces pointcache files. These can be used to transfer animated meshes to external applications.
|
||||
Only the vertex positions at the samples are saved.
|
||||
|
||||
The exporter can export meshes, surfaced curves, surfaces and font objects. They are all treated as meshes.
|
||||
The base object has to be converted into a mesh before exporting it also.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
Convert to Y-Up
|
||||
Rotates the mesh data -90 degrees around X.
|
||||
Export into World Space
|
||||
Transform the mesh data into world space.
|
||||
Apply Modifiers
|
||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
||||
Start Frame
|
||||
First frame to export.
|
||||
End Frame
|
||||
Export up to this frame.
|
||||
Sampling
|
||||
The sample rate. 1 means one sample per frame. 0.1 means 10 samples per frame,
|
||||
and 10 means one sample every 10 frames.
|
||||
|
||||
|
||||
Importing
|
||||
=========
|
||||
|
||||
The use of these files depends on the importing application.
|
||||
In general the object has to be first exported normally (OBJ export or the like) and
|
||||
then the pointcache data can be attached to the object.
|
||||
|
||||
- In 3ds Max there is a modifier which can directly read pc2 files.
|
||||
- In Maya the pc2 cache has to be converted into Maya's geometry cache format first.
|
||||
The MEL command for that is this:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
cacheFile -pc2 1 -pcf "<insert filepath of source>" -f "<insert target filename w/o extension>"
|
||||
-dir "<insert directory path for target>" -format "OneFile";
|
@ -1,245 +0,0 @@
|
||||
|
||||
************
|
||||
Autodesk 3DS
|
||||
************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> 3D Studio (.3ds)`
|
||||
:Version: 2.4.9
|
||||
:Blender: 4.1
|
||||
:Authors: Bob Holcomb, Campbell Barton, Sebastian Schrand
|
||||
:Maintainer: Sebastian Sille (NRGSille)
|
||||
:Support Level: Community
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
This add-on can be used to import and export objects to/from the 3DS Studio file format,
|
||||
the native file format of the 3D Studio DOS releases R1 to R4.
|
||||
This format is one of the first 3D file formats beside OBJ
|
||||
and was commonly used to exchange files from Autodesk\ :sup:`®` 3ds MAX\ :sup:`®`.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
Import
|
||||
------
|
||||
|
||||
Include
|
||||
^^^^^^^
|
||||
|
||||
Image Search
|
||||
This enables a recursive file search if an image file can't be found.
|
||||
|
||||
Object Filter
|
||||
The kind of objects to be imported, checked object types will be imported and unchecked not.
|
||||
Hold shift while selecting to check multiple object types.
|
||||
|
||||
Animation
|
||||
Reads the keyframe tracks from a 3ds file and transforms the objects to the data which was found.
|
||||
Usually only one frame is found in static scenes, it will be imported to the timeline.
|
||||
If the 3ds scene is animated, the complete animation will be imported to the timeline.
|
||||
|
||||
Cursor Origin
|
||||
Reads the 3D cursor location chunk if one is found. Almost all valid 3ds files including this chunk,
|
||||
but with the location set to zero.
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Constrain Size
|
||||
Scales the imported objects by 10 scene units until it reaches the size defined here.
|
||||
To disable set the *Size Constraint* to zero.
|
||||
|
||||
Scene Units
|
||||
Converts the scale of all objects to the scene unit length settings. Blender uses meter scale,
|
||||
but many 3ds files have millimeter unit scale, especially the ones exported from CAD applications.
|
||||
If millimeters are expected to import, set the scene unit length settings to *Millimeters*.
|
||||
The meshes can also be converted to imperial unit measures if this is enabled in the scene units.
|
||||
|
||||
Pivot Origin
|
||||
Moves all geometry to the pivot origin. Enable this option for transformed pivot centers to move
|
||||
the geometry back to its origin.
|
||||
|
||||
Apply Transform
|
||||
Applies object transformations after importing. If unchecked, all transformations will be cleared
|
||||
and the objects will stay at its origins.
|
||||
|
||||
World Space
|
||||
Use world matrix instead of local matrix to transform the objects.
|
||||
This is useful for older 3ds files from 3D Studio DOS which only used world space to transform the objects.
|
||||
It is also useful if the object was exported without apply transform.
|
||||
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for 'Up',
|
||||
these are axis conversions for Forward and Up axes -- By mapping these to different axes
|
||||
you can convert rotations between applications default up and forward axes.
|
||||
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||
For example, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Export
|
||||
------
|
||||
|
||||
Include
|
||||
^^^^^^^
|
||||
|
||||
Selection
|
||||
When checked, only selected objects are exported. Otherwise export all objects in the scene.
|
||||
|
||||
Object Filter
|
||||
The kind of objects to be exported, checked object types will be exported and unchecked not.
|
||||
Hold shift while selecting to check multiple object types.
|
||||
|
||||
Hierarchy
|
||||
Preserves the object hierarchy if no keyframe section is written. Blender can read the hierarchy chunks
|
||||
but most importers do not use them, therefore only recommended if the file is used in Blender only.
|
||||
|
||||
Animation
|
||||
Writes the keyframe section of a 3ds file and exports the animation if an action was found.
|
||||
The animation can be imported the same way, un-check if any importer crashes,
|
||||
not every application can handle the keyframe section.
|
||||
|
||||
Cursor Origin
|
||||
Saves the current 3D cursor location of the scene to a chunk, the importer can read the location,
|
||||
if the option is enabled.
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Scale Factor
|
||||
The global scale factor for export. There are no unit scale definitions in a 3ds file,
|
||||
only the float values are stored. Blender will use meters for export but many applications,
|
||||
like 3ds MAX\ :sup:`®`, are using millimeters. This option defines the scale factor to use for export.
|
||||
If millimeters are desired, the scale factor has to be setted to 1000.
|
||||
|
||||
Scene Units
|
||||
Takes the scene unit length settings into account to export the real size of the objects.
|
||||
If the settings are millimeters, the exported scene will be scaled up since Blender uses meters for unit scale.
|
||||
Also imperial unit measures are supported, the exporter will convert the mesh to the selected scene unit.
|
||||
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for pointing upwards,
|
||||
these are axis conversion for these settings, Forward and up axes -- By mapping these to different axes
|
||||
you can convert rotations between applications default up and forward axes. Blender uses Y forward,
|
||||
Z up (since the front view looks along the +Y direction).
|
||||
For example, it is common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Materials
|
||||
=========
|
||||
|
||||
Materials in 3ds are defined in various color and percent chunks which can include
|
||||
either integer percent and 24bit color values or float color and percent values,
|
||||
both can be read by the importer and will be converted to blender values.
|
||||
The exporter uses the integer values, since this is used from 3ds version 3 and above.
|
||||
The material definitions which Blender can use are the following:
|
||||
|
||||
- 3ds Diffuse Color <-> blender Base Color
|
||||
- 3ds Specular Color <-> blender Specular Tint
|
||||
- 3ds Ambient Color <-> blender Emission Color
|
||||
- 3ds Mat Shininess <-> blender Roughness inverted
|
||||
- 3ds Mat Shin2 <-> blender Specular Intensity
|
||||
- 3ds Mat Shin3 <-> blender Metallic
|
||||
- 3ds Mat Opacity <-> blender Alpha inverted
|
||||
- 3ds Mat TransFall <-> blender Transmission
|
||||
- 3ds Mat RefBlur <-> blender Coat Weight
|
||||
- 3ds Mat TexBlur <-> blender Sheen Weight
|
||||
- 3ds Mat Bump PCT <-> blender Normal-map Strength
|
||||
- 3ds Self Illumination PCT <-> blender Emission Strength
|
||||
|
||||
|
||||
Textures
|
||||
--------
|
||||
|
||||
Each 3ds material can include different texture mappings,
|
||||
which are all imported to Blender material nodes including texture coordinates.
|
||||
The 3ds exporter basically takes the images and coordinates,
|
||||
which are directly connected to the Principled BSDF shader,
|
||||
if an image is connected to a color-mix shader, it will exported as secondary texture.
|
||||
Shininess maps to roughness and opacity to the alpha channel,
|
||||
they must be color inverted afterwards to match with Blender definition.
|
||||
The material mappings are defined as following:
|
||||
|
||||
- 3ds Diffuse Map <-> blender Base Color Texture
|
||||
- 3ds Specular Map <-> blender Specular Tint Texture
|
||||
- 3ds Shininess Map <-> blender Roughness Texture
|
||||
- 3ds Reflection Map <-> blender Metallic Texture
|
||||
- 3ds Opacity Map <-> blender Alpha Texture
|
||||
- 3ds Self Illumination Map <-> blender Emission Texture
|
||||
- 3ds Bump Map <-> blender Normal Map (tangent space)
|
||||
- 3ds Tex2 Map <-> blender Color Texture (connect to mix-shader)
|
||||
|
||||
.. figure:: /images/addons_io_3ds_shader-nodes.jpg
|
||||
|
||||
An example of a 3ds file with all image maps imported.
|
||||
|
||||
.. note::
|
||||
|
||||
All texture filenames are limited to the 8.3 DOS format,
|
||||
means that the name of the image texture can only be 8 characters long, others will be stripped away.
|
||||
|
||||
|
||||
Meshes
|
||||
======
|
||||
|
||||
Meshes are made of triangles only, no quads are supported,
|
||||
3ds Studio uses edge visibility flags to hide and show edges, many 3ds files use them to mark the quads.
|
||||
The Blender 3ds importer and exporter will use those flags to mark edges sharp,
|
||||
this can be used to convert the triangles back to quads.
|
||||
The importer can read the smooth-chunk and shades a face smooth if it belongs to a smooth-group,
|
||||
the exporter creates a smooth chunk if the mesh contains any smooth faces.
|
||||
3ds only supports one pair of UV coordinates per vertex. If any vertex has more UVs, it will be duplicated.
|
||||
|
||||
|
||||
Ambient
|
||||
=======
|
||||
|
||||
If ambient chunks are found by the importer, a new world with the ambient color will be created. Ambient keyframes
|
||||
will be imported to the timeline and background color to the world background node. If a background image is found, it
|
||||
will be connected to the background node and if fog chunks are found, volume shaders with the fog settings will be
|
||||
connected to the world output. If ambient is animated, an ambient node will be created and connected to a mixshader.
|
||||
Gradient chunks will be imported to a color ramp node. The exporter can export these settings and will also accept an
|
||||
add-shader instead of a mixshader, images are taken from the background input. The exporter creates an ambient chunk
|
||||
with the color of the active world and creates background chunks with color or image if the nodes are connected to
|
||||
world output or mix and add shader. Ambient color animations can primary be exported from the world color. If nodes
|
||||
are used, the exporter checks the RGB input node and the emission shader for color animations and writes an ambient
|
||||
track node chunk. If a color ramp node is connected to background or colormix node and includes at least three colors,
|
||||
the exporter will create a gradient chunk.
|
||||
|
||||
.. figure:: /images/addons_io_3ds_world-nodes.jpg
|
||||
|
||||
An example of a 3ds file with all world nodes imported.
|
||||
|
||||
|
||||
Lights
|
||||
======
|
||||
|
||||
Lights in 3DS Studio can be a point source or a spotlight,
|
||||
they use color and energy data and a target for the spotlight.
|
||||
The color and position of a light can be animated, the spotlight additionally has a target, beam angle and hotspot,
|
||||
wich can be animated. The lights and animation can be imported and exported, the spotlight can contain a projection
|
||||
bitmap, if an image is connected to a emission or colormixer, it will be exported. The x/y scale of a spotlight will
|
||||
be exported in an aspect ratio chunk, the importer can calculate it back to x/y scale. The target data is calculated
|
||||
to Z and X axis angle for pan and tilt, Y is used for the roll angle.
|
||||
|
||||
|
||||
Cameras
|
||||
=======
|
||||
|
||||
Cameras can be imported and exported to 3ds files.
|
||||
They can be animated with field of view (converted to focal length), position and target data,
|
||||
calculated to X and Z axis angle for pitch and yaw, Y is used for the roll angle.
|
||||
|
||||
|
||||
Keyframes
|
||||
=========
|
||||
|
||||
The importer can read the keyframes, they will be added to the timeline.
|
||||
Most animations will play, but the transformations may not be correct,
|
||||
some axes or rotations can be inverted. It depends on how it was exported from other applications.
|
||||
The exporter can write the keyframes of the timeline to an animated 3ds file.
|
@ -1,226 +0,0 @@
|
||||
|
||||
***********
|
||||
AutoCAD DXF
|
||||
***********
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> AutoCAD DXF (.dxf)`
|
||||
|
||||
|
||||
.. _dxf-import:
|
||||
|
||||
Import
|
||||
======
|
||||
|
||||
DXF layers are reflected as Blender groups. This importer uses a general purpose DXF library called "dxfgrabber".
|
||||
|
||||
|
||||
DXF Type Mapping
|
||||
----------------
|
||||
|
||||
To be as non-destructive as possible the importer aims to map as many DXF types to
|
||||
Blender curves as possible.
|
||||
|
||||
|
||||
DXF to Curves
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- ``LINE`` as ``POLYLINE`` curve (with the option to merge connecting lines).
|
||||
- ``(LW)POLYLINE``, ``(LW)POLYGON`` as ``POLYLINE`` curve if they have no bulges else as ``BEZIER`` curve.
|
||||
- ``ARC``\ s, ``CIRCLE``\ s and ``ELLIPSE``\ s as ``BEZIER`` curves.
|
||||
- ``HELIX``\ es (3D) as ``BEZIER`` curves.
|
||||
|
||||
|
||||
DXF to Meshes
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- ``MESH`` is mapped to a mesh object with a Subdivision Surface modifier, including the edge crease.
|
||||
- ``POLYFACE``\ s and ``POLYMESH``\ es are imported to a mesh object.
|
||||
- ``3DFACE`` \ s, ``SOLID`` \ s, ``POINT`` \ s are imported into one combined mesh object
|
||||
per layer called ``layername_3Dfaces``.
|
||||
|
||||
|
||||
Missing DXF Types
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
- Hatches
|
||||
- Leader
|
||||
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
Merge Options
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
Blocks As
|
||||
DXF Blocks can be imported as linked objects or group instances.
|
||||
Linked objects use parenting for DXF sub-blocks (blocks in blocks).
|
||||
|
||||
Parent Blocks to Bounding Boxes
|
||||
Draw a bounding box around blocks.
|
||||
Merged Objects
|
||||
Since Blender (v2.71) is pretty slow at adding objects the user might want to
|
||||
merge similar DXF geometry to one object.
|
||||
|
||||
By Layer
|
||||
Produces one object per layer; if there is mesh, curve, lamp, text data on one layer
|
||||
one object per layer and per Blender object.
|
||||
By Layer and DXF Type
|
||||
The second not only differentiates between Blender data types but also DXF types,
|
||||
such as ``LWPOLYLINE`` and ``POLYLINE``.
|
||||
By Layer and Closed No-bulge Polygons
|
||||
Closed polylines with no bulge, that is no curved edges, can be merged to one single mesh.
|
||||
This makes sense when the DXF polylines have an extrusion and/or an elevation attribute,
|
||||
which basically describes a location/rotation/scale transformation.
|
||||
If this merge option is chosen, line thickness settings will be ignored/disabled.
|
||||
By Layer and DXF-Type and Blocks
|
||||
For DXF files with a block being referenced many times, this option allows to insert the same block many times
|
||||
with one instanced-face object instead of with one object for each time the block needs to be inserted.
|
||||
Unfortunately this works only for block inserts that are uniformly scaled.
|
||||
Non-uniformly scaled block inserts are being imported as defined in *Blocks As*.
|
||||
Combine ``LINE`` Entities to Polygons
|
||||
Separated lines in DXF might be merged to one consecutive Blender poly curve.
|
||||
Similar to *Remove Doubles* but for curves.
|
||||
|
||||
|
||||
Line Thickness and Width
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Represent Line Thickness/Width
|
||||
DXF line attributes *thickness* and *width* have an effect on line in Z and X/Y direction respectively.
|
||||
A straight line might be turned to a cube by its attributes for instance.
|
||||
Therefore, in Blender these attributes are represented with curve extrusion, bevel and taper objects.
|
||||
Merge by Attributes
|
||||
If both *Merged Objects* and *Represent Line Thickness/Width* are activated
|
||||
the object merging needs to be extended to separate all lines width different thickness and width.
|
||||
With *Merge by Attributes* this separation option is also available without
|
||||
the actual representation of line thickness and width.
|
||||
|
||||
|
||||
Optional Objects
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Import ``TEXT``
|
||||
(``TEXT``, ``MTEXT``)
|
||||
Import ``LIGHT``
|
||||
Including support for AutoCAD colors.
|
||||
Export ``ACIS`` Entities
|
||||
Export NURBS 3D geometry (``BODY``, ``REGION``, ``PLANESURFACE``, ``SURFACE``, ``3DSOLID``) to ACIS-Sat files,
|
||||
since this is the format AutoCAD stores NURBS to DXF.
|
||||
You are going to be notified about the amount of stored ``.sat``/``.sab`` files.
|
||||
|
||||
|
||||
View Options
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Display Groups in Outliner(s)
|
||||
Switch the Outliner display mode to ``GROUPS`` (DXF layers are mapped to groups).
|
||||
Import DXF File to a New Scene
|
||||
Todo.
|
||||
Center Geometry to Scene
|
||||
Center the imported geometry to the center of the scene;
|
||||
the offset information is stored as a custom property to the scene.
|
||||
|
||||
|
||||
Georeferencing
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Important: DXF files do not store any information about
|
||||
the coordinate system / spherical projection of its coordinates.
|
||||
Best practice is to know the coordinate system for your specific DXF file and
|
||||
enter this information in the DXF importer interface as follows:
|
||||
|
||||
Pyproj
|
||||
Installation: Download (`Windows <https://github.com/pyproj4/pyproj>`__,
|
||||
macOS) Pyproj and copy it to
|
||||
|
||||
.. parsed-literal:: AppData/ApplicationSupport Folder/Blender/|BLENDER_VERSION|/scripts/modules/.
|
||||
|
||||
In case you need to compile your own binary refer to
|
||||
`this post <https://blenderartists.org/t/dxf-importer/597868/47>`__
|
||||
on Blender Artists.
|
||||
|
||||
Pyproj is a Python wrapper to the PROJ library, a well-known C library used to
|
||||
convert coordinates between different coordinate systems.
|
||||
Open source GIS libraries such as PROJ are used directly or indirectly by many authorities and
|
||||
therefore can be considered well-maintained.
|
||||
|
||||
If Pyproj is available the DXF importer shows a selection of national coordinate systems
|
||||
but lets the user also to enter a custom EPSG / SRID code.
|
||||
It also stores the SRID as a custom property to the Blender scene.
|
||||
If a scene has already such an SRID property the coordinates are being converted from
|
||||
your DXF file to target coordinate system and therefore you **must** specify an SRID for the DXF file.
|
||||
If no SRID custom property is available the scene SRID is by default the same as the DXF SRID.
|
||||
No Pyproj
|
||||
In case Pyproj is not available the DXF importer will only use its built-in lat/lon to X/Y converter.
|
||||
For conversion the "transverse Mercator" projection is applied that inputs a lat/lon coordinate to be used
|
||||
as the center of the projection. The lat/lon coordinate is being added to your scene as a custom property.
|
||||
Subsequent imports will convert any lat/lon coordinates to the same georeference.
|
||||
|
||||
Important: So far only lat/lon to X/Y conversion is supported.
|
||||
If you have a DXF file with Euclidean coordinates that refer to another lat/lon center
|
||||
the conversion is not (yet) supported.
|
||||
|
||||
Rules of thumb for choosing an SRID
|
||||
if you have your data from OpenStreetMap or some similar GIS service website and
|
||||
exported it with QGIS or ArcGIS the coordinates are most likely in lat/lon then use WGS84 as
|
||||
your SRID with Pyproj or "spherical" if Pyproj is not available.
|
||||
For other DXF vector maps it's very likely that they use local / national coordinate systems.
|
||||
|
||||
Open the DXF with a text editor (it has many thousands of lines) and
|
||||
make an educated guess looking at some coordinates.
|
||||
DXF works with "group codes", a name Autodesk invented for "key" as in key/value pairs.
|
||||
X has group code 10, Y has 20, Z has 30. If you find a pattern like:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
10, newline, whitespace, whitespace, NUMBER, newline,
|
||||
20, newline, whitespace, whitespace, NUMBER, newline,
|
||||
30, newline, whitespace, whitespace, NUMBER
|
||||
|
||||
then ``NUMBER`` will be most likely your coordinates.
|
||||
You can probably tell from the format and/or the range of the coordinates which coordinate system it should be.
|
||||
|
||||
|
||||
.. _dxf-export:
|
||||
|
||||
Export
|
||||
======
|
||||
|
||||
Supported Data
|
||||
--------------
|
||||
|
||||
- Mesh face: ``POLYFACE`` or ``3DFACE``
|
||||
- Mesh edge: ``LINE``
|
||||
- Modifier (optionally)
|
||||
|
||||
|
||||
Unsupported Data
|
||||
----------------
|
||||
|
||||
- Mesh vertex: ``POINT``
|
||||
- Curve: ``LINE``\ s or ``POLYLINE``
|
||||
- Curve NURBS: ``curved-POLYLINE``
|
||||
- Text: ``TEXT`` or (wip: ``MTEXT``)
|
||||
- Camera: ``POINT`` or ``VIEW`` or ``VPORT`` or (wip: ``INSERT(ATTRIB+XDATA)``)
|
||||
- Light: ``POINT`` or (wip: ``INSERT(ATTRIB+XDATA)``)
|
||||
- Empty: ``POINT`` or (wip: ``INSERT``)
|
||||
- Object matrix: extrusion (``210-group``), rotation, elevation
|
||||
- 3D Viewport: (wip: ``VIEW``, ``VPORT``)
|
||||
- Instancing vert: auto-instanced or (wip: ``INSERT``)
|
||||
- Instancing frame: auto-instanced or (wip: ``INSERT``)
|
||||
- Instancing group: auto-instanced or (wip: ``INSERT``)
|
||||
- Material: ``LAYER``, ``COLOR`` and ``STYLE`` properties
|
||||
- Group: ``BLOCK`` and ``INSERT``
|
||||
- Parenting: ``BLOCK`` and ``INSERT``
|
||||
- Visibility status: ``LAYER_on``
|
||||
- Frozen status: ``LAYER_frozen``
|
||||
- Locked status: ``LAYER_locked``
|
||||
- Surface
|
||||
- Meta
|
||||
- Armature
|
||||
- Lattice
|
||||
- :abbr:`IPO (InterPOlated)`/Animation
|
@ -52,8 +52,7 @@ The exporter can bake mesh modifiers and animation into the FBX so the final res
|
||||
.. note::
|
||||
|
||||
Blender now only supports complex node-based shading. FBX having a fixed pipeline-like support of materials,
|
||||
this add-on uses the :doc:`generic wrapper </addons/import_export/node_shaders_info>`
|
||||
featured by Blender to convert between both.
|
||||
this add-on converts between them.
|
||||
|
||||
|
||||
Properties
|
||||
|
@ -172,10 +172,10 @@ may not be spare power for computing such things at render time.
|
||||
|
||||
.. tip::
|
||||
|
||||
The easiest way to create the custom node group is to import an existing glTF model
|
||||
that contains an occlusion map, such as
|
||||
the `water bottle <https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/WaterBottle>`__
|
||||
or another existing model. A manually created custom node group can also be used.
|
||||
If you enable Shader Editor Add-ons in preferences, you will be able to add this custom node group from Menu:
|
||||
Add > Output > glTF Material Output
|
||||
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_addon-preferences-shader.png
|
||||
|
||||
glTF stores occlusion in the red (``R``) channel, allowing it to optionally share
|
||||
the same image with the roughness and metallic channels.
|
||||
@ -288,6 +288,25 @@ Image Texture node connected, the ``KHR_materials_specular`` glTF extension will
|
||||
included in the export.
|
||||
|
||||
|
||||
Anisotropy
|
||||
^^^^^^^^^^
|
||||
|
||||
Anisotropic textures and data need to be converted at export, and at import.
|
||||
|
||||
At import, some nodes are created to manage this conversion
|
||||
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_material_anisotropy.png
|
||||
|
||||
At export, this exact same nodes are detected, and used to export data.
|
||||
|
||||
At export, you can also plug some grayscale textures for *Anisotropic* and *Anisotropic Rotation* sockets.
|
||||
Then, exporter will convert these texture into a glTF compatible texture.
|
||||
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_material_anisotropy-grayscale-texture.png
|
||||
|
||||
Note that the *tangent* socket must be linked to a *tangent* node, with UVMap.
|
||||
The choosen UVMap must be the UVMap of the Normal Map.
|
||||
|
||||
|
||||
Transmission
|
||||
^^^^^^^^^^^^
|
||||
@ -427,34 +446,42 @@ Leave this box unchecked for double-sided materials.
|
||||
The inverse of this setting controls glTF's ``DoubleSided`` flag.
|
||||
|
||||
|
||||
Blend Modes
|
||||
Alpha Modes
|
||||
^^^^^^^^^^^
|
||||
|
||||
The Base Color input can optionally supply alpha values.
|
||||
How these values are treated by glTF depends on the selected blend mode.
|
||||
|
||||
With the EEVEE render engine selected, each material has a Blend Mode on
|
||||
the material settings panel. Use this setting to define how alpha values from
|
||||
the Base Color channel are treated in glTF. Three settings are supported by glTF:
|
||||
glTF has three alpha modes, depending on whether the alpha value is always 1, always 0 or
|
||||
1, or can be between 0 and 1. The exporter determines the alpha mode automatically from
|
||||
the nodes connected to the Alpha socket.
|
||||
|
||||
Opaque
|
||||
Alpha values are ignored.
|
||||
Alpha Blend
|
||||
Lower alpha values cause blending with background objects.
|
||||
Alpha Clip
|
||||
Alpha values below the *Clip Threshold* setting will cause portions
|
||||
of the material to not be rendered at all. Everything else is rendered as opaque.
|
||||
In *opaque mode*, the material alpha is always 1.
|
||||
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_material-alpha-blend.png
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_material-opaque.png
|
||||
|
||||
With the EEVEE engine selected, a material's blend modes are configurable.
|
||||
Mask
|
||||
In *mask mode*, the material alpha is always 0 or 1. This creates "cutout"
|
||||
transparency, where there is a hard edge between opaque and transparent regions, and
|
||||
can be used for things like leaves or cloth with holes. To enable this mode, use a Math
|
||||
node to round the alpha value to either 0 or 1.
|
||||
|
||||
.. note::
|
||||
.. figure:: /images/addons_import-export_scene-gltf2_material-round-alpha.png
|
||||
|
||||
Be aware that transparency (or *Alpha Blend* mode) is complex for real-time engines
|
||||
to render, and may behave in unexpected ways after export. Where possible,
|
||||
use *Alpha Clip* mode instead, or place *Opaque* polygons behind only
|
||||
a single layer of *Alpha Blend* polygons.
|
||||
Rounding snaps alpha values that are 0.5 or greater up to 1, and ones below 0.5 down to
|
||||
1. It is also possible to use a cutoff value different than 0.5 by using Math nodes to
|
||||
do ``1 - (alpha < cutoff)``.
|
||||
|
||||
Mask mode is essentially the same as EEVEE's "Alpha Clip" blend mode, but is done with
|
||||
shader nodes so it works in other render engines.
|
||||
|
||||
Blend
|
||||
Materials that use neither of these will use *blend mode*. Blend mode allows partially
|
||||
transparent surfaces that tint the objects seen through them, like layers of colored
|
||||
film. However, partial transparency is complex to render, and glTF viewers may show
|
||||
visual artifacts in non-trivial scenes that use blend mode.
|
||||
|
||||
To avoid artifacts, it may be a good idea to separate out parts of a model that can use
|
||||
opaque or mask mode, and use blend mode only on the parts where it is necessary, or to
|
||||
use only a *single* layer of transparent polygons in front of opaque objects.
|
||||
|
||||
|
||||
UV Mapping
|
||||
@ -505,6 +532,16 @@ a typical node structure when several of the above options are applied at once:
|
||||
|
||||
A Principled BSDF material with an emissive texture.
|
||||
|
||||
UDIM
|
||||
^^^^
|
||||
|
||||
UDIM is a way to store multiple textures in a single image file.
|
||||
The UDIM system is supported by Blender, but is not supported by glTF.
|
||||
When exporting a model that uses UDIM, the add-on will automatically split the
|
||||
image into multiple images, one for each tile, and will update the material
|
||||
nodes to use the new images.
|
||||
All UDIM texture must use the same UV map to be exported.
|
||||
|
||||
|
||||
Exporting a Shadeless (Unlit) Material
|
||||
--------------------------------------
|
||||
@ -539,6 +576,7 @@ are supported directly by this add-on:
|
||||
- ``KHR_materials_volume``
|
||||
- ``KHR_materials_sheen``
|
||||
- ``KHR_materials_specular``
|
||||
- ``KHR_materials_anisotropy``
|
||||
- ``KHR_materials_ior``
|
||||
- ``KHR_materials_variants``
|
||||
- ``KHR_lights_punctual``
|
||||
@ -558,6 +596,7 @@ are supported directly by this add-on:
|
||||
- ``KHR_materials_volume``
|
||||
- ``KHR_materials_sheen``
|
||||
- ``KHR_materials_specular``
|
||||
- ``KHR_materials_anisotropy``
|
||||
- ``KHR_materials_ior``
|
||||
- ``KHR_materials_variants``
|
||||
- ``KHR_texture_transform``
|
||||
@ -642,7 +681,7 @@ Actions (default)
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
An action will be exported if it is the active action on an object, or it is stashed to an NLA track
|
||||
(e.g. with the *Stash* or *Push Down* buttons in the :doc:`Action Editor </editors/dope_sheet/action>`).
|
||||
(e.g. with the *Stash* or *Push Down* buttons in the :doc:`Action Editor </editors/dope_sheet/modes/action>`).
|
||||
Actions which are **not** associated with an object in one of these ways are **not exported**.
|
||||
If you have multiple actions you want to export, make sure they are stashed!
|
||||
|
||||
@ -737,6 +776,20 @@ referenced by the ``.gltf`` file.
|
||||
Be aware that sharing this format requires sharing all of these separate files
|
||||
together as a group.
|
||||
|
||||
|
||||
glTF Embedded (``.gltf``)
|
||||
-------------------------
|
||||
|
||||
This produces a JSON text-based ``.gltf`` file, with all mesh data and
|
||||
image data encoded (using Base64) within the file. This form is useful if
|
||||
the asset must be shared over a plain-text-only connection.
|
||||
|
||||
.. warning::
|
||||
|
||||
This is the least efficient of the available forms, and should only be used when required.
|
||||
Available only when you activated it in addon preferences.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
@ -819,15 +872,24 @@ Transform
|
||||
Y Up
|
||||
Export using glTF convention, +Y up.
|
||||
|
||||
|
||||
Data - Scene Graph
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Geometry Nodes Instances
|
||||
Export Geometry nodes instances. This feature is experimental.
|
||||
|
||||
GPU Instances
|
||||
Export using ``EXT_mesh_gpu_instancing`` extensions.
|
||||
|
||||
Flatten Object Hierarchy
|
||||
Useful in case of non-decomposable TRS matrix. Only skined meshes will stay children of armature.
|
||||
|
||||
Full Collection Hierarchy
|
||||
Export collections as empty, keeping full hierarchy. If an object is in multiple collections,
|
||||
it will be exported it only once, in the first collection it is found.
|
||||
|
||||
|
||||
Data - Mesh
|
||||
^^^^^^^^^^^
|
||||
|
||||
@ -840,14 +902,34 @@ Normals
|
||||
Export vertex normals with meshes.
|
||||
Tangents
|
||||
Export vertex tangents with meshes.
|
||||
Vertex Colors
|
||||
Export Color Attributes with meshes.
|
||||
Attributes
|
||||
Export Attributes with meshes, when the name starts with underscore.
|
||||
Loose Edges
|
||||
Export loose edges as lines, using the material from the first material slot.
|
||||
Loose Points
|
||||
Export loose points as glTF points, using the material from the first material slot.
|
||||
Shared Accessor
|
||||
For triangles, use shared accessor for indices. This is more efficient (smaller files when you have lots of
|
||||
materials).
|
||||
|
||||
|
||||
Data - Mesh - Vertex Color
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Use Vertex Color
|
||||
:Material:
|
||||
Export vertex color when used in material node tree as Base Color multiplier.
|
||||
This is the default, and the most accurate regarding glTF specification.
|
||||
:Active:
|
||||
Export active vertex colors, even if not used in material node tree.
|
||||
A fully compliant glTF viewer should display this VC as Base Color multiplier.
|
||||
:None:
|
||||
Do not export vertex color.
|
||||
Export all vertex colors
|
||||
Export all vertex colors, additional VC will be COLOR_1, COLOR_2, etc.
|
||||
Export active vertex color when no material
|
||||
Export active vertex color when no material is assigned to the object.
|
||||
|
||||
|
||||
Data - Material
|
||||
^^^^^^^^^^^^^^^
|
||||
@ -867,6 +949,10 @@ Create WebP
|
||||
For already WebP textures, nothing happen.
|
||||
WebP fallback
|
||||
For all WebP textures, create a png fallback texture.
|
||||
Unused images
|
||||
Export images that are not used in any material.
|
||||
Unused textures
|
||||
Export texture info (sampler, image, texcoord) that are not used in any material.
|
||||
|
||||
Data - Shape Keys
|
||||
^^^^^^^^^^^^^^^^^
|
||||
@ -991,7 +1077,14 @@ Optimize Animation Size
|
||||
Force keeping channel for armature / bones
|
||||
if all keyframes are identical in a rig, force keeping the minimal animation.
|
||||
Force keeping channel for objects
|
||||
if all keyframes are identical for object transformations, force keeping the minimal animation
|
||||
if all keyframes are identical for object transformations, force keeping the minimal animation.
|
||||
Disable viewport for other objects
|
||||
When exporting animations, disable viewport for other objects, for performance reasons, when possible.
|
||||
|
||||
Animation - Filter
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Restrict actions to be exported to the ones matching the filter.
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
@ -1,79 +0,0 @@
|
||||
|
||||
***************
|
||||
Web3D X3D/VRML2
|
||||
***************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> X3D Extensible 3D (.x3d/.wrl)`
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
TODO.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
Import
|
||||
------
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for 'Up', these are axis conversions for
|
||||
Forward and Up axes -- By mapping these to different axes you can convert rotations
|
||||
between applications default up and forward axes.
|
||||
|
||||
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||
For example, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Export
|
||||
------
|
||||
|
||||
Include
|
||||
^^^^^^^
|
||||
|
||||
Selection Only
|
||||
When checked, only selected objects are exported.
|
||||
Instanced objects, for example collections that are instanced in the scene,
|
||||
are considered 'selected' when their instancer is selected.
|
||||
Hierarchy
|
||||
TODO.
|
||||
Named Decorations
|
||||
TODO.
|
||||
H3D Extensions
|
||||
TODO.
|
||||
|
||||
|
||||
Transform
|
||||
^^^^^^^^^
|
||||
|
||||
Scale
|
||||
TODO.
|
||||
Forward / Up
|
||||
Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
|
||||
Forward and up axes -- By mapping these to different axes you can convert rotations
|
||||
between applications default up and forward axes.
|
||||
|
||||
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||
For example, it is common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Geometry
|
||||
^^^^^^^^
|
||||
|
||||
Apply Modifiers
|
||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
||||
Triangulate
|
||||
TODO.
|
||||
Normals
|
||||
TODO.
|
||||
Compress
|
||||
TODO.
|
@ -1,11 +0,0 @@
|
||||
|
||||
**********
|
||||
NewTek MDD
|
||||
**********
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Import-Export
|
||||
:Menu: :menuselection:`File --> Import/Export --> Lightwave Point Cache (.mdd)`
|
||||
|
||||
Todo.
|
@ -24,23 +24,7 @@ Add-ons Category Listings
|
||||
:maxdepth: 1
|
||||
|
||||
3d_view/index.rst
|
||||
add_curve/index.rst
|
||||
add_mesh/index.rst
|
||||
animation/index.rst
|
||||
baking/index.rst
|
||||
camera/index.rst
|
||||
development/index.rst
|
||||
import_export/index.rst
|
||||
interface/index.rst
|
||||
lighting/index.rst
|
||||
materials/index.rst
|
||||
mesh/index.rst
|
||||
node/index.rst
|
||||
object/index.rst
|
||||
paint/index.rst
|
||||
render/index.rst
|
||||
rigging/index.rst
|
||||
sequencer/index.rst
|
||||
system/index.rst
|
||||
uv/index.rst
|
||||
video_tools/index.rst
|
||||
|
@ -1,396 +0,0 @@
|
||||
|
||||
****************
|
||||
Amaranth Toolset
|
||||
****************
|
||||
|
||||
A collection of tools and settings to improve productivity.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Edit menu, Preferences, then Add-ons.
|
||||
- Search for Amaranth, and activate the add-on.
|
||||
|
||||
|
||||
3D View
|
||||
=======
|
||||
|
||||
Set Camera Bounds as Render Border
|
||||
----------------------------------
|
||||
|
||||
When in camera view, we can now set the border-render to be the same size of the camera,
|
||||
so we don't render outside the view. Makes faster render preview.
|
||||
|
||||
Usage: Context menus (:kbd:`RMB`) when in Camera View.
|
||||
|
||||
|
||||
Select Meshlights
|
||||
-----------------
|
||||
|
||||
Select all the meshes that emit light.
|
||||
|
||||
Usage: On the header of the 3D View, top of the select menu.
|
||||
|
||||
|
||||
Adjust Passepartout
|
||||
-------------------
|
||||
|
||||
The passepartout value of local Cameras is now available via the context menu,
|
||||
while in Camera view.
|
||||
|
||||
Usage: Context menus (:kbd:`RMB`) when in Camera View.
|
||||
|
||||
|
||||
Scene, Cameras, and Meshlights Count
|
||||
------------------------------------
|
||||
|
||||
Add the number of scenes, cameras, and light emitting meshes to the stats in the Status Bar.
|
||||
|
||||
Disabled by default as there has been reports of very minor slowdown on scenes with many hi-poly objects.
|
||||
Never experienced myself but just in case.
|
||||
|
||||
Usage: Once enabled in the add-on preferences, it will appear in the Status Bar.
|
||||
|
||||
|
||||
Wireframe Toggle
|
||||
----------------
|
||||
|
||||
Enable or disable wireframe display on mesh objects.
|
||||
It even works on linked objects/scenes too, where this option is not accessible.
|
||||
|
||||
"Display" will enable the wireframe, while "Clear" will disable it.
|
||||
|
||||
Both using the following settings:
|
||||
|
||||
Draw All Edges
|
||||
Display edges even on coplanar faces
|
||||
|
||||
Subdvision Optimal Display
|
||||
Enable/Disable the "Optimal Display" option on Subdvision modifiers
|
||||
|
||||
Only Selected Objects
|
||||
Only apply to the selected objects, otherwise apply to all.
|
||||
|
||||
All Scenes
|
||||
Display wireframe on all the objects in all scenes.
|
||||
Handy when working with linked scenes, where it's impossible to access the Wireframe option from the UI.
|
||||
|
||||
|
||||
Render
|
||||
======
|
||||
|
||||
UI: Final Resolution
|
||||
--------------------
|
||||
|
||||
Display a **Final Resolution** label with the size in pixels of your render.
|
||||
It also displays the final size for border renders.
|
||||
|
||||
Usage: Find it in the 'Format' panel, Render properties.
|
||||
|
||||
|
||||
Cycles: Set Samples Per
|
||||
-----------------------
|
||||
|
||||
A quick way to see and set the number of render samples on each Scene or ViewLayer.
|
||||
|
||||
Usage: Find it in the Sampling panel, on Render properties.
|
||||
|
||||
|
||||
Object ID for Collection Instances
|
||||
----------------------------------
|
||||
|
||||
Override the Pass Index for all objects in the Collection.
|
||||
|
||||
In order for the Pass Index to be loaded on computers without Amaranth installed,
|
||||
it will automatically create a text file (called AmaranthStartup.py) and save it inside the .blend,
|
||||
this will auto-run on startup and set the Pass Index. Remember to have auto-run Python scripts on your Preferences.
|
||||
|
||||
Usage: Select an Instanced Collection and set a Pass Index (other than zero) and press "Apply Object ID to Duplis"
|
||||
in the Relations panel in Object Properties.
|
||||
|
||||
|
||||
Nodes Editor
|
||||
============
|
||||
|
||||
Display Image Node in Image Editor
|
||||
----------------------------------
|
||||
|
||||
A quick way to view an image assigned to an Image node.
|
||||
|
||||
Usage: Double-click an Image Node in the Nodes Editor (Compositor or Cycles),
|
||||
there must be at least 1 image editor available.
|
||||
|
||||
|
||||
Node Templates: Vignette
|
||||
------------------------
|
||||
|
||||
Add a set of nodes to create a vignette effect attached to the selected node.
|
||||
|
||||
Vignette
|
||||
Adjust the size and position of the vignette with the Ellipse Mask's X/Y and width, height values.
|
||||
|
||||
Usage: Find the templates in the Compositor's header, "Template" drop-down. Or hit :kbd:`W`.
|
||||
|
||||
|
||||
Nodes: XYZ Sliders for Normal Node
|
||||
----------------------------------
|
||||
|
||||
Tweak the Normal node more accurately by using these sliders.
|
||||
|
||||
Usage: Find it in the Properties panel, when selecting a Normal node.
|
||||
|
||||
|
||||
Object / Material Indices Panel
|
||||
-------------------------------
|
||||
|
||||
When working with ID Masks in the Nodes Editor,
|
||||
it's hard to follow track of which Objects/Materials have which Pass Index.
|
||||
|
||||
This adds a panel on the sidebar when an ID Mask node is selected.
|
||||
The active object is highlighted between [square brackets]
|
||||
|
||||
Usage: On the Nodes Editor's sidebar, when an ID Mask node is selected.
|
||||
|
||||
|
||||
Shaders Extra Info
|
||||
------------------
|
||||
|
||||
Display the name and type of the current object. It works on Materials and Lights.
|
||||
|
||||
Usage: Find it in the Node Editor's header.
|
||||
|
||||
|
||||
Nodes Stats
|
||||
-----------
|
||||
|
||||
Display the number of selected and total nodes on the compositor.
|
||||
|
||||
Usage: Find it in the Compositing Nodes Editor.
|
||||
|
||||
|
||||
Nodes Simplify Panel
|
||||
--------------------
|
||||
|
||||
Disable/Enable certain nodes at a time. Useful to quickly "simplify" compositing.
|
||||
|
||||
This feature is a work in progress, the main issue now is when switching many different kinds one after the other.
|
||||
|
||||
Experimental feature.
|
||||
|
||||
Usage: Find it in the Nodes Editor sidebar (:kbd:`N`).
|
||||
|
||||
|
||||
Animation
|
||||
=========
|
||||
|
||||
Jump N Frames
|
||||
-------------
|
||||
|
||||
Press :kbd:`Shift-Up` or :kbd:`Shift-Down` to jump forward/backwards a custom number of frames.
|
||||
|
||||
Useful for example when animating at 12 frames per second, to be able to jump every 1 second with a shortcut.
|
||||
Make sure to save the preferences so this value is stored and used in the future.
|
||||
|
||||
Usage: Find it in Preferences, Animation section, Timeline panel.
|
||||
|
||||
|
||||
Current Frame Slider
|
||||
--------------------
|
||||
|
||||
Currently the only way to change the current frame is to have a Timeline editor open,
|
||||
but sometimes you don't have one, or you're fullscreen.
|
||||
This feature adds the `Current Frame` slider to the context menu.
|
||||
|
||||
Usage: Find it in the :kbd:`RMB` (context or :kbd:`W`
|
||||
in right-click select keymap) menu in Object mode or Pose mode,
|
||||
click-drag sideways or click in the middle to set the frame manually.
|
||||
|
||||
|
||||
Bone Motion Paths: Match Frame Range + Clear All Paths
|
||||
------------------------------------------------------
|
||||
|
||||
Clear All Paths
|
||||
Simple operator to loop through all bones and clear their paths, useful when having hidden bones
|
||||
(otherwise you have to go through each one of them and clear manually)
|
||||
|
||||
Match Current Frame Range
|
||||
Set the current frame range as motion path range.
|
||||
|
||||
|
||||
Scene
|
||||
=====
|
||||
|
||||
Save & Reload File
|
||||
------------------
|
||||
|
||||
When working with linked libraries, very often you need to save and load again to see the changes.
|
||||
|
||||
Note: Since this feature is meant to speed-up the save/reload process, there is no prompt on save.
|
||||
|
||||
Usage: Press :kbd:`Shift-Ctrl-W` or find it at the bottom of the File menu
|
||||
|
||||
|
||||
Refresh Scene
|
||||
-------------
|
||||
|
||||
Refresh the current scene, useful when working with libraries or drivers.
|
||||
|
||||
Usage: Press :kbd:`F5` or find it in the context menu :kbd:`W`
|
||||
|
||||
|
||||
Debug
|
||||
=====
|
||||
|
||||
List Missing Images
|
||||
-------------------
|
||||
|
||||
Display a list of missing images (that is, images that can't be found) Under a collapsible list.
|
||||
|
||||
Display the image name and its path, if the image is coming from a linked .blend, display the path to it.
|
||||
|
||||
Clicking on the .blend library path (Blender icon) will open the file in a new Blender instance.
|
||||
|
||||
Usage: Find it in the Scene Debug panel, under Scene Properties.
|
||||
|
||||
|
||||
List Missing Node Links
|
||||
-----------------------
|
||||
|
||||
Operator to look for empty image nodes, or missing images in nodes.
|
||||
|
||||
The "List Missing Node Links" button will print:
|
||||
* Node Groups that were linked but are now "Missing Datablock"
|
||||
* Image Nodes pointing to a non-existent image
|
||||
* Image Nodes that don't have any output connected
|
||||
|
||||
Additionally, it will print in the terminal a list of all the Materials that meet any of the missing cases above,
|
||||
the object they belong to, and their path (if they're coming from a Library).
|
||||
|
||||
Usage: Find it in the Scene Debug panel, on Scene Properties.
|
||||
|
||||
|
||||
List Empty Material Slots
|
||||
-------------------------
|
||||
|
||||
Having empty material slots with no material assigned to it is rare, but can happen.
|
||||
Sometimes because the material was linked and the link got lost.
|
||||
|
||||
The "List Empty Material Slots" button will print a list of all the objects that have empty material slots.
|
||||
|
||||
If the objects are linked, it will show a list of the libraries paths,
|
||||
click on them to open a new Blender instance with that library.
|
||||
|
||||
Usage: Find it in the Scene Debug panel, on Scene Properties.
|
||||
|
||||
|
||||
List Cycles Material using X shader
|
||||
-----------------------------------
|
||||
|
||||
Where X is any shader type you want. It will display (and print on console) a list of all the materials containing
|
||||
the shader you specified above.
|
||||
|
||||
Good for finding out if there's any meshlight (Emission) material hidden somewhere,
|
||||
or if there are many glossy shaders making things noisy.
|
||||
|
||||
|
||||
Lighter's Corner
|
||||
----------------
|
||||
|
||||
A list of all the lights in the scene, including meshlights (meshes that have a Material with Emission shader).
|
||||
|
||||
From this list it is possible to adjust Ray Visibility (Camera, Diffuse, Glossy, Shadow) and renderability.
|
||||
|
||||
Usage: Find it in the Lighter's Corner panel, on Scene Properties.
|
||||
|
||||
|
||||
File Browser
|
||||
============
|
||||
|
||||
Go to Current Blend's Folder
|
||||
----------------------------
|
||||
|
||||
A quick way to go to the currently open blend's directory.
|
||||
|
||||
|
||||
Libraries Bookmark
|
||||
------------------
|
||||
|
||||
The "Libraries" panel in the File Browser displays the path to all the libraries linked to that .blend.
|
||||
That way you can quickly go to the folders related to the file.
|
||||
|
||||
Usage: Find it in the **Libraries** panel in File Browser. Click on any path to go to that directory.
|
||||
|
||||
|
||||
Timeline
|
||||
========
|
||||
|
||||
Timeline Extra Info
|
||||
-------------------
|
||||
|
||||
Display amount of frames left until Frame End, very handy especially when rendering an animation or OpenGL preview.
|
||||
|
||||
Display current/end time in `SMPTE <https://en.wikipedia.org/wiki/SMPTE_timecode>`__.
|
||||
|
||||
Usage: Find it in the Timeline Editor's header.
|
||||
|
||||
|
||||
Modeling
|
||||
========
|
||||
|
||||
Symmetry Tools
|
||||
--------------
|
||||
|
||||
Two operators to help making a mesh symmetric.
|
||||
|
||||
Find Asymmetric
|
||||
Selects vertices whose position doesn't match the opposite side.
|
||||
|
||||
Make Symmetric
|
||||
Move selected vertices to match the position of those on the other side.
|
||||
|
||||
Usage: Search (:kbd:`Spacebar`) for **Find Asymmetric**, and **Make Symmetric** operators.
|
||||
|
||||
|
||||
Miscellaneous
|
||||
=============
|
||||
|
||||
Color Management Presets
|
||||
------------------------
|
||||
|
||||
Save your Color Management options as presets, for easy re-use.
|
||||
|
||||
Store most options in the Color Management panel, such as the look and color settings.
|
||||
Storing curve points is not supported yet.
|
||||
|
||||
Usage: Find the presets selector on the top of the **Color Management** panel under Render Properties.
|
||||
|
||||
|
||||
Instancing: Show Path of Libraries
|
||||
----------------------------------
|
||||
|
||||
Display the library path of a linked Collection Instance.
|
||||
Click on the path to open that .blend file in a new Blender instance.
|
||||
|
||||
Usage: Find it in the **Instancing** panel, when a Collection Instance (linked) is active.
|
||||
|
||||
|
||||
Sequencer: Display Image File Name
|
||||
----------------------------------
|
||||
|
||||
When seeking through an image sequence, display the active strips'
|
||||
file name for the current frame, and its playhead (in square brackets).
|
||||
|
||||
Usage: Find it in the sequencer header.
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Interface
|
||||
:Description: A collection of tools and settings to improve productivity.
|
||||
:Location: Everywhere
|
||||
:File: amaranth folder
|
||||
:Author: Pablo Vazquez (pablovazquez)
|
||||
:Maintainer: Pablo Vazquez (pablovazquez)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
@ -1,43 +0,0 @@
|
||||
|
||||
*******************
|
||||
Dynamic Brush Menus
|
||||
*******************
|
||||
|
||||
Provides access to commonly used settings and tools for painting/sculpting.
|
||||
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
- Open Blender and go to Preferences then the Add-ons tab.
|
||||
- Click Interface then Dynamic Brush Menus to enable the script.
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
.. rubric:: Features of Note:
|
||||
|
||||
- Pop-ups to pick colors and edit curves.
|
||||
- A brush menu that supports user created brushes.
|
||||
- Sliders included at the top of submenus like Radius, Strength, and Weight to allow for precise adjustment.
|
||||
- Fast creation of UV maps and Texture Paint Slots in Texture Paint Mode if they are not already present.
|
||||
- Integrates well with the :doc:`Dynamic Context Menu </addons/interface/context_menu>` add-on.
|
||||
|
||||
A Preference for the number of columns shown in the Brush and Brush Mode menus can be found for
|
||||
this add-on by going to the Add-ons tab in Preferences and expanding the add-on.
|
||||
|
||||
.. figure:: /images/addons_interface_brush-menus_ui.jpg
|
||||
:align: center
|
||||
|
||||
.. reference::
|
||||
|
||||
:Category: Interface
|
||||
:Description: Fast access to brushes & tools in Sculpt and Paint Modes.
|
||||
:Location: :kbd:`Spacebar` in Sculpt/Paint Modes
|
||||
:File: space_view3d_brush_menus folder
|
||||
:Author: Ryan Inch (Imaginer)
|
||||
:Maintainer: Ryan Inch (Imaginer)
|
||||
:License: GPL
|
||||
:Support Level: Community
|
||||
:Note: This add-on is bundled with Blender.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user