Pular para o conteúdo
CADCAMFUN
Docs

Documentação

Mapa de origem

Pontos de entrada de implementação para rastrear comportamento e fazer mudanças específicas.

Traduzido automaticamente do inglês. Ver o original em inglês

CAD e desenho

Comece em packages/core/src/index.ts para ver as exportações de namespace. packages/core/src/cad/index.ts lista APIs de CAD; packages/core/src/drawing/index.ts lista operações de desenho.

  • cad/sketch.ts, sketch-shapes.ts, snap.ts, intersect.ts: dados de esboço, formas, encaixe e interseção.
  • cad/history.ts, history-edit.ts, history-brep.ts: histórico de recursos, edições e reconstrução B-rep.
  • cad/brep/, solid.ts, tessellate.ts: topologia sólida, modelagem e malhas renderizáveis.
  • cad/import-step.ts, dxf.ts, e import-drawing.ts: limites de troca e importação.
  • cad/scene-analysis.ts, scene-evidence.ts, dfm.ts: análise de cena, evidências e verificações de capacidade de fabricação.

Mantenha a análise de importação, a geometria exata, o mosaico e a seleção da janela de visualização separados ao rastrear um problema de exibição. Uma malha visível pode ter uma origem diferente de um recurso paramétrico editável.

CAM e código G

  • packages/core/src/cam/index.ts: namespaces CAM públicos e exportações.
  • cam/operations/ e cam/generator/: implementações de operação e pipeline de geração.
  • cam/setup.ts, indexing.ts, ir.ts: quadros de configuração, usinagem indexada e representação de movimento intermediário.
  • cam/post/index.ts, emitter.ts, e os arquivos de dialeto: postagens registradas e emissão de programas compartilhados.
  • cam/post/convert.ts: o kernel de conversão NC: reproduz o código G ou Klartext, reescreve-o com qualquer postagem e prova o movimento por repetição.
  • cam/verify/, kernel/, model/, e viewer/: verificação, usinagem de kernels, modelos e auxiliares de visualização.

Rastrear usinagem persistente através apps/sidecar/src/http/toolpaths.ts e src/services/cam-program.tse, em seguida, no recurso CAM da área de trabalho. O referência de configurações explica como os documentos de programas portáteis se relacionam com percursos da ferramenta salvos.

HTTP e persistência

  • packages/api/src/index.ts, groups/, errors.ts, auth.ts: contratos de endpoint, erros de ligação e declarações de autorização.
  • packages/api/src/client.ts: cliente Effect completo baseado em contrato com middleware de portador.
  • packages/api/scripts/generate-clients.ts: resultados alvo e exclusões explícitas de geração.
  • packages/httpapi-codegen/src/index.ts: reflexão de contrato, validação e emissores de clientes.
  • apps/sidecar/src/main.ts, config.ts, layers.ts: ciclo de vida do servidor, configuração e fiação de dependência.
  • apps/sidecar/src/http/, services/, repos/: adaptadores de protocolo, operações de aplicativos e acesso de persistência.
  • packages/db/src/index.ts, schema.ts, upgrade.ts, migrate.ts: serviço de banco de dados, tabelas, segurança de atualização e CLI.
  • packages/db/drizzle/: migrações geradas e metadados enviados com o desktop.

Computador e celular

apps/desktop/src/app/App.tsx, Shell.tsx, e routes.tsx montar a bancada e rotas. client.ts e sidecar.ts lidar com o acesso à API e o estado da conexão nativa. O comportamento do produto vive sob src/features; controles compartilhados e o estado vivem sob src/shared.

A janela de visualização está sob apps/desktop/src/viewport, dividido em editor2d, view3d, e spatial. Os comandos nativos e o ciclo de vida estão sob apps/desktop/src-tauri/src; configuração de embalagem é src-tauri/tauri.conf.json.

As rotas móveis estão abaixo apps/mobile/app, componentes reutilizáveis sob componentse lógica de cliente/emparelhamento em lib. O módulo de soquete nativo é modules/companion-net. No servidor, inicie o rastreamento complementar em apps/sidecar/src/http/companion.ts e services/companion.ts.

IA, plug-ins, histórico e fluxos de trabalho

  • packages/ai/src/actions e tools: declarações de ação e integração de ferramentas assistentes.
  • packages/ai/src/nikcli, prompts, e skills: integração de host incorporada e orientação de assistente.
  • apps/sidecar/src/services/ai.ts: dependências de IA ao vivo e seleção de host.
  • packages/nikcli-plugin/src/index.ts: ponte HTTP nikcli externa.
  • packages/plugin-sdk/src/index.ts e apps/sidecar/src/plugins/host.ts: superfície de autoria do plugin e host de tempo de execução.
  • packages/vcs/src/index.ts, apps/sidecar/src/services/project-vcs.ts, e repos/project-vcs-repo.ts: biblioteca de histórico, orquestração e persistência.
  • packages/workflow/src/index.ts, apps/sidecar/src/services/workflow-runner.ts, e workflow-service-steps-live.ts: contrato de fluxo de trabalho, execução e registro de etapas de serviço.

O controle de versão reside em packages/vcs/src: object.ts (formato de objeto git), repository.ts (refs e commits), snapshot.ts, diff.ts, store.ts, transport.ts, e github.ts. Os fluxos de trabalho vivem em packages/workflow/src: schema.ts, trigger.ts (correspondência global e de gatilho) e run.ts. Os arquivos de fluxo de trabalho são lidos .cadcamfun/workflows/ na árvore do projeto.

Documentação e entrega

packages/web/src/pages/docs contém os artigos de documentação. src/layouts/DocsLayout.astro fornece o shell do artigo compartilhado. A cópia de navegação e recuperação está em src/data/docsSidebar.ts e docsIndex.ts; as descrições dos pacotes compartilhados estão em architecture.ts.

src/lib/docsMarkdown.ts converte artigos renderizados em Markdown para src/pages/llm.ts e o assistente de documentação. A recuperação está em docsRetrieval.ts; execução assistente está em src/pages/api/docs-assistant.ts. Análise de artefatos e auxiliares de armazenamento estão em src/lib/docsArtifact.ts.

packages/web/script/dev.ts inicia o Astro e o processo local do Studio. studio-server.ts possui a API de visão geral local do SQLite. astro.config.mjs configura a infraestrutura de pré-renderização e o proxy local; wrangler.toml declara ligações do trabalhador.

A compilação de desktop e o teste de lançamento começam em scripts/build.ts. Os fluxos de trabalho de CI e liberação estão sob .github/workflows. Ver Lançamento e atualizações para geração de artefatos e requisitos de assinatura.

Rastreie o comportamento além dos limites

  1. Identifique o ponto final no referência de recurso e leia seus esquemas de parâmetro, corpo, resposta e erro.
  2. Localize sua declaração HttpApi na composição raiz da API. Alguns recursos fundamentais, incluindo projetos, residem diretamente sob packages/api/src; outros grupos vivem sob src/groups.
  3. Encontre seu manipulador em apps/sidecar/src/http. Leia as verificações do usuário atual e dos recursos antes de seguir sua chamada de serviço ou repositório.
  4. Para cálculo, continue no núcleo. Para armazenamento, continue no repositório e Database.query. Para o comportamento do provedor/rede, inspecione o adaptador configurado.
  5. Retorne ao chamador desktop ou móvel e inspecione o manuseio do envelope, o estado da sessão, o cancelamento e a exibição de erros.

Por exemplo, um nome ausente na criação do projeto é rejeitado em apps/sidecar/src/http/projects.ts; não é um erro SQLite. Uma incompatibilidade de documento CAM portátil é verificada por apps/sidecar/src/services/cam-program.ts; analisar NC na viewport não pode ignorá-lo. Uma recusa de rota telefônica emparelhada tem origem na política de método/caminho do gateway complementar.

Árvore de diretórios com contagens de arquivos

Layout do repositório (arquivos TS/TSX/RS sem teste por diretório)
apps/
  desktop/src/          app/ 13  features/ 280  pages/ 68  shared/ 44  viewport/ 25  i18n/ 1
  desktop/src-tauri/src commands.rs lib.rs main.rs menu.rs secrets.rs sidecar.rs tray.rs updater.rs
  sidecar/src/          http/ 34  repos/ 24  services/ 29  plugins/ 3   (+ main.ts, config.ts, layers.ts)
  mobile/               app/ 13  components/ 30  lib/ 21  hooks/ 2  modules/ 2
packages/
  core/src/             cad/ 80  cam/ 110  drawing/ 7
  ai/src/               actions/ 14  nikcli/ 27  tools/ 26  prompts/ 5  skills/ 2
  api/src/              groups/ (one file per group)  sdk/generated/  client/generated/
  db/                   src/ (index, schema, upgrade, migrate)  drizzle/ (4 migrations)
  vcs/ workflow/ plugin-sdk/ httpapi-codegen/ nikcli-plugin/ web/
scripts/                build.ts compile-sidecar.ts stage-release.ts updater-manifest.ts
                        release-helpers.ts release-ref.ts signing-config.ts smoke-sidecar.ts
.github/workflows/      ci.yml release.yml build-platforms.yml ios.yml

Pastas de recursos da área de trabalho

Cada pasta abaixo apps/desktop/src/features/ possui componentes, estado e chamadas de API de uma área de produto:

apps/desktop/src/features/
admin  ai  analytics  auth  billing  cad  cam  chat  companion  costs  dashboard
legal  library  marketplace  mcp  organizations  plugins  profile  projects  settings  toolpaths

Um recurso chama o sidecar por meio do cliente API compartilhado; widgets compartilhados residem em shared/ e a cena 3D em viewport/.

Onde os conceitos de CAD residem no núcleo

ConceitoArquivo em pacotes/core/src/cad/
Resolução de esboçosketch.ts, sketch-shapes.ts
Histórico de recursos e reconstruçãohistory.ts, history-brep.ts, history-edit.ts
Rep B exatobrep/
Booleanos em malhascsg.ts
Expressões e parâmetrosexpr.ts
Importação STEP e DXFimport-step.ts, dxf.ts, import-drawing.ts
Filetes e misturasedge-blend.ts
Engrenagens, fixadores, chapas metálicasgear.ts, fasteners.ts, smart-fasteners.ts, sheet-metal.ts
Análise de montagem e cenaassembly-analysis.ts, scene-analysis.ts, scene-step.ts
Capacidade de fabricaçãodfm.ts
ConceitoArquivo em pacotes/core/src/cam/
Kernel nativo (instantâneo, execução, declarações)kernel/
Pós-processadorespost/
Operações e geradoresoperations/, generator/, cycles/
Configurações e indexaçãosetup.ts, indexing.ts, five-axis.ts
Repetição e verificaçãoverify/, program-evidence.ts
Máquinas e ferramentasmachine.ts, tool.ts
Subprogramassubprogram-text.ts

Em 3D

Onde fica o código: gráfico do espaço de trabalho Arraste para orbitar · role para ampliar · arraste com o botão direito para deslocar
Todos os 13 pacotes de espaço de trabalho de seus arquivos package.json; cada linha é um espaço de trabalho:* dependência (17 no total). As linhas têm profundidade de dependência: pacotes sem dependências de espaço de trabalho na frente, o sidecar, que depende de 8 deles, atrás. Caixas laranja são aplicativos.