Fix text() CSG output and cleanup test cases.

- enable text feature in import-export test cases
- drop ParaType font as Liberation is needed for the composition regression
  test, so use this for other tests too
- drop Amiri bold font, which is not adding anything to coverage
master
Torsten Paul 2014-07-11 00:42:33 +02:00
parent d8c325846d
commit d86e9d43ee
29 changed files with 95 additions and 218 deletions

View File

@ -70,17 +70,16 @@ public:
}
friend std::ostream & operator << (std::ostream &stream, const FreetypeRenderer::Params &params) {
return stream
<< "$fn = " << params.fn
<< ", text = '" << params.text
<< "', size = " << params.size
<< "text = \"" << params.text
<< "\", size = " << params.size
<< ", spacing = " << params.spacing
<< ", font = '" << params.font
<< "', direction = '" << params.direction
<< "', language = '" << params.language
<< "', script = '" << params.script
<< "', halign = '" << params.halign
<< "', valign = '" << params.valign
<< "'";
<< ", font = \"" << params.font
<< "\", direction = \"" << params.direction
<< "\", language = \"" << params.language
<< "\", script = \"" << params.script
<< "\", halign = \"" << params.halign
<< "\", valign = \"" << params.valign
<< "\", $fn = " << params.fn;
}
private:
double size, spacing, fn;

View File

@ -49,7 +49,7 @@ AbstractNode *TextModule::instantiate(const Context *ctx, const ModuleInstantiat
TextNode *node = new TextNode(inst);
AssignmentList args;
args += Assignment("t"), Assignment("size"), Assignment("font");
args += Assignment("text"), Assignment("size"), Assignment("font");
Context c(ctx);
c.setVariables(args, evalctx);
@ -67,7 +67,7 @@ AbstractNode *TextModule::instantiate(const Context *ctx, const ModuleInstantiat
int text_segments = std::max(((int)floor(segments / 6)) + 2, 2);
node->params.set_size(size);
node->params.set_fn(text_segments);
node->params.set_text(lookup_string_variable_with_default(c, "t", ""));
node->params.set_text(lookup_string_variable_with_default(c, "text", ""));
node->params.set_spacing(lookup_double_variable_with_default(c, "spacing", 1.0));
node->params.set_font(lookup_string_variable_with_default(c, "font", ""));
node->params.set_direction(lookup_string_variable_with_default(c, "direction", "ltr"));
@ -93,7 +93,7 @@ FreetypeRenderer::Params TextNode::get_params() const
std::string TextNode::toString() const
{
std::stringstream stream;
stream << "(" << this->params << ")";
stream << name() << "(" << this->params << ")";
return stream.str();
}

View File

@ -1,4 +1,4 @@
use <../../ttf/paratype-serif/PTF55F.ttf>
use <../../ttf/liberation-2.00.1/LiberationSans-Regular.ttf>
t = "OpenSCAD";
valign = [
@ -18,7 +18,7 @@ for (a = valign) {
translate([10, a[0], 0]) {
color("red") square([135, 0.5]);
color("blue") square([0.5, 20]);
text(t = t, font = "PT Serif:style=Regular", size = 20, valign = a[1]);
text(text = t, font = "Liberation Sans:style=Regular", size = 20, valign = a[1]);
}
}
@ -26,7 +26,7 @@ for (a = halign) {
translate([160 + 2.23 * a[0], a[0], 0]) {
color("red") square([135, 0.5]);
color("blue") square([0.5, 20]);
text(t = t, font = "PT Serif:style=Regular", size = 20, halign = a[1]);
text(text = t, font = "Liberation Sans:style=Regular", size = 20, halign = a[1]);
}
}

View File

@ -4,4 +4,4 @@ use <../../ttf/liberation-2.00.1/LiberationSans-Regular.ttf>
// The U+030A (COMBINING RING ABOVE) should be unioned to the
// letter and not generate a hole where the A and the ring
// overlap.
text(t = "A\u030a", font = "Liberation Sans", size = 40);
text(text = "A\u030a", font = "Liberation Sans", size = 40);

View File

@ -1,4 +1,4 @@
use <../../ttf/paratype-serif/PTF55F.ttf>
use <../../ttf/liberation-2.00.1/LiberationSans-Regular.ttf>
t = "OpenSCAD";
dir = [
@ -12,6 +12,6 @@ for (a = dir) {
translate([a[0], a[1], 0]) {
color("red") square([135, 0.5]);
color("blue") square([0.5, 20]);
text(t = t, font = "PT Serif:style=Regular", size = 20, direction = a[2]);
text(text = t, font = "Liberation Sans:style=Regular", size = 20, direction = a[2]);
}
}

View File

@ -1,2 +1,2 @@
use <../../ttf/paratype-serif/PTF55F.ttf>
text(t = "T-X-U", font = "PT Serif:style=Regular", size = 40, $fn = 2);
use <../../ttf/liberation-2.00.1/LiberationSans-Regular.ttf>
text(text = "T-X-U", font = "Liberation Sans:style=Regular", size = 40, $fn = 2);

View File

@ -8,7 +8,7 @@ use <../../ttf/amiri-0.106/amiri-regular.ttf>
o = 180;
t = [ "0123", "ABCD", "abcd" ];
f = [ "MarVoSym", /* "Webdings" */ "Amiri", "Liberation Sans" ];
f = [ "MarVoSym", /* "Webdings" */ "Amiri", "Liberation Sans:style=Regular" ];
// Validate that windows symbol fonts are handled correctly.
// When following the suggested encoding, the charmap is defined

View File

@ -1,6 +1,5 @@
use <../../ttf/amiri-0.106/amiri-regular.ttf>
use <../../ttf/amiri-0.106/amiri-bold.ttf>
use <../../ttf/paratype-serif/PTF55F.ttf>
use <../../ttf/liberation-2.00.1/LiberationSans-Regular.ttf>
t1="OpenSCAD";
t2="الخط الأميري";
@ -8,19 +7,19 @@ t3="типографика";
rotate([45, 0, -45]) {
translate([0, 80, 0])
text(t = t1, font = "PT Serif:style=Regular", size = 20);
text(text = t1, font = "Liberation Sans:style=Regular", size = 20);
translate([0, 40, 0])
text(t = t2, font = "Amiri:style=Bold", size = 20, direction = "rtl", language = "ar", script = "arabic");
text(text = t2, font = "Amiri:style=Regular", size = 20, direction = "rtl", language = "ar", script = "arabic");
text(t = t2, font = "Amiri:style=Regular", direction = "rtl", size = 20, language = "ar", script = "arabic");
text(text = t2, font = "Amiri:style=Regular", direction = "rtl", size = 20, language = "ar", script = "arabic");
translate([0, -40, 0])
text(t = t3, font="PT Serif:style=Regular", size=20, language="ru");
text(text = t3, font="Liberation Sans:style=Regular", size=20, language="ru");
translate([0, -80, 0])
text("positional", 30, "PT Serif:style=Regular");
text("positional", 30, "Liberation Sans:style=Regular");
translate([0, -100, 0])
text("parameters", 12, "Amiri:style=Bold");
}
text("parameters", 12, "Amiri:style=Regular");
}

Binary file not shown.

View File

@ -1,70 +0,0 @@
OpenType TT Font Installation
- OpenType TrueType (OT/TT) consists of one file with TTF extension.
- OpenType fonts can be installed and used in any version of Windows and on Mac OS X system.
- You may install OpenType fonts by the means of operating system or with the help of font management utilities.
Installing OpenType fonts for common operating systems:
- - - - - -
Windows 95/98/NT/ME
You may install about 800 fonts maximum in Windows ME, 98, or 95.
You may install OpenType/TT fonts by the means of operating system or with the help of font management utilities.
Installing OpenType/TT fonts on Windows by means of operating system:
Click on Start button and select Settings > Control Panel (or Open My Computer then Control Panel)
Open (Double-click) the Fonts folder.
Select File - Install New Font.
Use the Folders and Drives windows to move to the folder on your hard drive, a floppy disk, or CD where
your new fonts are located. (Make sure you have unzipped the files).
If you are installing fonts from a floppy or CD be sure the 'Copy fonts to folder' box is checked; otherwise,
fonts may not be available to use if the floppy or CD is not in the drive at all times.
Highlight the font to install from the List of fonts window. To select more than one font, hold down the
CTRL key and click each font. Click OK.
After installation, you may need to restart an application or reselect a printer in your application to make
the new fonts appear in the font list.
- - - - - - -
Windows 2000/XP/Vista/Windows 7
These Windows versions have built-in support for OpenType fonts. Installation procedure is identical for
all formats.
Open Control Panel.
In Windows 2000 double-click on My Computer. Then double-click on the Control Panel icon.
In Windows XP and later click on Start button and then on Control Panel.
Double-click on the Fonts icon in Control Panel window.
In the Fonts window, select the File menu, and choose Install New Font.
Navigate to the folder that contains fonts you want to install.
Select fonts you want to install. You can click to select one font, Control-click to select several fonts, or Shift-click
to select a contiguous group of fonts.
Press the "OK" button to install the fonts.
Close the Fonts control panel.
After installation, you may need to restart an application or reselect a printer in your application to make the new fonts
appear in the font list.
- - - - - -
Mac OS 7.x-9.x
DOES NOT SUPPORT OT/TT.
- - - - - -
Mac OS X
An OpenType font consists of one Suitcase file.
You may install fonts by means of operating system or with the help of font management utilities. To install with a font
management applications like Adobe Type Manager, Suitcase or Font Reserve, please consult the product manual.
Font installation on Mac is a simple drag and drop operation.
Close any open applications before installing fonts. New fonts do not appear in the font menu in some applications,
if you install them while an application is open.
Open the folder with fonts to install.
Make sure you are selecting fonts themselves, not a folder containing fonts.
Drag the selection to the Fonts folder inside the Library folder (see details below) on Mac OS X disk.
If you want fonts to be available to applications running in Classic mode, you must also install the fonts into the
Fonts folder inside the Classic System Folder.
- - - - - -
Read more about OpenType fonts installation on our website:
http://www.paratype.com/help/finst/
OpenType Overview
http://www.paratype.com/help/formats/opentype.asp

View File

@ -1,55 +0,0 @@
Установка шрифтов OpenType TT.
- Шрифты OpenType на основе TrueType (OT/TT) состоят из одного файла с расширением TTF.
- Шрифты OpenType могут быть установлены на любой версии Windows, а также на Mac OS 10.x.
- Шрифты OpenType можно инсталлировать средствами операционной системы или с помощью
шрифтовой утилиты Adobe Type Manager.
Инструкции по установке шрифтов в различных системах:
- - - - - -
Windows 95/98/NT/ME
Максимальное количество установленных шрифтов - 800.
Установка шрифтов производится либо средствами ОС, либо с использованием специальных программ.
Установка шрифтов OpenType TT в Windows средствами ОС:
Откройте Пуск - Настройка - Панель управления.
Откройте папку Шрифты.
Выберите Файл - Установить новый шрифт.
Найдите и откройте папку, в которой находится файлы шрифтов.
Щёлкните мышью по появившимся именам шрифтов из Списка шрифтов. Чтобы выделить более одного шрифта,
удерживайте клавишу CTRL и выделяйте мышью каждый шрифт. Нажмите ОК.
После инсталляции необходимо перезапустить приложения или заново выбрать принтер в приложении с тем,
чтобы новые шрифты появились в шрифтовом меню.
- - - - - - -
Windows 2000/XP/Vista/Windows 7
Эти версии Windows имеют встроенную поддержу OpenType шрифтов.
Откройте Пуск - Настройка - Панель управления.
Откройте папку Шрифты в Панели управления.
Выберите Файл - Установить новый шрифт.
Найдите и откройте папку, в которой находится файлы шрифтов.
Щёлкните мышью по появившимся именам шрифтов из Списка шрифтов. Чтобы выделить более одного шрифта,
удерживайте клавишу CTRL и выделяйте мышью каждый шрифт. Нажмите ОК.
После инсталляции необходимо перезапустить приложения или заново выбрать принтер в приложении с тем,
чтобы новые шрифты появились в шрифтовом меню.
- - - - - -
Mac OS 7.x-9.x
Не поддерживает OT/TT.
- - - - - -
Mac OS X
OpenType шрифт состоит из одного "чемодана".
Шрифты OpenType можно инсталлировать средствами операционной системы или с помощью шрифтовой утилиты
Adobe Type Manager. Установка шрифтов в ОС Mac - простая операция.
Закройте все приложения перед установкой. Новые шрифты не появляются в некоторых шрифтовых меню, если
установка выполняется при активном приложении. Откройте папку со шрифтами.
Убедитесь, что вы выделяете шрифты, а не папку со шрифтами.
Перетащите выделенные шрифты в папку Library, находящуюся на диске Mac OS X.
- - - - - -
Подробнее об установке OpenType шрифтов вы можете прочитать на сайте компании ПараТайп:
http://www.paratype.com/help/finst/
Обзор шрифтов OpenType:
http://www.paratype.com/help/formats/opentype.asp

View File

@ -1,44 +0,0 @@
Copyright (c) 2009, ParaType Ltd. All Rights Reserved.
LICENSING AGREEMENT
for the fonts with Original Name: PT Sans, PT Serif
Version 1.2 - December 23, 2010
GRANT OF LICENSE
ParaType Ltd grants you the right to use, copy, modify the fonts and distribute
modified and unmodified copies of the fonts by any means, including placing
on Web servers for free downloading, embedding in documents and Web pages,
bundling with commercial and non commercial products, if it does not conflict
with the conditions listed below:
- You may bundle the font with commercial software, but you may not sell the
fonts by themselves. They are free.
- You may distribute the fonts in modified or unmodified version only together
with this Licensing Agreement and with above copyright notice. You have no
right to modify the text of Licensing Agreement. It can be placed in a separate
text file or inserted into the font file, but it must be easily viewed by users.
- You may not distribute modified version of the font under the Original name
or à combination of Original name with any other words without explicit written
permission from ParaType.
TERMINATION & TERRITORY
This license has no limits on time and territory, but it becomes null and void
if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK,
OR OTHER RIGHT. IN NO EVENT SHALL PARATYPE BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL,
INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.
ParaType Ltd
http://www.paratype.ru

Binary file not shown.

View File

@ -1135,8 +1135,10 @@ list(APPEND EXPERIMENTAL_TEXT_FILES
${CMAKE_SOURCE_DIR}/../testdata/scad/experimental/text-font-symbol.scad
${CMAKE_SOURCE_DIR}/../testdata/scad/experimental/text-search-test.scad)
add_cmdline_test(dumptest EXE ${OPENSCAD_BINPATH} ARGS --enable=text -o SUFFIX csg FILES ${EXPERIMENTAL_TEXT_FILES})
add_cmdline_test(cgalpngtest EXE ${OPENSCAD_BINPATH} ARGS --render --enable=text -o SUFFIX png FILES ${EXPERIMENTAL_TEXT_FILES})
add_cmdline_test(opencsgtest EXE ${OPENSCAD_BINPATH} ARGS --enable=text -o SUFFIX png FILES ${EXPERIMENTAL_TEXT_FILES})
add_cmdline_test(csgpngtest EXE ${PYTHON_EXECUTABLE} SCRIPT ${CMAKE_SOURCE_DIR}/export_import_pngtest.py ARGS --openscad=${OPENSCAD_BINPATH} --format=csg EXPECTEDDIR cgalpngtest SUFFIX png FILES ${EXPERIMENTAL_TEXT_FILES})
add_cmdline_test(throwntogethertest EXE ${OPENSCAD_BINPATH} ARGS --preview=throwntogether --enable=text -o SUFFIX png FILES ${EXPERIMENTAL_TEXT_FILES})
# Tests using the actual OpenSCAD binary

View File

@ -77,7 +77,7 @@ if inputsuffix != '.scad' and inputsuffix != '.csg':
#
# First run: Just export the given filetype
#
export_cmd = [args.openscad, inputfile, '-o', exportfile] + remaining_args
export_cmd = [args.openscad, inputfile, '--enable=text', '-o', exportfile] + remaining_args
print('Running OpenSCAD #1:')
print(' '.join(export_cmd))
result = subprocess.call(export_cmd)
@ -94,7 +94,7 @@ if args.format != 'csg':
newscadfile += '.scad'
createImport(exportfile, newscadfile)
create_png_cmd = [args.openscad, newscadfile, '--render', '-o', pngfile] + remaining_args
create_png_cmd = [args.openscad, newscadfile, '--enable=text', '--render', '-o', pngfile] + remaining_args
print('Running OpenSCAD #2:')
print(' '.join(create_png_cmd))
result = subprocess.call(create_png_cmd)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -7,7 +7,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'top');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "top", $fn = 7);
}
multmatrix([[1, 0, 0, 10], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -16,7 +16,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'center');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "center", $fn = 7);
}
multmatrix([[1, 0, 0, 10], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -25,7 +25,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 10], [0, 1, 0, 100], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -34,7 +34,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'bottom');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "bottom", $fn = 7);
}
}
group() {
@ -45,7 +45,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 249.2], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -54,7 +54,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'center', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 316.1], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -63,7 +63,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'right', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "right", valign = "baseline", $fn = 7);
}
}
}

View File

@ -0,0 +1,3 @@
group() {
text(text = "Å", size = 40, spacing = 1, font = "Liberation Sans", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}

View File

@ -7,7 +7,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltl', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 90], [0, 1, 0, 60], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -16,7 +16,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'rtl', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "rtl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 10], [0, 1, 0, 160], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -25,7 +25,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ttb', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ttb", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 60], [0, 1, 0, 140], [0, 0, 1, 0], [0, 0, 0, 1]]) {
color([1, 0, 0, 1]) {
@ -34,7 +34,7 @@ group() {
color([0, 0, 1, 1]) {
square(size = [0.5, 20], center = false);
}
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'btt', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "btt", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
}
}

View File

@ -1,3 +1,3 @@
group() {
($fn = 2, text = 'T-X-U', size = 40, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "T-X-U", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 2);
}

View File

@ -0,0 +1,37 @@
group() {
group() {
group() {
multmatrix([[1, 0, 0, -180], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "0123", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, -180], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "ABCD", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, -180], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "abcd", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
}
group() {
multmatrix([[1, 0, 0, 0], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "0123", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "ABCD", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "abcd", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
}
group() {
multmatrix([[1, 0, 0, 180], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "0123", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 180], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "ABCD", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 180], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "abcd", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
}
}
}
}

View File

@ -1,14 +1,20 @@
group() {
multmatrix([[0.70710678118, 0.5, -0.5, 0], [-0.70710678118, 0.5, -0.5, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) {
multmatrix([[1, 0, 0, 0], [0, 1, 0, 80], [0, 0, 1, 0], [0, 0, 0, 1]]) {
($fn = 7, text = 'OpenSCAD', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'en', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
($fn = 7, text = 'الخط الأميري', size = 20, spacing = 1, font = 'Amiri:style=Bold', direction = 'rtl', language = 'ar', script = 'arabic', halign = 'left', valign = 'baseline');
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 7);
}
($fn = 7, text = 'الخط الأميري', size = 20, spacing = 1, font = 'Amiri:style=Regular', direction = 'rtl', language = 'ar', script = 'arabic', halign = 'left', valign = 'baseline');
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 7);
multmatrix([[1, 0, 0, 0], [0, 1, 0, -40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
($fn = 7, text = 'типографика', size = 20, spacing = 1, font = 'PT Serif:style=Regular', direction = 'ltr', language = 'ru', script = 'latin', halign = 'left', valign = 'baseline');
text(text = "типографика", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "ru", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, -80], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "positional", size = 30, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
multmatrix([[1, 0, 0, 0], [0, 1, 0, -100], [0, 0, 1, 0], [0, 0, 0, 1]]) {
text(text = "parameters", size = 12, spacing = 1, font = "Amiri:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB