Как стать автором
Обновить

Комментарии 21

1 пиксель = 1 миллиметр? Спорно.
Смотря с каким разрешением печатать.
в конце статьи откройте пример в браузере, дальше Файл/Печатать. Распечатайте и посмотрите. При печати укажите растягивание до границ бумаги. SVG формат при масштабировании не теряет качество. Может я не так понял комментарий?
Я имею в виду, что если поставить разрешение при печати 25.4dpi, получится на бумаге ожидаемый размер. Можно и просто растянуть.
условно принято, чтобы задавать единицу измерения в мм как в формате DXF.
Я заметил у Вас в примере следущее:
<svg width="840" height="594" viewBox="0 0 420 297">

Скажите, пожалуйста, почему Вы не использовали единицы измерения напрямую? В пункте 7.1 (http://www.w3.org/TR/SVG/coords.html) сказано, что очень желательно использовать единицы реального мира.
<svg width="420mm" height="297mm" viewBox="0 0 420 297">


А вообще, жду продолжения — очень интересно узнать про Ваши правила стилизации и использования текста на чертежах
цитируя стандарт — (очень желательно, но не обязательно)

одна из причин желание минимизировать сам код чертежа

код чертежа будет меньше только на символы mm в размерах?
Попробуйте нарисовать шестеренку от наручных часов в таком масштабе.
Вообще, конечно, дело ваше. Но лучше делать максимально универсально.
В целом мне очень понравилось, но подрихтовать некоторые моменты стоит.
пишите что подрихтовать, всё рассмотрю и обсудим
в примере для видов использовался масштаб 1:4

<svg x="50" y="7" width="150" height="162" viewBox="-25 -200 600 648">

width=«150» height=«162» viewBox="…… 600 648" — соотношение величин задаёт масштаб отображения вида на листе

шестеренку от наручных часов можно нарисовать на том же формате листа, только к виду применить масштаб 20:1

<svg x="50" y="7" width="150" height="162" viewBox="-0.3 -2.5 7.5 8.1">
если использовать миллиметры то необходимо всюду использовать одну единицу измерения. В свойстве viewBox тега svg использование миллиметров приводят к багу (рисунок не масштабируется в неодходимый размер на экране).
Пример штампа чертежа с использованием единицы измерения мм
Ну если SVG позволяет дробные пиксели в размерах и позиции элементов ставить, то почему нет?
<path class="atr2" d="M140,101.34 C144.696,86.7859 152.303,75.3664 162.822,67.0820 C167.996,63.0066 174.363,58.9944 180.459,57.1320 C194.3626,52.8843 213.0561,57.1320 225.5589,67.0820 C232.5067,72.6114 241.8569,77.1221 250,77.9937 C263.3438,79.4220 275.9399,63.2633 290.0,60 C299.5142,57.7918 310.4253,54.6301 319.5409,57.1320 C325.7604,58.8390 332.0035,63.0066 337.1780,67.0820 C347.6966,75.3664 353.3294,89.2060 360,101.3405"/>

код кривой из нижнего вида примера чертежа (вырез в детали тонкая чёрная волнистая линия)
Может, окажется полезным. В SVG есть vector-effect="non-scaling-stroke", если он выставлен, то толщина stroke (и stroke-dasharray) не зависит от масштаба.

Демо: www.w3.org/TR/SVGTiny12/examples/non-scaling-stroke.svg
Протестировал, окажется полезным. В плагине jQuery SVG свойство vector-effect не предусмотрено. Спасибо за подсказку.
НЛО прилетело и опубликовало эту надпись здесь
тестирую только под Firefox и Chrome, возможно в будущем SVG заменит DXF для CAD систем.
У SVG нет такой задачи, несмотря на недавнее добавление штриховки в спеку SVG 2 :)
НЛО прилетело и опубликовало эту надпись здесь
Ну, мы-то (Inkscape) как раз участвуем. Больше того, Тав написал изрядную часть спек в 2.0 — от градиентных мешей до нового типа соединений в контурах.

Почему этим не занимаются, скажем, авторы LibreCAD и FreeCAD, которым SVG интересен как промежуточный формат — отдельный вопрос :)
SVG вообще прекрасен, особенно с учетом возможности встраивания JS.
Пример SVGшки для анимации пути


Или вот карта с огромным количеством объектов на FullHD экран
Смотрите с 30 секунды

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории