Pular para o conteúdo
CADCAMFUN
Docs

Documentação

Percursos da ferramenta

Programas de usinagem salvos, associações de desenhos e documentos de fabricação portáteis validados.

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

Área de testes

Envie essas solicitações para seu próprio sidecar em execução. Os valores permanecem neste navegador.

Não conectado
Como isso funciona

O sidecar escuta em uma porta de loopback escolhida na inicialização e a imprime em seu ready linha; use esse URL e o CADCAMFUN_TOKEN foi iniciado. As solicitações vão direto desta página para esse endereço.

O sidecar envia cabeçalhos CORS apenas para as origens Tauri e para http://localhost ou http://127.0.0.1 em qualquer porto. Nos documentos hospedados, o navegador bloqueia a resposta, então execute os documentos localmente (bun run dev em packages/web) para usar o playground ou copie a solicitação como curl. Para experimentar sem tocar em dados reais, inicie o sidecar com CADCAMFUN_DATA_DIR apontado para um diretório descartável - veja o passo a passo da API.

Operações

9 endpoints no toolpaths grupo, gerado a partir do próprio sidecar Documento OpenAPI. As operações protegidas levam Authorization: Bearer $CADCAMFUN_TOKEN; ver autenticação. Comportamento e limites estão em o guia do subsistema.

pegar /api/toolpaths toolpaths.list
publicar /api/toolpaths toolpaths.create
pegar /api/toolpaths/{id} toolpaths.get
colocar /api/toolpaths/{id} toolpaths.update
excluir /api/toolpaths/{id} toolpaths.remove
pegar /api/toolpaths/{id}/setup-sheet toolpaths.setupSheet
publicar /api/toolpaths/post-check toolpaths.postCheck
pegar /api/drawings/{id}/toolpaths toolpaths.listForDrawing
publicar /api/drawings/{id}/toolpaths toolpaths.createForDrawing
Operações de percursos da ferramenta em 3D Arraste para orbitar · role para ampliar · arraste com o botão direito para deslocar
Um bloco por operação (9), empilhado por seção de recursos desta página e colorido por método: verde GET, laranja POST, azul PUT, violeta PATCH, vermelho DELETE. Gerado a partir do documento OpenAPI em tempo de construção.

/api/toolpaths

pegar /api/toolpaths # toolpaths.list

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
projectId consulta corda | null opcional
tipo consulta corda | null opcional
operationType consulta corda | null opcional
procurar consulta corda | null opcional
público consulta corda | null opcional
Respostas
200 Matriz<objeto> application/json
Array<{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
}>
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Resposta de exemplo capturado · 200
GET /api/toolpaths
[]
Exemplo de SDK
toolpaths.list
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsListInput
const result = await client.toolpaths.list({})
curl
GET /api/toolpaths
curl --request GET "${CADCAMFUN_URL}/api/toolpaths" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Experimente
publicar /api/toolpaths # toolpaths.create

Requer Authorization: Bearer <token>.

Corpo da solicitação · obrigatório · aplicação/json
{
  name?: string | null
  description?: string | null
  data?: unknown | null
  gcode?: string | null
  projectId?: string | null
  type?: string | null
  operationType?: string | null
  isPublic?: boolean | null
  thumbnail?: string | null
  materialId?: string | null
  machineConfigId?: string | null
  toolId?: string | null
  simulation?: unknown | null
  baseUpdatedAt?: string | null
}
Respostas
201 objeto application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.create
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsCreateInput
const result = await client.toolpaths.create({
  name: "",
  description: "",
  data: null,
  gcode: "",
  projectId: "",
  type: "",
  operationType: "",
  isPublic: false,
  thumbnail: "",
  materialId: "",
  machineConfigId: "",
  toolId: "",
  simulation: null,
  baseUpdatedAt: ""
})
curl
POST /api/toolpaths
curl --request POST "${CADCAMFUN_URL}/api/toolpaths" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
Experimente
pegar /api/toolpaths/{id} # toolpaths.get

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Respostas
200 objeto application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
  project: {
    id: string
    name: string
    ownerId: string
  }
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.get
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsGetInput
const result = await client.toolpaths.get({
  id: "<id>"
})
curl
GET /api/toolpaths/{id}
curl --request GET "${CADCAMFUN_URL}/api/toolpaths/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Experimente
colocar /api/toolpaths/{id} # toolpaths.update

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Corpo da solicitação · obrigatório · aplicação/json
{
  name?: string | null
  description?: string | null
  data?: unknown | null
  gcode?: string | null
  projectId?: string | null
  type?: string | null
  operationType?: string | null
  isPublic?: boolean | null
  thumbnail?: string | null
  materialId?: string | null
  machineConfigId?: string | null
  toolId?: string | null
  simulation?: unknown | null
  baseUpdatedAt?: string | null
}
Respostas
200 objeto application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
409 ConflictEncoded application/json
ConflictEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.update
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsUpdateInput
const result = await client.toolpaths.update({
  id: "<id>",
  name: "",
  description: "",
  data: null,
  gcode: "",
  projectId: "",
  type: "",
  operationType: "",
  isPublic: false,
  thumbnail: "",
  materialId: "",
  machineConfigId: "",
  toolId: "",
  simulation: null,
  baseUpdatedAt: ""
})
curl
PUT /api/toolpaths/{id}
curl --request PUT "${CADCAMFUN_URL}/api/toolpaths/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
Experimente
excluir /api/toolpaths/{id} # toolpaths.remove

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Respostas
200 objeto application/json
{
  message: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.remove
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsRemoveInput
const result = await client.toolpaths.remove({
  id: "<id>"
})
curl
DELETE /api/toolpaths/{id}
curl --request DELETE "${CADCAMFUN_URL}/api/toolpaths/<id>" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Experimente
pegar /api/toolpaths/{id}/setup-sheet # toolpaths.setupSheet

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Respostas
200 objeto application/json
{
  data: {
    title: string
    jobId: string
    release: "blocked" | "preview" | "verified-program"
    material: {
      name: string
      iso: string
    }
    machine: {
      name: string
      post: string
    }
    setup: {
      orientation: string
      workOffset: string
      origin: {
        x: number
        y: number
        z: number
      }
      stock: {
        x: number
        y: number
        z: number
      }
    }
    tools: Array<{
      number: number
      id: string
      name: string
      kind: string
      diameter: number
      flutes: number
      fluteLength: number
      shankDiameter: number
      stickout: number
      holder?: string
      operations: string[]
      seconds: number
    }>
    operations: Array<{
      index: number
      id: string
      name: string
      strategy: string
      status: "ok" | "failed"
      tool?: number
      seconds: number
      cutLength: number
      removedVolume: number
      rpm?: number
      feed?: number
      ap?: number
      ae?: number
      warnings: string[]
    }>
    totals: {
      tools: number
      operations: number
      cycleSeconds: number
      cuttingSeconds: number
      removedVolume: number
    }
    claims: Array<{
      id: string
      status: string
      detail: string
    }>
    notes: string[]
    issues: Array<{
      severity: string
      message: string
    }>
    identity: {
      job: string
      part: string
      nc: string
      algorithm: string
    }
    titleBlock?: {
      [key: string]: string | number
    }
  }
  html: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
buscar exemplo
toolpaths.setupSheet
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/toolpaths/${id}/setup-sheet`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
GET /api/toolpaths/{id}/setup-sheet
curl --request GET "${CADCAMFUN_URL}/api/toolpaths/<id>/setup-sheet" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Experimente

/api/toolpaths/post-check

publicar /api/toolpaths/post-check # toolpaths.postCheck

Requer Authorization: Bearer <token>.

Corpo da solicitação · obrigatório · aplicação/json
{
  definition: unknown
  sample?: boolean
}
Respostas
200 objeto application/json
{
  valid: boolean
  issues: Array<{
    path: string
    message: string
  }>
  sample?: string
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
buscar exemplo
toolpaths.postCheck
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/toolpaths/post-check`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
POST /api/toolpaths/post-check
curl --request POST "${CADCAMFUN_URL}/api/toolpaths/post-check" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
Experimente

/api/drawings

pegar /api/drawings/{id}/toolpaths # toolpaths.listForDrawing

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Respostas
200 Matriz<objeto> application/json
Array<{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
  Material: {
    id: string
    name: string
  } | null
  MachineConfig: {
    id: string
    name: string
    type: string
  } | null
  Tool: {
    id: string
    name: string
    type: string
    diameter: number | "Infinity" | "-Infinity" | "NaN"
  } | null
}>
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.listForDrawing
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsListForDrawingInput
const result = await client.toolpaths.listForDrawing({
  id: "<id>"
})
curl
GET /api/drawings/{id}/toolpaths
curl --request GET "${CADCAMFUN_URL}/api/drawings/<id>/toolpaths" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}"
Experimente
publicar /api/drawings/{id}/toolpaths # toolpaths.createForDrawing

Requer Authorization: Bearer <token>.

Parâmetros
NomeEmTipoObrigatório
eu ia caminho corda obrigatório
Corpo da solicitação · obrigatório · aplicação/json
{
  name?: string | null
  description?: string | null
  data?: unknown | null
  gcode?: string | null
  projectId?: string | null
  type?: string | null
  operationType?: string | null
  isPublic?: boolean | null
  thumbnail?: string | null
  materialId?: string | null
  machineConfigId?: string | null
  toolId?: string | null
  simulation?: unknown | null
  baseUpdatedAt?: string | null
}
Respostas
201 objeto application/json
{
  id: string
  name: string
  description: string | null
  data: unknown
  type: string | null
  operationType: string | null
  gcode: string | null
  thumbnail: string | null
  isPublic: boolean
  projectId: string
  createdAt: string
  updatedAt: string
  createdBy: string
  drawingId: string | null
  materialId: string | null
  toolId: string | null
  machineConfigId: string | null
}
400 BadRequestEncoded application/json
BadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
403 ForbiddenEncoded application/json
ForbiddenEncoded
404 NotFoundEncoded application/json
NotFoundEncoded
500 InternalErrorEncoded application/json
InternalErrorEncoded
Exemplo de SDK
toolpaths.createForDrawing
import { CadCam } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

// ToolpathsCreateForDrawingInput
const result = await client.toolpaths.createForDrawing({
  id: "<id>",
  name: "",
  description: "",
  data: null,
  gcode: "",
  projectId: "",
  type: "",
  operationType: "",
  isPublic: false,
  thumbnail: "",
  materialId: "",
  machineConfigId: "",
  toolId: "",
  simulation: null,
  baseUpdatedAt: ""
})
curl
POST /api/drawings/{id}/toolpaths
curl --request POST "${CADCAMFUN_URL}/api/drawings/<id>/toolpaths" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
Experimente

Esquemas

Esquemas nomeados acessíveis a partir dos parâmetros, corpos e respostas deste grupo. UM ? marca um campo opcional; | null marca um campo que pode estar presente com um valor nulo.

BadRequestEncoded
{
  _tag: "BadRequest"
  message: string
}
ConflictEncoded
{
  _tag: "Conflict"
  message: string
}
ForbiddenEncoded
{
  _tag: "Forbidden"
  message: string
}
InternalErrorEncoded
{
  _tag: "InternalError"
  message: string
}
NotFoundEncoded
{
  _tag: "NotFound"
  message: string
}
UnauthorizedEncoded
{
  _tag: "Unauthorized"
  message: string
}

Chamando este grupo

Os IDs de operação têm o formato toolpaths.<name>. O Promise SDK gerado (@cadcamfun/api/sdk) expõe a maioria deles como client.<namespace>.<method>(input), onde input é um objeto plano de parâmetros de caminho e campos de corpo; o exemplo do SDK de cada cartão mostra o acessador e o tipo de entrada exatos. Multipart uploads, respostas binárias ou JavaScript e webhooks brutos não são gerados; essas cartas mostram fetch em vez disso.

Erros do Promise SDK
import { CadCam, ClientError } from "@cadcamfun/api/sdk"

const client = CadCam.make({
  baseUrl: process.env.CADCAMFUN_URL!,
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})

try {
  await client.projects.list()
} catch (error) {
  if (error instanceof ClientError) {
    // Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
  } else {
    // a declared error body: switch on error._tag
  }
}

Solução de problemas

SintomaCausa provávelConsertar
401 em cada chamadaToken de um lançamento anterior ou ausente Bearer prefixoEnviar Authorization: Bearer <token> com o token com o qual o sidecar foi iniciado.
400 antes que algo aconteçaO corpo ou parâmetro não corresponde ao esquemaCompare a carga útil com o esquema de solicitação no cartão.
403 ou 404 em um registro que você vê em outro lugarA conta atuante difereEnvie o certo x-session-tokenou use o perfil local que possui o registro.
409Estado conflitante, como um nome duplicado ou um cabeçalho de ramificação obsoletoLeia novamente o recurso e tente novamente com os dados atuais.
Tente dizer "bloqueado pelo CORS"Os documentos são veiculados a partir de uma origem sem loopbackExecute os documentos localmente ou copie a solicitação como curl.
Ligação recusadaO sidecar foi reiniciado em uma nova portaLeia a porta do novo ready linha.