Bitbybit Docs
    Preparing search index...

    Class OCCTAssemblyManager

    অ্যাসেম্বলি ডকুমেন্ট তৈরি ও বদলানো: পার্ট, অ্যাসেম্বলি নোড ও ইনস্ট্যান্স নোড এক এক অবজেক্ট করে বর্ণনা করুন, সেগুলিকে একটি কাঠামোয় মেলান, এবং তা থেকে একটি ডকুমেন্ট তৈরি করুন; অথবা একটি STEP ফাইল একটি ডকুমেন্টে লোড করুন। তারপর লেবেলের রং ও নাম বদলান, পার্ট আপডেট বা সরান, এবং STEP বা glTF এ এক্সপোর্ট করুন। একটি ডকুমেন্ট হল একটি ইন-মেমোরি হ্যান্ডল যা মোছা না হওয়া পর্যন্ত জীবিত থাকে, তাই একবার তৈরি করুন এবং যতবার দরকার কোয়েরি বা এক্সপোর্ট করুন।

    Index

    Constructors

    Methods

    • অন্য একটি ডকুমেন্ট থেকে নেওয়া একটি পার্ট বর্ণনা করে, সাধারণত STEP থেকে লোড করা একটি, যাতে সাব-অ্যাসেম্বলি, নাম ও রংসহ তার পুরো লেবেল ট্রি নতুন অ্যাসেম্বলিতে কপি হয়।

      sourceDocumentIndex buildAssemblyDocument কে দেওয়া sourceDocuments তালিকায় নির্দেশ করে, এবং sourceLabel পুরো ডকুমেন্টের বদলে একটি সাব-ট্রি বাছে। ইনস্ট্যান্স নোডগুলি যেকোনো পার্টের মতো partId দিয়ে এটি বসায়।

      Parameters

      • inputs: CreateImportedPartDto

        পার্টের আইডি, উৎস ডকুমেন্টের ইনডেক্স, একটি ঐচ্ছিক উৎস লেবেল, নাম ও রং

      Returns Promise<AssemblyLoadedPartDef>

      ইমপোর্ট করা পার্টের সংজ্ঞা, combineStructure এর জন্য প্রস্তুত

      const chairDoc = await bitbybit.occt.assembly.manager.loadStepToDoc({ stepData });
      const chair = await bitbybit.occt.assembly.manager.createImportedPart({ id: "chair", sourceDocumentIndex: 0, name: "Chair" });
      const c1 = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "c1", partId: "chair", name: "Chair 1", translation: [0, 0, 0] });
      const c2 = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "c2", partId: "chair", name: "Chair 2", translation: [500, 0, 0] });
      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [], nodes: [c1, c2], loadedParts: [chair], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure, sourceDocuments: [chairDoc] });

    assembly

    • একটি অ্যাসেম্বলি কাঠামোর জন্য একটি পার্ট বর্ণনা করে: এটিকে রেফারেন্স করার একটি id, তার আকৃতি, একটি নাম এবং একটি ঐচ্ছিক রং।

      এখনো কিছু তৈরি হয় না; পার্টটি শুধু তখনই বাস্তব হয় যখন এটি ধারণকারী একটি কাঠামো buildAssemblyDocument এর মধ্য দিয়ে যায়। ইনস্ট্যান্স নোডগুলি পার্টটিকে তার id দিয়ে বসায়, যতবার দরকার।

      Parameters

      Returns Promise<AssemblyPartDef<TopoDSShapePointer>>

      পার্টের সংজ্ঞা, combineStructure এর জন্য প্রস্তুত

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
      const part = await bitbybit.occt.assembly.manager.createPart({ id: "box", shape: box, name: "Box", colorRgba: { r: 1, g: 0, b: 0, a: 1 } });
    • একটি অ্যাসেম্বলি নোড বর্ণনা করে, হায়ারার্কিতে ইনস্ট্যান্স ও অন্য অ্যাসেম্বলিগুলিকে দলবদ্ধ করা একটি কন্টেইনার।

      parentId এটি যে অ্যাসেম্বলিতে বসে তার নাম দেয়; একটি রুটের জন্য এটি বাদ দিন। একটি ঐচ্ছিক ম্যাট্রিক্স পুরো দলটিকে বসায়।

      Parameters

      • inputs: CreateAssemblyNodeDto

        নোডের আইডি, তার নাম, একটি ঐচ্ছিক প্যারেন্ট আইডি, একটি ঐচ্ছিক রং ও একটি ঐচ্ছিক স্থাপন ম্যাট্রিক্স

      Returns Promise<AssemblyNodeDef>

      নোডের সংজ্ঞা, combineStructure এর জন্য প্রস্তুত

      const root = await bitbybit.occt.assembly.manager.createAssemblyNode({ id: "root", name: "Root Assembly" });
      const sub = await bitbybit.occt.assembly.manager.createAssemblyNode({ id: "sub", name: "Sub Assembly", parentId: "root" });
    • একটি ইনস্ট্যান্স নোড বর্ণনা করে, একটি পার্টের একটি স্থাপন: partId দিয়ে কোন পার্ট, এটি কোথায় যায় এবং কোন অ্যাসেম্বলির অধীনে।

      translation এটিকে সরায়, rotation X, Y ও Z এর চারপাশে ডিগ্রিতে Euler কোণ দিয়ে এটিকে ঘোরায়, scale এটিকে সমানভাবে আকার দেয়; একটি matrix তিনটিকেই প্রতিস্থাপন করতে পারে। একই পার্ট অনেক ইনস্ট্যান্স দিয়ে বসানো যেতে পারে।

      Parameters

      • inputs: CreateInstanceNodeDto

        নোডের আইডি, পার্টের আইডি, নাম, একটি ঐচ্ছিক প্যারেন্ট আইডি ও স্থাপন

      Returns Promise<AssemblyNodeDef>

      নোডের সংজ্ঞা, combineStructure এর জন্য প্রস্তুত

      const first = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "box1", partId: "box", name: "Box 1" });
      const second = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "box2", partId: "box", name: "Box 2", translation: [20, 0, 0], rotation: [0, 0, 45] });
    • একটি ডকুমেন্টে ইতিমধ্যে থাকা একটি পার্টের একটি পরিবর্তন বর্ণনা করে: একটি নতুন আকৃতি, একটি নতুন নাম বা একটি নতুন রং, বা সেগুলির যেকোনো মিশ্রণ, পার্টের লেবেল দিয়ে সম্বোধিত।

      আপডেটগুলি combineStructurepartUpdates এর অধীনে সংগ্রহ করুন এবং কাঠামোটিকে বিদ্যমান ডকুমেন্টসহ buildAssemblyDocument এ দিন।

      Parameters

      Returns Promise<AssemblyPartUpdateDef<TopoDSShapePointer>>

      আপডেটের সংজ্ঞা, combineStructure এর জন্য প্রস্তুত

      const parts = await bitbybit.occt.assembly.query.getDocumentParts({ document: doc });
      const bigger = await bitbybit.occt.shapes.solid.createBox({ width: 20, length: 20, height: 20, center: [0, 0, 0] });
      const update = await bitbybit.occt.assembly.manager.createPartUpdate({ label: parts[0].label, shape: bigger, name: "Bigger Box" });
      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [], nodes: [], partUpdates: [update], clearDocument: false });
      await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure, existingDocument: doc });
    • পার্ট, নোড এবং, আপডেটের জন্য, অপসারণ, পার্ট আপডেট ও আমদানি করা পার্টগুলিকে একটি কাঠামো সংজ্ঞায় জড়ো করে, buildAssemblyDocument এর আগের শেষ ধাপ।

      clearDocument false হলে কাঠামোটি প্রয়োগ করার সময় একটি বিদ্যমান ডকুমেন্ট ইতিমধ্যে যা ধারণ করে তা রাখে।

      Parameters

      • inputs: CombineAssemblyStructureDto<TopoDSShapePointer>

        পার্টগুলি, নোডগুলি এবং ঐচ্ছিক অপসারণ, পার্ট আপডেট, ইমপোর্ট করা পার্ট ও ক্লিয়ার ফ্ল্যাগ

      Returns Promise<AssemblyStructureDef<TopoDSShapePointer>>

      কাঠামোটি, তৈরির জন্য প্রস্তুত

      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [part], nodes: [root, first, second], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
    • একটি কাঠামো থেকে একটি অ্যাসেম্বলি ডকুমেন্ট তৈরি করে, অথবা কাঠামোটিকে একটি বিদ্যমান ডকুমেন্টে প্রয়োগ করে।

      existingDocument সহ প্রথমে removals এর লেবেলগুলি বাদ দেওয়া হয়, partUpdates প্রয়োগ হয়, তারপর নতুন পার্ট ও নোড যোগ হয়; দুটির কোনোটি ছাড়া একটি কাঠামো ডকুমেন্টটি খালি করে যদি না clearDocument false হয়। sourceDocuments আমদানি করা পার্টগুলি যে ডকুমেন্ট থেকে কপি করে তা সরবরাহ করে। ডকুমেন্টটি মুছে ফেলা পর্যন্ত মেমরিতে থাকে।

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      ডকুমেন্ট হ্যান্ডল, নতুন বা আপডেট করা

      Error if assembly building fails

      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [part], nodes: [root, first], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
    • একটি STEP ফাইলকে একটি নতুন অ্যাসেম্বলি ডকুমেন্টে লোড করে, তার পার্ট, সাব-অ্যাসেম্বলি, নাম, রং ও স্থাপনসহ।

      stepData টেক্সট বা বাইনারি হিসেবে ফাইলটি; gzip-সংকুচিত STEP-Z ও গৃহীত হয়। লোড করা যায় না এমন ফাইল একটি ত্রুটি থ্রো করে। ফাইল যে ইনস্ট্যান্সকে নামহীন রাখে, যেমন SolidWorks করে, তার নাম হয় সে যে পার্টটি স্থাপন করে তার নামে, এবং সেই পার্ট পাশে আবার এলে সংখ্যা যোগ হয়।

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      ডকুমেন্ট হ্যান্ডল

      Error if STEP loading fails

      const doc = await bitbybit.occt.assembly.manager.loadStepToDoc({ stepData: stepText });
      const parts = await bitbybit.occt.assembly.query.getDocumentParts({ document: doc });

    export

    • একটি অ্যাসেম্বলি ডকুমেন্টকে তার হায়ারার্কি, নাম ও রংসহ একটি STEP ফাইল হিসেবে লেখে, এবং ফাইলের বাইটগুলি ফেরত দেয়।

      authororganization ফাইলের হেডারে যায়; compress বদলে gzip-সংকুচিত STEP-Z লেখে। ব্যর্থতা একটি ত্রুটি থ্রো করে।

      Parameters

      • inputs: ExportDocumentToStepDto<TDocStdDocumentPointer>

        ডকুমেন্ট, ফাইলের নাম, হেডারের বিবরণ, কম্প্রেশন ফ্ল্যাগ ও ডাউনলোড অপশন

      Returns Promise<Uint8Array<ArrayBufferLike>>

      বাইট হিসেবে STEP ফাইল

      const step = await bitbybit.occt.assembly.manager.exportDocumentToStep({ document: doc, fileName: "assembly.step", author: "Bitbybit user", organization: "Bitbybit", compress: false, tryDownload: false });
      
    • একটি অ্যাসেম্বলি ডকুমেন্ট ত্রিভুজায়িত করে এবং এটিকে একটি বাইনারি glTF (GLB) হিসেবে লেখে, হায়ারার্কি, নাম ও রং glTF নোড ও ম্যাটেরিয়াল হিসেবে রেখে।

      meshDeflectionmeshAngle বাঁকা সারফেসগুলি কত সূক্ষ্মভাবে ত্রিভুজায়িত হয় তা সেট করে; mergeFaces একটি পার্টের ফেসগুলিকে একটি মেশে জোড়ে। ব্যর্থতা একটি ত্রুটি থ্রো করে।

      Parameters

      • inputs: ExportDocumentToGltfDto<TDocStdDocumentPointer>

        ডকুমেন্ট, মেশিং সেটিংস, এক্সপোর্ট ফ্ল্যাগগুলি, ফাইলের নাম ও ডাউনলোড অপশন

      Returns Promise<Uint8Array<ArrayBufferLike>>

      বাইট হিসেবে GLB ফাইল

      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
      
    • exportDocumentToGltf এর মতো একটি অ্যাসেম্বলি ডকুমেন্টকে একটি বাইনারি glTF (GLB) হিসেবে লেখে এবং জ্যামিতিটি Draco দিয়ে সংকুচিত করে, যা একটি Draco-সক্ষম লোডারের খরচে ফাইলটিকে অনেক ছোট করে।

      Draco সেটিংস সংকোচনের মাত্রা এবং অবস্থান, নর্মাল, টেক্সচার স্থানাঙ্ক ও রং কত বিট রাখে তা সেট করে।

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      বাইট হিসেবে GLB ফাইল

      const options = new Bit.Inputs.OCCT.ExportDocumentToGltfWithDracoDto<Bit.Inputs.OCCT.TDocStdDocumentPointer>();
      options.document = doc;
      options.meshDeflection = 0.1;
      options.dracoCompressionLevel = 7;
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltfWithDraco(options);

    lifecycle

    • একটি অ্যাসেম্বলি ডকুমেন্ট মুছে ফেলে এবং এটি যে মেমরি ধরে রাখে তা মুক্ত করে।

      buildAssemblyDocument দিয়ে তৈরি বা loadStepToDoc দিয়ে লোড করা একটি ডকুমেন্ট এটি কল করা পর্যন্ত মেমরিতে থাকে, তাই তার আকৃতি ও রপ্তানিগুলি পড়া হয়ে গেলে এটি মুছে ফেলুন।

      Parameters

      Returns Promise<void>

      কিছু না; এরপর ডকুমেন্ট হ্যান্ডলটি আর বৈধ থাকে না

      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
      await bitbybit.occt.assembly.manager.deleteDocument({ document: doc });

    modify

    • একটি ডকুমেন্টের একটি লেবেল, একটি পার্ট, ইনস্ট্যান্স বা অ্যাসেম্বলিকে 0 থেকে 1 পর্যন্ত লাল, সবুজ, নীল ও আলফা দিয়ে রং করে।

      ডকুমেন্টটি STEP বা glTF এ রপ্তানি করা হলে রংটি রাখা হয়।

      Parameters

      Returns Promise<boolean>

      রং সেট হলে true

      const done = await bitbybit.occt.assembly.manager.setDocLabelColor({ document: doc, label: "0:1:1:1", r: 1, g: 0, b: 0, a: 1 });
      
    • একটি ডকুমেন্টের একটি লেবেল, একটি পার্ট, ইনস্ট্যান্স বা অ্যাসেম্বলির নাম বদলায়।

      Parameters

      Returns Promise<boolean>

      নাম সেট হলে true

      const done = await bitbybit.occt.assembly.manager.setDocLabelName({ document: doc, label: "0:1:1:1", name: "Left bracket" });