Конвертирование в svg формат чертежей созданных в редакторах Компас3D, CorelCad, AutoCAD?
интересует вопрос создания качественных чертежей в формате SVG. Подскажите где это сделать удобнее всего. Экспорт в Компас3д в формате svg я не нашел. Есть мысли по данной теме? Спасибо.
Ответы (1 шт):
Чертежи, созданные в AutoCAD и в других подобных программах, обычно сохраняются в формате *.dwg
Если вам нужен конвертер из *.dwg в *.svg формат можете попробовать Бесплатное онлайн преобразование dwg в svg
Но будьте готовы, что в некоторых случаях могут возникнуть всякого рода артефакты: сдвиг линий чертежа, сдвиг стрелок с размерами, штриховка может оказаться не на том месте, где должна быть.
Короче, бесплатный сыр, бывает только в мышеловках. Поэтому, нужно уметь найти в этом бесконечном коде SVG нужное место и подкорректировать его вручную.
В помощь можно почитать отличную статью в четырех частях, как в ручную нарисовать или соответственно поправить, тот или иной элемент.
Чертежи в SVG формате. Часть 1
Эта статья написана в 2013 году, но svg не менялся с 2001 года, поэтому она актуальна до сих пор.
В статье описываются, как можно создать или поправить те или иные элементы чертежа
Например, SVG код размерной линии со стрелками. В качестве стрелок используются маркеры. Подробнее здесь
Код размерной стрелки:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="300" height="300" viewBox="0 0 400 400" >
<defs id="defsCAD">
<!-- Рисование стрелок и засечек -->
<marker id="DimPoint1" viewBox="-2 -12 29 24" markerWidth="44" markerHeight="36" orient="auto">
<path class="lt2_025" stroke="black" d="M0,0 L20,-4 16,0 20,4 z M0,-10 L0,10 M0,0 L27,0"/>
</marker>
<marker id="DimPoint2" viewBox="-27 -12 29 24" markerWidth="44" markerHeight="36" orient="auto">
<path class="lt2_025" stroke="black" d="M0,0 L-20,-4 -16,0 -20,4 z M0,-10 L0,10 M0,0 L-27,0"/>
</marker>
</defs>
<g class="DimL">
<line class="lt2" x1="190" y1="180" x2="190" y2="230"/>
<line class="lt2" x1="310" y1="180" x2="310" y2="230"/>
<line id="dim1" class="lt2" x1="190" y1="230" x2="310" y2="230" marker-start="url(#DimPoint1)" marker-end="url(#DimPoint2)"/>
<text x="230" y="222" font-size="28" >120</text>
</g>
</svg>
Update
Есть одна особенность отображения графики в SVG. Если мы задали область и хотим по краю её нарисовать контур, то должны отступить на пол толщины линии иначе линии будут на половину тоньше. Например ниже код чёрной рамочки края чертежа.
<svg id="Shtamp" type="1" x="0" y="0" width="420" height="297" viewBox="0 0 420 297">
...
<rect class="lt2" x="1" y="1" width="418" height="295"/>
....
</svg>
Вполне возможно, что при конвертации из *.dwg => *.svg это не учитывается, откуда конвертору узнать, что это край холста SVG. И если вам нужен качественный чертеж с одинаковыми по толщине линиями, то измените viewBox и другие атрибуты, как в примере выше
- vector-effect: non-scaling-stroke;.
Применяется, если есть необходимость сохранять постоянной толщину линий при масштабировании холста SVG.
Пример здесь с анимацией, демонстрирующий этот эффект
