Desenhos Técnicos
Os desenhos são gerados, não desenhados à mão: um modelo paramétrico build123d (ou um arquivo STEP) é
a única fonte da verdade, scripts/drawlib.py deriva as vistas dele (remoção de linhas ocultas,
cortes, hachuras) e adiciona as anotações que uma oficina precisa. Cada salvamento executa uma
verificação automática da folha. O resultado é um PDF vetorial por folha (opcionalmente DXF/SVG) mais uma prévia
PNG que você examina antes de considerar algo finalizado.
Por que este caminho: as vistas nunca podem discordar do modelo, um parâmetro alterado regenera cada folha, e o mesmo modelo fornece arquivos STEP e uma verificação de interferência de graça.
O que um bom desenho deve alcançar
Um desenho é um contrato com a pessoa que fabrica e inspeciona a peça. Alguém que nunca viu o projeto deve ser capaz de fabricá-la apenas a partir da folha. Isso decide tudo abaixo: dimensione o que a função precisa, tolere apenas o que importa, e diga como cada superfície funcional deve ser. Uma folha com todas as arestas cotadas, mas sem ajustes, rugosidade ou tolerâncias geométricas não é fabricável no sentido que examinadores e oficinas entendem.
Escolha o caminho
- O usuário tem um arquivo STEP e quer um desenho rapidamente: execute
python scripts/step2drawing.py part.step [--section] [--lang en --projection third] [--units in] [--material ...] [--density ...] [--dxf]. Ele fornece vistas, linhas ocultas, linhas de centro, dimensões gerais, legenda e a verificação. Então deixe claro que dimensões funcionais, ajustes, tolerâncias e textura superficial ainda precisam ser adicionados - e ofereça-se para adicioná-los:auto_drawing()no mesmo módulo retorna(sheet, views, issues)comout=None, então você pode continuar anotando a folha em Python (--up ypara exportações com Y para cima). - Qualquer coisa que precise ser fabricada: modele a(s) peça(s) e escreva a folha em Python
(fluxo de trabalho abaixo). A entrada STEP ainda pode ser o modelo:
D.load_step(path).
Fluxo de Trabalho
- Esclareça a função primeiro. Para cada peça pergunte: quais superfícies se acasalam com o quê, o que deve ser coaxial/perpendicular/plano para a máquina funcionar, quais dimensões vêm de peças compradas (rolamentos, pinos, parafusos). Estes se tornam datums, ajustes e tolerâncias. Se o usuário tem um relatório, BOM ou desenho antigo, leia-o e mantenha seus números; marque cada valor que você inventa como sua suposição e informe o usuário. Pergunte qual idioma e método de projeção o desenho deve usar (padrão: alemão, primeiro diedro; América do Norte: inglês, terceiro diedro) e se há uma legenda da empresa.
- Modele as peças em um módulo, cada peça em sua posição de fabricação, todas as
dimensões como parâmetros nomeados. Peças torneadas: revolve um meio-perfil
(x, r); peças prismáticas: caixas menos sólidos de furo, ou extrusão de um perfil (sem costuras fundidas). Modele roscas apenas como furos de núcleo. Coloque peças compradas/padrão como sólidos simples para que a montagem e a verificação de interferência estejam completas. - Verifique a montagem antes de desenhar:
(a & b).volumepara pares de todas as peças; cada sobreposição deve ser zero ou intencional (engate de rosca, ajuste prensado). Corrija o modelo, não o desenho. - Escreva uma função por folha, copiando o exemplo mais próximo em
examples/:flanged_bush.py(peça torneada, o modelo básico),bearing_bracket.py(montagem, lista de peças),stepped_shaft.py(vista quebrada, detalhe, corte removido, rosca),flange.py(meio corte, círculo de furos, tolerância de posição),spur_gear.py(tabela de dados de engrenagem),weldment.py(símbolos de solda),milled_block.py(inglês, terceiro diedro, legenda da empresa). Comece apenas com geometria, renderize, olhe, então adicione anotações em camadas: linhas de centro -> dimensões -> datums e tolerâncias -> textura superficial -> notas, tabelas -> legenda. - Renderize, leia a verificação, olhe cada folha.
Sheet.save(pdf, png=...)imprime o relatório de verificação e escreve<png>_check.pngcom cada falha emoldurada. Corrija todos os erros e avisos (mova a anotação, altere deslocamentos,tshift,tpos, joelhos das linhas de chamada). Então leia o PNG você mesmo - a verificação encontra colisões e inconsistências, não um conceito de dimensionamento errado ou uma seta apontando para a aresta errada. Amplie regiões densas. Nunca relate uma folha como concluída que você não viu. - Entregue: um PDF por folha nomeado pelo número do desenho, um conjunto mesclado (pypdf
PdfWriter.append), DXF se o usuário editar em CAD, STEP por peça e para a montagem (export_step). Indique claramente o que ainda não está desenhado e quais valores são suposições.
Configuração única por máquina: pip install -r requirements.txt. A fonte ISO 3098 osifont não
está incluída; ela é encontrada em $DRAWLIB_FONT, scripts/fonts/, ~/.drawlib/fonts/ ou nas
fontes do sistema (veja scripts/fonts/README.md). Sem ela a biblioteca usa DejaVu Sans -
mesma geometria, mas o lettering não é ISO 3098; a verificação mede a fonte que estiver ativa.
Usando drawlib
Leia references/drawlib_api.md antes de escrever a primeira folha - toda chamada com suas
convenções de coordenadas, receitas e armadilhas. O essencial:
S = D.Sheet("A4"|"A3"|"A2"|"A1"|"A0", lang="de"|"en", projection="first"|"third"). A4 é retrato, os outros paisagem (landscape=para sobrescrever). As coordenadas da folha estão em mm a partir do canto inferior esquerdo. Os números que a biblioteca escreve seguem o marcador decimal do idioma, e decimais dentro de textos de dimensão são convertidos ("0.02"->0,02em uma folha alemã).V = D.View(S, origin, scale, *D.VIEWS["front"])-VIEWStem front, top, bottom, left, right, rear, iso.V.p(u, v)transforma coordenadas da vista (mm do modelo) em mm da folha - use-o para cada anotação. Vetores errados geram um erro claro; escalas não ISO e vistas invertidas alertam.- Vistas:
V.draw(solids, hidden=),V.section([(V.cut(solid), angle, spacing), ...], background=[peças não cortadas]),V.half_section(...),V.removed_section(...),V.detail(centre, r, at, scale, "Z"),D.BrokenView(...),V.thread(...),D.views_layout(...)para posicionamento por método de projeção. - Dimensões:
S.hdim,S.vdim,S.dim,S.dim_angle,S.rdim,S.ddim; opçõestol=,box=True,outside=True,half=True,tshift=. - Ajustes: escreva-os no texto (
"Ø20 H7","Ø20 H7/s6");S.fit_table,S.fit_pair_tableimprimem valores ISO 286;iso_tolerancesfornece desvios, limites, ajustes, ISO 2768. - GD&T:
S.datum,S.fcf(x, y, kind, "0.02", ["A", "B"]),S.fcf_leader. - Superfícies:
S.rough,S.rough_leader,S.general_surface. S.notes,S.leader_text,S.posnum,S.cutting_plane,S.bom,S.table,S.weld,S.pitch_circle,S.title_block(values, layout=json_or_dict, logo=png).
Regras que fazem a diferença
Estes são os pontos que examinadores e oficinas verificam; references/normen.md tem as tabelas
(tipos de linha, valores ISO 2768, ajustes comuns, valores Ra típicos, qual tolerância geométrica
para qual função) e deve ser lido ao escolher valores.
- Projeção e vistas: declare o método (símbolo na legenda). Menor número de vistas que definem a peça; uma peça torneada precisa de um corte ao longo de seu eixo. Prefira cortes a linhas ocultas. Escalas apenas da ISO 5455; peças pequenas são desenhadas ampliadas para que as dimensões tenham espaço; peças longas são quebradas; pequenos detalhes ganham uma vista de detalhe.
- Dimensione a partir do datum funcional, não em cadeias, nunca duas vezes. Dimensões auxiliares entre parênteses. Dimensões fora do contorno quando possível; padrões de furo na vista que os mostre como círculos; dimensões menores mais próximas da peça.
- Ajustes e tolerâncias: todo diâmetro de acoplamento recebe um ajuste ISO 286 (assentos de rolamento conforme recomendação do fabricante do rolamento). Tudo sem tolerância cai sob a tolerância geral na legenda (ISO 2768-mK por padrão; ISO 13920 para soldados).
- Tolerâncias geométricas apenas onde a função precisar, sempre com um datum que seja ele próprio uma característica funcional e mensurável. Datum em um eixo: alinhado com a linha de cota daquele diâmetro. A linha de chamada encontra a superfície em ângulo reto. Padrões de furo: dimensões teoricamente exatas mais tolerância de posição.
- Textura superficial em toda superfície funcional, o valor geral uma vez ao lado da legenda. Os símbolos devem ser lidos por baixo ou pela direita - use uma linha de chamada para faces voltadas para baixo.
- Cortes: eixos, pinos, parafusos, chavetas, elementos rolantes e nervuras não são cortados em um
corte longitudinal. Peças vizinhas recebem hachuras diferentes; faces cortadas finas são enegrecidas
(
angle="solid"); a hachura é interrompida automaticamente ao redor do texto. - Roscas (ISO 6410), soldas (ISO 2553), engrenagens (ISO 2203): desenhadas simplificadas, com a chamada ou tabela de dados carregando a informação.
- Desenhos de montagem: números de item em uma linha, linhas de chamada terminando em um ponto; lista de peças acima da legenda, item 1 na parte inferior; peças padrão com sua designação padrão; apenas dimensões funcionais e de montagem; notas dizem como é montado e ajustado.
- Legenda: título, número do desenho, material com designação padrão, massa
(
solid.volume× densidade), escala, tolerância geral, data, folha n/m, tipo de documento, revisão. Nunca deixe material ou escala vazios - a verificação sinaliza.
Honestidade sobre limites
- A saída é PDF/SVG/PNG/DXF mais STEP, não um desenho nativo SolidWorks/Inventor. Para edição posterior em CAD forneça o DXF e o STEP e diga isso.
- A verificação da folha encontra colisões e inconsistências; ela não julga se o
dimensionamento, toleranciamento ou a escolha das vistas estão corretos. Isso é sua revisão do PNG
contra a lista de verificação em
references/normen.md. - Os valores de tolerância que você escolher são propostas de engenharia. Diga quais vêm dos documentos do usuário e quais são seus, para que ele possa defendê-los.