WIP: EEVEE-Next: Initial pass blender manual #104615

Closed
Jeroen Bakker wants to merge 5 commits from Jeroen-Bakker/blender-manual:eevee-next/first-iteration into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
1337 changed files with 13535 additions and 24168 deletions
Showing only changes of commit 6df65ccdcc - Show all commits

View File

@ -33,3 +33,12 @@ insert_final_newline = true
indent_style = tab indent_style = tab
indent_size = 4 indent_size = 4
max_line_length = 120 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
View File

@ -1,6 +1,10 @@
# Editors # Editors
.vscode/* .vscode/*
# Python virtual environment
.venv/
.python-version
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/
*.py[cod] *.py[cod]
@ -9,6 +13,7 @@ __pycache__/
# Varius extensions # Varius extensions
*.log *.log
*.tmp *.tmp
*.DS_Store
# Sphinx documentation # Sphinx documentation
build/ build/

View File

@ -410,7 +410,7 @@ Section 8 -- Interpretation.
Creative Commons is not a party to its public Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances 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 public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as material is shared under a Creative Commons public license or as

View File

@ -106,29 +106,29 @@ epubpdf: .SPHINXBUILD_EXISTS
--pdf-page-margin-bottom 50 \ --pdf-page-margin-bottom 50 \
check_syntax: 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` @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 @rm rst_check_syntax.log
check_structure: check_structure:
@python3 tools_rst/rst_check_images.py @python3 tools/check_source/check_images.py
check_spelling: check_spelling:
@python3 tools_rst/rst_check_spelling.py @python3 tools/check_source/check_spelling.py
checkout_locale: checkout_locale:
@python3 ./tools_make/checkout_locale.py @python3 ./build_files/utils/checkout_locale.py
update_po: update_po:
@python3 ./tools_maintenance/update_po.py @python3 ./tools/translations/update_po.py
report_po_progress: 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` `find locale/ -maxdepth 1 -mindepth 1 -type d -not -iwholename '*.git*' -printf 'locale/%f\n' | sort`
update: update:
@python3 ./tools_make/make_update.py @python3 ./build_files/utils/make_update.py
format_py: format_py:
@autopep8 --in-place --recursive . @autopep8 --in-place --recursive .

View File

@ -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). - **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). - **Source Files**: [Manual Repository](https://projects.blender.org/blender/blender-manual) (Git repository).
- **[Developer forum](https://devtalk.blender.org/c/documentation/12)** - **[Developer forum](https://devtalk.blender.org/c/documentation/12)**
- **Chat**: [#docs on blender.chat](https://blender.chat/channel/docs).
- **Administrators**: @blendify @fsiddi - **Administrators**: @blendify @fsiddi
@ -52,7 +53,7 @@ If you are interested in becoming a contributor, please contact us on the
# Translations # Translations
For translations, we use Sphinxs 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). 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). - **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) - **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 - **Administrators**: @blendify , @fsiddi
**Note:* **Note:*

View File

@ -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}/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/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"

View File

@ -33,7 +33,7 @@ def gen_htaccess(app, lang, version):
def read_htaccess(): def read_htaccess():
current_dir = os.path.abspath(os.path.dirname(__file__)) 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: try:
with open(ht_fn, "r", encoding="utf-8") as f: with open(ht_fn, "r", encoding="utf-8") as f:

View File

@ -1,32 +1,27 @@
{%- extends "!layout.html" %} {%- extends "!page.html" %}
{%- set title = _('Not Found (404)') %} {%- set title = _('Not Found (404)') %}
{%- set ROOT = "https://docs.blender.org/manual/" %} {%- set ROOT = "https://docs.blender.org/manual/" %}
{%- block htmltitle %} {%- block htmltitle %}
{{ super() }} {{ super() }}
<base href="{{ ROOT + language + '/' + version + '/' }}" /> <base href="{{ ROOT + language + '/' + version + '/' }}" />
{% endblock %} {% endblock %}
{%- block extrahead %} {% block content %}
<style>
.search404 {
margin: 15px 0;
}
.search404 input[type="text"] {
width: 100%;
border-radius: 50px;
padding-inline-start: 1em;
}
</style>
{% endblock %}
{%- block body %}
<h1>{% trans %}Not Found (404){% endtrans %}</h1> <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> <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> {% trans %}You can try one of the following things:{% endtrans %}</p>
<div class="search404 centered"> <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> </div>
{%- endblock %}
{%- block scripts -%}
<noscript> <noscript>
<a href="{{ ROOT + language + '/' + version + '/index.html' }}" class="btn btn-neutral" <a href="{{ ROOT + language + '/' + version + '/index.html' }}" class="btn btn-neutral"
title="{{ _('Return Home') }}"> title="{{ _('Return Home') }}">
@ -36,31 +31,28 @@
</noscript> </noscript>
<script> <script>
function init() { function init() {
var versions = getVersion(); const versions = getVersion();
if (versions !== null) { if (versions !== null) {
replaceSearch(versions); replaceSearch(versions);
} }
} }
/*get language and version from url*/ /*get language and version from url*/
function getVersion() { function getVersion() {
var url = window.location.href; const versions = window.location.pathname.split('/', 4);
var versions = url.match(/\/manual\/([\w\-\.]+)\/(dev|\d\.\d[\w\d\.]*)\//); if (versions && versions[1] === "manual") {
if (versions !== null) { return versions.slice(2);
return [versions[1], versions[2]];
} }
return null; return null;
} }
/*replace search form url*/ /*replace search form url*/
function replaceSearch(version) { function replaceSearch(versions) {
var searchforms = document.getElementsByTagName("FORM"); const searchforms = document.getElementsByTagName("FORM");
for (let i = 0; i < searchforms.length; i++) { for (let searchform of searchforms) {
searchforms[i].setAttribute("action", "/manual/" + version[0] + "/" + version[1] + "/search.html"); searchform.setAttribute("action", ["", "manual", ...versions, "search.html"].join("/"));
} let searchtext = searchform.querySelector("input[name=\"q\"]");
var searchtexts = document.getElementsByName("q"); searchtext.setAttribute("placeholder", "Search Docs (" + versions.join(" ") + ")");
for (let i = 0; i < searchtexts.length; i++) {
searchtexts[i].setAttribute("placeholder", "Search Docs (" + version[0] + " " + version[1] + ")");
} }
} }
window.onload = init(); window.onload = init();
</script> </script>
{%- endblock %} {%- endblock %}

View 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 -%}

View 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 %}

View File

@ -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="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="ar" href="https://docs.blender.org/manual/ar/latest/" />
<link rel="alternate" hreflang="de" href="https://docs.blender.org/manual/de/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="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="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="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="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="ru" href="https://docs.blender.org/manual/ru/latest/" />
<link rel="alternate" hreflang="sk" href="https://docs.blender.org/manual/sk/latest/" /> <link rel="alternate" hreflang="sk" href="https://docs.blender.org/manual/sk/latest/" />
@ -20,6 +19,4 @@
<link rel="alternate" hreflang="vi" href="https://docs.blender.org/manual/vi/latest/" /> <link rel="alternate" hreflang="vi" href="https://docs.blender.org/manual/vi/latest/" />
<link rel="alternate" hreflang="zh-Hans" href="https://docs.blender.org/manual/zh-hans/latest/" /> <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="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/" /> <link rel="alternate" hreflang="x-default" href="https://docs.blender.org/manual/en/latest/" />
{{ super() }}
{%- endblock %}

View File

@ -0,0 +1,6 @@
{%- extends "!page.html" -%}
{%- block footer -%}
{{ super() }}
{%- include "components/footer_contribute.html" -%}
{%- endblock footer -%}

View 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>

View File

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -20,4 +20,4 @@ h4,
h5, h5,
h6 { h6 {
clear: both; clear: both;
} }

View 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 */

View 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

Binary file not shown.

View File

@ -1,4 +1,4 @@
(function() {//switch: v1.4 (function() {//switch: v1.5
"use strict"; "use strict";
var versionsFileUrl = "https://docs.blender.org/versions.json" var versionsFileUrl = "https://docs.blender.org/versions.json"
@ -9,19 +9,20 @@ var all_langs = {
"ar": "&#1575;&#1614;&#1604;&#1618;&#1593;&#1614;&#1585;&#1614;&#1576;&#1616;&#1610;&#1614;&#1617;&#1577;&#1615;", "ar": "&#1575;&#1614;&#1604;&#1618;&#1593;&#1614;&#1585;&#1614;&#1576;&#1616;&#1610;&#1614;&#1617;&#1577;&#1615;",
"de": "Deutsch", "de": "Deutsch",
"es": "Espa&ntilde;ol", "es": "Espa&ntilde;ol",
"fi": "Suomeksi", "fi": "Suomi",
"fr": "Fran&ccedil;ais", "fr": "Fran&ccedil;ais",
"id": "Bahasa Indonesia", "id": "Bahasa Indonesia",
"it": "Italiano", "it": "Italiano",
"ja": "&#x65E5;&#x672C;&#x8A9E;", "ja": "&#x65E5;&#x672C;&#x8A9E;",
"ko": "&#xD55C;&#xAD6D;&#xC5B4;", "ko": "&#xD55C;&#xAD6D;&#xC5B4;",
"nb": "Norsk Bokm&#x00E5;l", "nb": "Norsk Bokm&#x00E5;l",
"nl": "Nederlands",
"pt": "Portugu&ecirc;s", "pt": "Portugu&ecirc;s",
"ru": "&#x3A1;&#x443;&#x441;&#x441;&#x43A;&#x438;&#x439;", "ru": "&#x3A1;&#x443;&#x441;&#x441;&#x43A;&#x438;&#x439;",
"sk": "Sloven&#269;ina", "sk": "Sloven&#269;ina",
"sl": "Sloven&#353;&#269;ina", "sl": "Sloven&#353;&#269;ina",
"sr": "&#1089;&#1088;&#1087;&#1089;&#1082;&#1080;", "sr": "&#1089;&#1088;&#1087;&#1089;&#1082;&#1080;",
"uk": "Ukra&#1111;na", "uk": "&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;",
"vi": "Ti&#x1EBF;ng Vi&#x1EC7;t", "vi": "Ti&#x1EBF;ng Vi&#x1EC7;t",
"zh-hans": "&#x4E2D;&#x6587;(&#x7B80;&#x4F53;)", "zh-hans": "&#x4E2D;&#x6587;(&#x7B80;&#x4F53;)",
"zh-hant": "&#x4E2D;&#x6587;(&#x7E41;&#x9AD4;)", "zh-hant": "&#x4E2D;&#x6587;(&#x7E41;&#x9AD4;)",
@ -140,7 +141,14 @@ buildList(v, l) {
clone = template.firstElementChild.cloneNode(true); clone = template.firstElementChild.cloneNode(true);
const link = clone.querySelector("a"); const link = clone.querySelector("a");
link.href = href; link.href = href;
link.innerHTML = title; 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); that.list.append(clone);
}; };
@ -159,6 +167,7 @@ getNamed(v) {
return v; return v;
} }
dialogToggle(speed) { dialogToggle(speed) {
speed = window.matchMedia("(prefers-reduced-motion: reduce)").matches ? 0 : speed;
const wasClose = !this.isOpen; const wasClose = !this.isOpen;
const that = this; const that = this;
if(!this.isOpen) { if(!this.isOpen) {

View File

@ -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>`__

View File

@ -89,38 +89,38 @@ if "%1" == "latexpdf" (
) )
if "%1" == "check_syntax" ( if "%1" == "check_syntax" (
python tools_rst\rst_check_syntax.py --kbd --long python tools\check_source\check_syntax.py --kbd --long
goto EOF goto EOF
) )
if "%1" == "checkout_locale" ( if "%1" == "checkout_locale" (
python tools_make\checkout_locale.py python build_files\utils\checkout_locale.py
goto EOF goto EOF
) )
if "%1" == "update_po" ( if "%1" == "update_po" (
python tools_maintenance\update_po.py python tools/utils_maintenance\update_po.py
goto EOF goto EOF
) )
if "%1" == "report_po_progress" ( if "%1" == "report_po_progress" (
IF NOT EXIST %cd%\locale GOTO MISSING_LOCALE 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 goto EOF
) )
if "%1" == "check_spelling" ( if "%1" == "check_spelling" (
python tools_rst\rst_check_spelling.py python tools\check_source\check_spelling.py
goto EOF goto EOF
) )
if "%1" == "check_structure" ( if "%1" == "check_structure" (
python tools_rst\rst_check_images.py python tools\check_source\check_images.py
goto EOF goto EOF
if "%1" == "update" ( if "%1" == "update" (
python tools_make\make_update.py python build_files\utils\make_update.py
goto EOF goto EOF
) else ( ) else (

View File

@ -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.

View File

@ -8,9 +8,4 @@ These add-ons relate to drawing or manipulating the 3D Viewport.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
3d_navigation.rst
math_vis_console.rst
measureit.rst
precision_drawing_tools/index.rst
stored_views.rst
vr_scene_inspection.rst vr_scene_inspection.rst

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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..._

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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 1980s
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 Objects,
Collections, or Materials 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.

View File

@ -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.

View File

@ -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 hasnt 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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

Binary file not shown.

BIN
manual/addons/animation/copy_global_transform-main.webp (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
manual/addons/animation/copy_global_transform-relative.webp (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -23,11 +23,14 @@ Activation
Interface Interface
========= =========
Located in :menuselection:`3D Viewport --> N-panel --> Animation tab`. .. figure:: copy_global_transform-main.webp
.. figure:: /images/addons_animation_copy-global-transform.png
:align: right :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 Description
=========== ===========
@ -59,7 +62,10 @@ Paste and Bake
.. _copy-global-transform-mirror-options: .. _copy-global-transform-mirror-options:
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`. The copied transform can be mirrored relative to an object or a :term:`Bone`.
This requires choosing that object or bone first. 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>`. :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 Limitations
=========== ===========

View File

@ -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.

View File

@ -8,8 +8,4 @@ These add-ons relate to helper tools for the animation process and animation.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
animall.rst
bone_selection_sets.rst
copy_global_transform.rst copy_global_transform.rst
corrective_shape_keys.rst
turnaround_camera.rst

View File

@ -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.

View File

@ -1,11 +0,0 @@
##########
Baking
##########
These add-ons add UI elements for faster baking access.
.. toctree::
:maxdepth: 1
vdm_brush_baker.rst

View File

@ -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.

View File

@ -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 rigs 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.

View File

@ -1,11 +0,0 @@
##########
Camera
##########
These add-ons relate to camera objects and tools.
.. toctree::
:maxdepth: 1
camera_rigs.rst

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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)`

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -3,30 +3,12 @@
Import-Export Import-Export
################# #################
.. toctree::
:maxdepth: 1
node_shaders_info.rst
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:name: addons-io :name: addons-io
coat3D.rst
mesh_atomic.rst
anim_bvh.rst anim_bvh.rst
scene_dxf.rst
scene_3ds.rst
anim_camera.rst
paper_model.rst
pc2.rst
scene_fbx scene_fbx
images_as_planes.rst
palettes.rst
shape_mdd.rst
anim_nuke_chan.rst
mesh_stl.rst
curve_svg.rst curve_svg.rst
mesh_uv_layout.rst mesh_uv_layout.rst
scene_x3d.rst
scene_gltf2.rst scene_gltf2.rst

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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`

View File

@ -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.

View File

@ -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";

View File

@ -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.

View 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

View File

@ -52,8 +52,7 @@ The exporter can bake mesh modifiers and animation into the FBX so the final res
.. note:: .. note::
Blender now only supports complex node-based shading. FBX having a fixed pipeline-like support of materials, 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>` this add-on converts between them.
featured by Blender to convert between both.
Properties Properties

View File

@ -172,10 +172,10 @@ may not be spare power for computing such things at render time.
.. tip:: .. tip::
The easiest way to create the custom node group is to import an existing glTF model If you enable Shader Editor Add-ons in preferences, you will be able to add this custom node group from Menu:
that contains an occlusion map, such as Add > Output > glTF Material Output
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. .. figure:: /images/addons_import-export_scene-gltf2_addon-preferences-shader.png
glTF stores occlusion in the red (``R``) channel, allowing it to optionally share glTF stores occlusion in the red (``R``) channel, allowing it to optionally share
the same image with the roughness and metallic channels. 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. 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 Transmission
^^^^^^^^^^^^ ^^^^^^^^^^^^
@ -427,34 +446,42 @@ Leave this box unchecked for double-sided materials.
The inverse of this setting controls glTF's ``DoubleSided`` flag. The inverse of this setting controls glTF's ``DoubleSided`` flag.
Blend Modes Alpha Modes
^^^^^^^^^^^ ^^^^^^^^^^^
The Base Color input can optionally supply alpha values. glTF has three alpha modes, depending on whether the alpha value is always 1, always 0 or
How these values are treated by glTF depends on the selected blend mode. 1, or can be between 0 and 1. The exporter determines the alpha mode automatically from
the nodes connected to the Alpha socket.
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:
Opaque Opaque
Alpha values are ignored. In *opaque mode*, the material alpha is always 1.
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.
.. 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 Rounding snaps alpha values that are 0.5 or greater up to 1, and ones below 0.5 down to
to render, and may behave in unexpected ways after export. Where possible, 1. It is also possible to use a cutoff value different than 0.5 by using Math nodes to
use *Alpha Clip* mode instead, or place *Opaque* polygons behind only do ``1 - (alpha < cutoff)``.
a single layer of *Alpha Blend* polygons.
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 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. 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 Exporting a Shadeless (Unlit) Material
-------------------------------------- --------------------------------------
@ -539,6 +576,7 @@ are supported directly by this add-on:
- ``KHR_materials_volume`` - ``KHR_materials_volume``
- ``KHR_materials_sheen`` - ``KHR_materials_sheen``
- ``KHR_materials_specular`` - ``KHR_materials_specular``
- ``KHR_materials_anisotropy``
- ``KHR_materials_ior`` - ``KHR_materials_ior``
- ``KHR_materials_variants`` - ``KHR_materials_variants``
- ``KHR_lights_punctual`` - ``KHR_lights_punctual``
@ -558,6 +596,7 @@ are supported directly by this add-on:
- ``KHR_materials_volume`` - ``KHR_materials_volume``
- ``KHR_materials_sheen`` - ``KHR_materials_sheen``
- ``KHR_materials_specular`` - ``KHR_materials_specular``
- ``KHR_materials_anisotropy``
- ``KHR_materials_ior`` - ``KHR_materials_ior``
- ``KHR_materials_variants`` - ``KHR_materials_variants``
- ``KHR_texture_transform`` - ``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 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**. 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! 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 Be aware that sharing this format requires sharing all of these separate files
together as a group. 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 Properties
========== ==========
@ -819,15 +872,24 @@ Transform
Y Up Y Up
Export using glTF convention, +Y up. Export using glTF convention, +Y up.
Data - Scene Graph Data - Scene Graph
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
Geometry Nodes Instances
Export Geometry nodes instances. This feature is experimental.
GPU Instances GPU Instances
Export using ``EXT_mesh_gpu_instancing`` extensions. Export using ``EXT_mesh_gpu_instancing`` extensions.
Flatten Object Hierarchy Flatten Object Hierarchy
Useful in case of non-decomposable TRS matrix. Only skined meshes will stay children of armature. 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 Data - Mesh
^^^^^^^^^^^ ^^^^^^^^^^^
@ -840,14 +902,34 @@ Normals
Export vertex normals with meshes. Export vertex normals with meshes.
Tangents Tangents
Export vertex tangents with meshes. Export vertex tangents with meshes.
Vertex Colors
Export Color Attributes with meshes.
Attributes Attributes
Export Attributes with meshes, when the name starts with underscore. Export Attributes with meshes, when the name starts with underscore.
Loose Edges Loose Edges
Export loose edges as lines, using the material from the first material slot. Export loose edges as lines, using the material from the first material slot.
Loose Points Loose Points
Export loose points as glTF points, using the material from the first material slot. 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 Data - Material
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
@ -867,6 +949,10 @@ Create WebP
For already WebP textures, nothing happen. For already WebP textures, nothing happen.
WebP fallback WebP fallback
For all WebP textures, create a png fallback texture. 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 Data - Shape Keys
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
@ -991,7 +1077,14 @@ Optimize Animation Size
Force keeping channel for armature / bones Force keeping channel for armature / bones
if all keyframes are identical in a rig, force keeping the minimal animation. if all keyframes are identical in a rig, force keeping the minimal animation.
Force keeping channel for objects 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 Contributing
============ ============

View File

@ -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.

View File

@ -1,11 +0,0 @@
**********
NewTek MDD
**********
.. reference::
:Category: Import-Export
:Menu: :menuselection:`File --> Import/Export --> Lightwave Point Cache (.mdd)`
Todo.

View File

@ -24,23 +24,7 @@ Add-ons Category Listings
:maxdepth: 1 :maxdepth: 1
3d_view/index.rst 3d_view/index.rst
add_curve/index.rst
add_mesh/index.rst
animation/index.rst animation/index.rst
baking/index.rst
camera/index.rst
development/index.rst
import_export/index.rst import_export/index.rst
interface/index.rst
lighting/index.rst
materials/index.rst
mesh/index.rst
node/index.rst node/index.rst
object/index.rst
paint/index.rst
render/index.rst
rigging/index.rst
sequencer/index.rst
system/index.rst system/index.rst
uv/index.rst
video_tools/index.rst

View File

@ -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.

View File

@ -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