सामग्री पर जाएँ
CADCAMFUN
दस्तावेज़

दस्तावेज़

सटीक सीएडी

सटीक ज्यामिति का विश्लेषण करें, STEP निर्यात करें, और दृश्य स्नैपशॉट या सहेजे गए चित्रों से असेंबली संबंधों का निरीक्षण करें।

स्वचालित अनुवाद अभी उपलब्ध नहीं है; पाठ अंग्रेज़ी में है और इंटरफ़ेस आपकी भाषा में है। अंग्रेज़ी मूल देखें

प्लेग्राउंड

इन अनुरोधों को अपने स्वयं के चल रहे साइडकार को भेजें। मान इस ब्राउज़र में रहते हैं.

जुड़े नहीं हैं
यह कैसे काम करता है

साइडकार स्टार्टअप पर चुने गए लूपबैक पोर्ट पर सुनता है और इसे प्रिंट करता है ready रेखा; उस यूआरएल का उपयोग करें और CADCAMFUN_TOKEN इसकी शुरुआत की गई थी. अनुरोध सीधे इस पृष्ठ से उस पते पर जाते हैं।

साइडकार CORS हेडर को केवल टौरी मूल और तक भेजता है http://localhost या http://127.0.0.1 किसी भी बंदरगाह पर. होस्ट किए गए दस्तावेज़ों से ब्राउज़र प्रतिक्रिया को अवरुद्ध कर देता है, इसलिए दस्तावेज़ों को स्थानीय रूप से चलाएँ (bun run dev में packages/web) खेल के मैदान का उपयोग करने के लिए, या अनुरोध को कर्ल के रूप में कॉपी करें। वास्तविक डेटा को छुए बिना प्रयोग करने के लिए, साइडकार से शुरुआत करें CADCAMFUN_DATA_DIR एक बेकार निर्देशिका की ओर इशारा किया - देखें एपीआई वॉकथ्रू.

संचालन

5 एंडपॉइंट cadExact समूह, साइडकार के स्वयं से उत्पन्न ओपनएपीआई दस्तावेज़. संरक्षित संचालन लेते हैं Authorization: Bearer $CADCAMFUN_TOKEN; देखना प्रमाणीकरण. व्यवहार और मर्यादा में हैं सबसिस्टम गाइड.

डाक /api/cad/exact/analyze cadExact.analyze
डाक /api/cad/exact/step cadExact.step
डाक /api/cad/exact/assembly cadExact.assembly
डाक /api/cad/exact/setups cadExact.setups
डाक /api/cad/exact/hole cadExact.hole
3डी में सटीक सीएडी संचालन कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
प्रति ऑपरेशन एक ब्लॉक (5), इस पृष्ठ के प्रति संसाधन अनुभाग को स्टैक्ड किया गया है और विधि के अनुसार रंगा गया है: हरा GET, नारंगी POST, नीला PUT, बैंगनी PATCH, लाल DELETE। निर्माण के समय OpenAPI दस्तावेज़ से उत्पन्न।

/api/cad/exact

डाक /api/cad/exact/analyze # cadExact.analyze

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: object[]
  drawingId?: string
  ids?: string[]
  machining?: boolean
}
जवाब
200 वस्तु application/json
{
  parts: Array<{
    id: string
    name: string
    valid: boolean
    issues: string[]
    volume: number
    area: number
    centroid: {
      x: number
      y: number
      z: number
    }
    bounds: {
      min: {
        x: number
        y: number
        z: number
      }
      max: {
        x: number
        y: number
        z: number
      }
    }
    faces: number
    edges: number
    vertices: number
    surfaces: {
      [key: string]: number
    }
    throughHoles?: number
    holes: Array<{
      entry: {
        x: number
        y: number
        z: number
      }
      direction: {
        x: number
        y: number
        z: number
      }
      diameter: number
      depth: number
      form: "simple" | "counterbore" | "countersink"
      bottom: "through" | "flat" | "drill-point"
      headDiameter?: number
      headDepth?: number
    }>
    machining: {
      prismatic: true
      holes: number
      pockets: number
      outlines: number
      top: number
      bottom: number
      islands?: number
      sideHoles?: number
      hiddenFaces?: number
    } | {
      prismatic: false
      reason: string
    }
    bosses: Array<{
      diameter: number
      length: number
      free: "near" | "far" | "both" | "none"
      origin: {
        x: number
        y: number
        z: number
      }
      axis: {
        x: number
        y: number
        z: number
      }
    }>
    nurbsFaces?: Array<{
      face: number
      normal: {
        x: number
        y: number
        z: number
      }
      spread: number
      trimmed: boolean
    }>
    fillets?: Array<{
      face: number
      kind: "cylinder" | "torus"
      radius: number
      convex: boolean
      length: number
    }>
    swarfWalls?: Array<{
      face: number
      kind: "plane" | "cone" | "cylinder"
      near: {
        x: number
        y: number
        z: number
      }
      height: number
      lean: number
      concaveRadius?: number
    }>
    faceNames?: string[]
    repair?: {
      verticesWelded: number
      edgesWelded: number
      collapsedUses: number
      validAfter: boolean
      issuesAfter: string[]
    }
  }>
  skipped: Array<{
    id: string
    name: string
    reason: string
  }>
  totals: {
    parts: number
    volume: number
    area: number
  }
}
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
एसडीके उदाहरण
cadExact.analyze
import { CadCam } from "@cadcamfun/api/sdk"

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

// CadExactAnalyzeInput
const result = await client.cadExact.analyze({
  elements: [
    {}
  ],
  drawingId: "",
  ids: [
    ""
  ],
  machining: false
})
curl
पोस्ट/एपीआई/सीएडी/सटीक/विश्लेषण
curl --request POST "${CADCAMFUN_URL}/api/cad/exact/analyze" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/cad/exact/step # cadExact.step

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: object[]
  drawingId?: string
  ids?: string[]
  faceted?: boolean
  author?: string
}
जवाब
200 वस्तु application/json
{
  step?: string
  parts: Array<{
    id: string
    name: string
    exact: boolean
    faces: number
    valid: boolean
    note?: string
  }>
  skipped: Array<{
    id: string
    name: string
    reason: 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
एसडीके उदाहरण
cadExact.step
import { CadCam } from "@cadcamfun/api/sdk"

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

// CadExactStepInput
const result = await client.cadExact.step({
  elements: [
    {}
  ],
  drawingId: "",
  ids: [
    ""
  ],
  faceted: false,
  author: ""
})
curl
पोस्ट/एपीआई/सीएडी/सटीक/चरण
curl --request POST "${CADCAMFUN_URL}/api/cad/exact/step" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/cad/exact/assembly # cadExact.assembly

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: object[]
  drawingId?: string
  washers?: boolean
}
जवाब
200 वस्तु application/json
{
  parts: number
  interference: {
    clashes: Array<{
      a: string
      b: string
      aName: string
      bName: string
      volume: number
      centroid: {
        x: number
        y: number
        z: number
      }
    }>
    expected: Array<{
      a: string
      b: string
      aName: string
      bName: string
      volume: number
      note: string
    }>
    touching: Array<{
      a: string
      b: string
    }>
    undetermined: Array<{
      a: string
      b: string
      reason: string
    }>
    checked: number
  }
  clearance?: Array<{
    a: string
    b: string
    aName: string
    bName: string
    distance: number
    overlap: boolean
  }>
  bom: Array<{
    item: number
    name: string
    designation?: string
    material?: string
    quantity: number
    volume: number
    mass?: number
    parts: string[]
  }>
  joints: Array<{
    parent: string
    child: string
    parentName: string
    childName: string
    kind: "revolute" | "fixed"
    origin: {
      x: number
      y: number
      z: number
    }
    axis: {
      x: number
      y: number
      z: number
    }
    axes: number
  }>
  fasteners: {
    plans: Array<{
      id: string
      size: string
      threadName: string
      designation: string
      length: number
      seat: {
        x: number
        y: number
        z: number
      }
      direction: {
        x: number
        y: number
        z: number
      }
      bodies: string[]
      tapped?: string
      grip: number
      engagement?: number
      headWasher?: {
        designation: string
        inner: number
        outer: number
        thickness: number
      }
      nutWasher?: {
        designation: string
        inner: number
        outer: number
        thickness: number
      }
      nutWasherAt?: {
        x: number
        y: number
        z: number
      }
      nut?: {
        designation: string
        across: number
        height: number
        at: {
          x: number
          y: number
          z: number
        }
      }
      warnings: string[]
    }>
    unfastened: Array<{
      bodies: string[]
      at: {
        x: number
        y: number
        z: number
      }
      reason: string
    }>
    existing: number
  }
  skipped: Array<{
    id: string
    name: string
    reason: 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
एसडीके उदाहरण
cadExact.assembly
import { CadCam } from "@cadcamfun/api/sdk"

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

// CadExactAssemblyInput
const result = await client.cadExact.assembly({
  elements: [
    {}
  ],
  drawingId: "",
  washers: false
})
curl
पोस्ट/एपीआई/सीएडी/सटीक/असेंबली
curl --request POST "${CADCAMFUN_URL}/api/cad/exact/assembly" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/cad/exact/setups # cadExact.setups

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: object[]
  drawingId?: string
  ids?: string[]
  fixture?: "bottom" | "none"
  allowed?: Array<"+Z" | "-Z" | "+X" | "-X" | "+Y" | "-Y">
}
जवाब
200 वस्तु application/json
{
  parts: Array<{
    id: string
    name: string
    plan: {
      setups: Array<{
        orientation: "+Z" | "-Z" | "+X" | "-X" | "+Y" | "-Y"
        faces: number[]
        area: number
        share: number
        holes: Array<{
          entry: {
            x: number
            y: number
            z: number
          }
          direction: {
            x: number
            y: number
            z: number
          }
          diameter: number
          depth: number
          form: "simple" | "counterbore" | "countersink"
        }>
        prismatic: {
          ok: true
          holes: number
          pockets: number
          outlines: number
        } | {
          ok: false
          reason: string
        }
      }>
      uncovered: Array<{
        face: number
        kind: string
        area: number
        reason: string
      }>
      held: Array<{
        face: number
        kind: string
        area: number
      }>
      indexed: Array<{
        entry: {
          x: number
          y: number
          z: number
        }
        direction: {
          x: number
          y: number
          z: number
        }
        diameter: number
        depth: number
        form: "simple" | "counterbore" | "countersink"
      }>
      reach: Array<{
        orientation: "+Z" | "-Z" | "+X" | "-X" | "+Y" | "-Y"
        faces: number
        area: number
        share: number
      }>
      faces: number
      area: number
      notes: string[]
    }
  }>
  skipped: Array<{
    id: string
    name: string
    reason: 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
उदाहरण लाओ
cadExact.setups
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/cad/exact/setups`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/सीएडी/सटीक/सेटअप
curl --request POST "${CADCAMFUN_URL}/api/cad/exact/setups" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं
डाक /api/cad/exact/hole # cadExact.hole

आवश्यक है Authorization: Bearer <token>.

अनुरोध का मुख्य भाग · आवश्यक · एप्लिकेशन/जेसन
{
  elements?: object[]
  drawingId?: string
  id: string
  hole?: number
  boss?: number
  fillet?: number
  nurbs?: number
  distance?: number
  direction?: {
    x: number
    y: number
    z: number
  }
  mode?: "move" | "offset" | "draft"
  angle?: number
  neutral?: number
  pull?: {
    x: number
    y: number
    z: number
  }
  tolerance?: number
  radius?: number
  diameter?: number
  taper?: number
  fill?: boolean
}
जवाब
200 वस्तु | वस्तु | वस्तु | वस्तु | वस्तु application/json
{
  ok: true
  id: string
  name: string
  hole: number
  holes: number
  before: {
    diameter: number
    depth: number
    form: "simple" | "counterbore" | "countersink"
  }
  edit: {
    kind: "resize"
    diameter: number
    taper?: number
  } | {
    kind: "fill"
  }
  volume: number
  originalVolume: number
  volumeChange: number
  faces: number
  valid: boolean
} | {
  ok: true
  id: string
  name: string
  boss: number
  bosses: number
  before: {
    diameter: number
    length: number
  }
  diameter: number
  taper?: number
  volume: number
  originalVolume: number
  volumeChange: number
  faces: number
  valid: boolean
} | {
  ok: true
  id: string
  name: string
  fillet: number
  fillets: number
  before: {
    radius: number
    convex: boolean
  }
  radius: number
  volume: number
  originalVolume: number
  volumeChange: number
  faces: number
  valid: boolean
} | {
  ok: true
  id: string
  name: string
  nurbs: number
  nurbsFaces: number
  mode: "move" | "offset" | "draft"
  before: {
    normal: {
      x: number
      y: number
      z: number
    }
    spread: number
  }
  distance?: number
  direction?: {
    x: number
    y: number
    z: number
  }
  angle?: number
  approximate?: {
    deviation: number
  }
  volume: number
  originalVolume: number
  volumeChange: number
  faces: number
  valid: boolean
} | {
  ok: false
  error: 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
उदाहरण लाओ
cadExact.hole
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/cad/exact/hole`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
curl
पोस्ट/एपीआई/सीएडी/सटीक/छेद
curl --request POST "${CADCAMFUN_URL}/api/cad/exact/hole" \
  --header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-binary @request.json
इसे अजमाएं

स्कीमा

नामित स्कीमा इस समूह के मापदंडों, निकायों और प्रतिक्रियाओं से पहुंच योग्य हैं। ए ? एक वैकल्पिक फ़ील्ड चिह्नित करता है; | null उस फ़ील्ड को चिह्नित करता है जो शून्य मान के साथ मौजूद हो सकता है।

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

इस समूह को कॉल किया जा रहा है

ऑपरेशन आईडी का फॉर्म है cadExact.<name>. जनरेट किया गया प्रॉमिस SDK (@cadcamfun/api/sdk) उनमें से अधिकांश को इस रूप में उजागर करता है client.<namespace>.<method>(input), कहाँ input पथ पैरामीटर और बॉडी फ़ील्ड की एक सपाट वस्तु है; प्रत्येक कार्ड का एसडीके उदाहरण सटीक एक्सेसर और इनपुट प्रकार दिखाता है। मल्टीपार्ट अपलोड, बाइनरी या जावास्क्रिप्ट प्रतिक्रियाएँ और कच्चे वेबहुक उत्पन्न नहीं होते हैं; वे कार्ड दिखाते हैं fetch इसके बजाय.

प्रॉमिस एसडीके से त्रुटियाँ
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
  }
}

समस्या निवारण

लक्षणसंभावित कारणहल करना
हर कॉल पर 401पिछले लॉन्च से टोकन, या गायब Bearer उपसर्गभेजना Authorization: Bearer <token> टोकन के साथ साइडकार की शुरुआत की गई।
कुछ होने से पहले 400बॉडी या पैरामीटर स्कीमा से मेल नहीं खाताकार्ड पर अनुरोध स्कीमा के साथ पेलोड की तुलना करें।
कहीं और दिखने वाले रिकॉर्ड पर 403 या 404एक्टिंग अकाउंट अलग हैसही भेजो x-session-token, या उस स्थानीय प्रोफ़ाइल का उपयोग करें जो रिकॉर्ड का स्वामी है।
409विरोधाभासी स्थिति, जैसे डुप्लिकेट नाम या पुराना शाखा प्रमुखसंसाधन को दोबारा पढ़ें और वर्तमान डेटा के साथ पुनः प्रयास करें।
कोशिश करें यह कहता है "सीओआरएस द्वारा अवरुद्ध"दस्तावेज़ गैर-लूपबैक मूल से परोसे जाते हैंदस्तावेज़ों को स्थानीय रूप से चलाएँ या अनुरोध को कर्ल के रूप में कॉपी करें।
कनेक्शन नहीं हो सकासाइडकार एक नए बंदरगाह पर फिर से शुरू हुईनए से पोर्ट पढ़ें ready पंक्ति.