export type GetApiPartstudiosDDidWvmWvmidEEidGltfArgs = {did: string, linkDocumentId?: string | undefined, wvm: 'w' | 'v' | 'm', wvmid: string, eid: string, configuration?: string | undefined, rollbackBarIndex?: number | undefined, elementMicroversionId?: string | undefined, partId?: Array | undefined, angleTolerance?: number | undefined, chordTolerance?: number | undefined, precomputedLevelOfDetail?: string | undefined, outputSeparateFaceNodes?: boolean | undefined, faceId?: Array | undefined, outputFaceAppearances?: boolean | undefined, maxFacetWidth?: number | undefined}; export type GetApiPartstudiosDDidWvmWvmidEEidGltfOptions = {baseUrl?: string | undefined, OAuth2?: string | undefined, BasicAuth?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; /** * Synchronously export a Part Studio to a glTF file. * * GET /partstudios/d/{did}/{wvm}/{wvmid}/e/{eid}/gltf */ export const getApiPartstudiosDDidWvmWvmidEEidGltf = async (args: GetApiPartstudiosDDidWvmWvmidEEidGltfArgs, options?: GetApiPartstudiosDDidWvmWvmidEEidGltfOptions) => { const {baseUrl = "https://api.onshape.com/api/v17", fetch: fetchFn = fetch, OAuth2, BasicAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "model/gltf+json;charset=UTF-8;qs=0.08") if (args.linkDocumentId != null) query.append("linkDocumentId", String(args.linkDocumentId)) if (args.configuration != null) query.append("configuration", String(args.configuration)) if (args.rollbackBarIndex != null) query.append("rollbackBarIndex", String(args.rollbackBarIndex)) if (args.elementMicroversionId != null) query.append("elementMicroversionId", String(args.elementMicroversionId)) for (const item of args.partId ?? []) query.append("partId", String(item)) if (args.angleTolerance != null) query.append("angleTolerance", String(args.angleTolerance)) if (args.chordTolerance != null) query.append("chordTolerance", String(args.chordTolerance)) if (args.precomputedLevelOfDetail != null) query.append("precomputedLevelOfDetail", String(args.precomputedLevelOfDetail)) if (args.outputSeparateFaceNodes != null) query.append("outputSeparateFaceNodes", String(args.outputSeparateFaceNodes)) for (const item of args.faceId ?? []) query.append("faceId", String(item)) if (args.outputFaceAppearances != null) query.append("outputFaceAppearances", String(args.outputFaceAppearances)) if (args.maxFacetWidth != null) query.append("maxFacetWidth", String(args.maxFacetWidth)) if (OAuth2 !== undefined) headers.set('authorization', `Bearer ${OAuth2}`) if (BasicAuth !== undefined) headers.set('authorization', `Basic ${btoa(`${BasicAuth.username}:${BasicAuth.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/partstudios/d/${encodeURIComponent(String(args.did))}/${encodeURIComponent(String(args.wvm))}/${encodeURIComponent(String(args.wvmid))}/e/${encodeURIComponent(String(args.eid))}/gltf${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };