প্রতিটি আকৃতিতে একটি করে, পরস্পরের সবচেয়ে কাছের বিন্দুর জোড়াটি খুঁজে বের করে।
তাদের মধ্যের দূরত্ব আকৃতিগুলির মধ্যের ফাঁক; সেগুলি স্পর্শ বা ওভারল্যাপ করলে এটি 0। কোনো জোড়া না পাওয়া গেলে একটি ত্রুটি থ্রো করে।
দুটি আকৃতি
প্রথম আকৃতির উপরের বিন্দু এবং দ্বিতীয়টির উপরের বিন্দু
একটি তালিকার প্রতিটি বিন্দুর জন্য, একটি আকৃতির উপর নিকটতম বিন্দুটি খুঁজে বের করে।
ইতিমধ্যে আকৃতির উপরে থাকা একটি বিন্দু নিজের সাথে ম্যাপ হয়। বিন্দুগুলিকে একটি সারফেসে স্ন্যাপ করতে উপযোগী।
আকৃতি ও বিন্দুগুলি
প্রতি ইনপুট বিন্দুতে আকৃতির উপর একটি বিন্দু, একই ক্রমে
একটি তালিকার প্রতিটি বিন্দুর জন্য কয়েকটি আকৃতির প্রতিটির উপর নিকটতম বিন্দুটি খুঁজে বের করে।
ফলাফল একটি সমতল তালিকা: প্রথম আকৃতির জন্য সব বিন্দু, বিন্দুর ক্রমে, তারপর দ্বিতীয় আকৃতির জন্য সব বিন্দু, এবং এভাবে চলতে থাকে।
আকৃতিগুলি ও বিন্দুগুলি
নিকটতম বিন্দুগুলি, আকৃতি অনুযায়ী গোষ্ঠীবদ্ধ
একটি আকৃতিকে অন্য আকৃতি দিয়ে টুকরোয় কাটে, যেভাবে একটি ছুরি একটি পাউরুটি কাটে, কোনো উপাদান না সরিয়ে।
nonDestructive true হলে, ডিফল্ট, ইনপুটগুলি অস্পৃষ্ট থাকে এবং ফলাফলে জড়িত প্রতিটি আকৃতির
টুকরো থাকে, কাটারগুলিসহ; false হলে শুধু shape এর টুকরোগুলি ফেরত আসে।
localFuzzyTolerance প্রায় স্পর্শ করা জ্যামিতিকে স্পর্শ করা হিসেবে গণ্য হতে দেয়।
যে আকৃতিটি ভাগ করতে হবে, যে আকৃতিগুলি দিয়ে ভাগ করতে হবে এবং অপশনগুলি
টুকরোগুলি
একটি সলিডকে একটি দিক বরাবর সমান্তরাল ফালিতে কাটে, পাউরুটির মতো, আকৃতির তলা থেকে উপরে প্রতি step মডেল
এককে।
প্রতিটি ফালি হলো সমতল সেকশন যেখানে একটি কাটার প্লেন সলিডের সাথে মেলে; সেগুলি একসাথে একটি কম্পাউন্ডে ফেরত আসে। আকৃতিটি সলিড হতে বা ধারণ করতে হবে, নাহলে একটি ত্রুটি থ্রো হয়।
আকৃতি, স্লাইসগুলির মধ্যে দূরত্ব এবং স্লাইস করার দিক
সেকশন ফেসগুলির একটি কম্পাউন্ড
slice এর মতো একটি সলিডকে সমান্তরাল ফালিতে কাটে, কিন্তু সেগুলির মধ্যে ফাঁকের একটি পুনরাবৃত্ত প্যাটার্নসহ,
যেমন 0.1, 0.5, 0.1, 0.5।
প্যাটার্নটি আকৃতির তলা থেকে উপরের দিকে প্রয়োগ হয় এবং উপরে পৌঁছানো পর্যন্ত পুনরাবৃত্ত হয়।
আকৃতি, ফাঁকের প্যাটার্ন এবং স্লাইস করার দিক
সেকশন ফেসগুলির একটি কম্পাউন্ড
একটি আকৃতিকে একটি ভেক্টর বরাবর সরলরেখায় সুইপ করে, যার দৈর্ঘ্য দূরত্ব: একটি ফেস একটি সলিড হয়, একটি ওয়্যার একটি শেল, একটি এজ একটি ফেস।
আকৃতিটি নিজে এক্সট্রুশনের শুরুতে থাকে; ভেক্টরটি মডেল এককে, তাই [0, 10, 0] 10 একক উপরে এক্সট্রুড করে।
আকৃতি ও দিক ভেক্টর, যার দৈর্ঘ্যই দূরত্ব
এক্সট্রুড করা আকৃতি
কয়েকটি আকৃতিকে একই ভেক্টর বরাবর সুইপ করে, যেভাবে extrude একটির জন্য করে।
আকৃতিগুলি ও দিক ভেক্টর, যার দৈর্ঘ্যই দূরত্ব
এক্সট্রুড করা আকৃতিগুলি, একই ক্রমে
একটি সমতল আকৃতিকে Y বরাবর height উপরে এক্সট্রুড করে এবং একই সাথে এটিকে Y অক্ষের চারপাশে angle ডিগ্রি
মোচড়ায়, একটি মোচড়ানো স্তম্ভের মতো।
আকৃতিটি সমতল করে শোয়ানো থাকা উচিত, যেমন এই প্যাকেজের তৈরি প্রোফাইলগুলি থাকে। makeSolid true হলে,
ডিফল্ট, একটি ফেস প্রোফাইল একটি বন্ধ সলিড দেয়; একটি ওয়্যার একটি মোচড়ানো শেল দেয়।
প্রোফাইল আকৃতি, উচ্চতা, ডিগ্রিতে মোচড়ের কোণ এবং সলিড তৈরি করা হবে কিনা
মোচড়ানো এক্সট্রুশন
ওয়্যারের একটি ধারার মধ্য দিয়ে একটি সারফেস তৈরি করে, পাঁজরের উপর টানা চামড়ার মতো: প্রতিটি ওয়্যার একটি সেকশন এবং সারফেসটি তালিকার ক্রমে সেগুলির মধ্য দিয়ে যায়।
এজগুলি এক-এজের ওয়্যার হিসেবে গৃহীত হয়। makeSolid true ও বন্ধ সেকশন হলে ফলাফল
ঢেকে একটি সলিড করা হয়; নাহলে এটি একটি শেল। সমান এজ সংখ্যায় সেকশনগুলি সবচেয়ে ভালো
মেলে।
সেকশন ওয়্যার বা এজগুলি, ক্রমানুসারে, এবং সলিড তৈরি করা হবে কিনা
লফট করা শেল বা সলিড
const bottom = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
const upper = await bitbybit.occt.shapes.wire.createSquareWire({ size: 6, center: [0, 10, 0], direction: [0, 1, 0] });
const vase = await bitbybit.occt.operations.loft({ shapes: [bottom, upper], makeSolid: true });
loft এর মতো ওয়্যারের একটি ধারার মধ্য দিয়ে একটি সারফেস তৈরি করে, চামড়াটি কীভাবে ফিট হয় তার
নিয়ন্ত্রণসহ।
straight মসৃণ মিশ্রণের বদলে সেকশনগুলির মধ্যে রুলড প্যাচ করে; closed সারফেসটিকে শেষ
সেকশন থেকে প্রথমটিতে ফিরিয়ে লুপ করে, এবং periodic সেকশনগুলি পুনরায় নমুনা নিয়ে সেই লুপকে
মসৃণ করে। startVertex ও endVertex প্রান্তগুলিকে বিন্দুতে বন্ধ করে।
সেকশন ওয়্যার বা এজগুলি, সলিড তৈরি করা হবে কিনা, বন্ধ করা ও মসৃণ করার অপশন এবং ঐচ্ছিক শেষ বিন্দুগুলি
লফট করা শেল বা সলিড
const cone = await bitbybit.occt.operations.loftAdvanced({
shapes: [circleBottom, circleMiddle],
makeSolid: true,
closed: false,
periodic: false,
straight: false,
nrPeriodicSections: 10,
useSmoothing: false,
maxUDegree: 3,
tolerance: 1e-7,
parType: Bit.Inputs.OCCT.approxParametrizationTypeEnum.approxCentripetal,
endVertex: [0, 20, 0],
});
একটি তালিকার প্রতিটি বিন্দু একটি আকৃতি থেকে কত দূরে তা মাপে, এর উপর নিকটতম বিন্দুর সোজা দূরত্ব হিসেবে, মডেল এককে।
দূরত্বটি আকৃতির সারফেস পর্যন্ত, তাই একটি সলিডের ভিতরের একটি বিন্দুও তার চামড়া পর্যন্ত দূরত্ব জানায়।
আকৃতি ও বিন্দুগুলি
প্রতি বিন্দুতে একটি দূরত্ব, একই ক্রমে
একটি আকৃতিকে ঘিরে রাখা অক্ষ-সারিবদ্ধ বাক্স গণনা করে: তার সর্বনিম্ন ও সর্বোচ্চ কোণা, তার কেন্দ্র এবং X, Y ও Z বরাবর তার আকার।
বাঁকা আকৃতিতে বাক্সটি আকৃতির চেয়ে একটু বড় হতে পারে, কারণ কার্নেল হুবহু সারফেসের বদলে কন্ট্রোল জ্যামিতি সীমাবদ্ধ করে।
আকৃতি
min, max, center ও size হিসেবে বাক্সটি
একটি আকৃতির অক্ষ-সারিবদ্ধ বাউন্ডিং বক্সের সর্বনিম্ন কোণা পড়ে, সবচেয়ে ছোট X, Y ও Z এর বিন্দু।
আকৃতি
সর্বনিম্ন কোণা
একটি আকৃতির অক্ষ-সারিবদ্ধ বাউন্ডিং বক্সের সর্বোচ্চ কোণা পড়ে, সবচেয়ে বড় X, Y ও Z এর বিন্দু।
আকৃতি
সর্বোচ্চ কোণা
একটি আকৃতির অক্ষ-সারিবদ্ধ বাউন্ডিং বক্সের কেন্দ্র পড়ে, তার দুই কোণার মাঝামাঝি।
এটি ভরকেন্দ্র নয়; shapes.solid.getSolidCenterOfMass ও তার সহোদরগুলি তা
দেয়।
আকৃতি
বাক্সের কেন্দ্র
একটি আকৃতির অক্ষ-সারিবদ্ধ বাউন্ডিং বক্সের X, Y ও Z বরাবর আকার পড়ে, মডেল এককে।
আকৃতি
বাক্সের প্রস্থ, উচ্চতা ও দৈর্ঘ্য
একটি আকৃতির অক্ষ-সারিবদ্ধ বাউন্ডিং বক্সকে একটি বাক্স সলিড হিসেবে তৈরি করে, এটি আঁকতে বা একটি বুলিয়ানে ব্যবহার করতে সুবিধাজনক।
আকৃতি
বাক্স সলিড
একটি আকৃতিকে ঘিরে রাখা একটি গোলক গণনা করে: এটি বাউন্ডিং বক্সে কেন্দ্রীভূত এবং তার কোণা পর্যন্ত পৌঁছায়, তাই এটি সবসময় আকৃতিটি ধারণ করে কিন্তু সম্ভাব্য সবচেয়ে ছোট গোলক নয়।
আকৃতি
center ও radius হিসেবে গোলকটি
একটি আকৃতির বাউন্ডিং গোলকের কেন্দ্র পড়ে, যা তার বাউন্ডিং বক্সের কেন্দ্র।
আকৃতি
গোলকের কেন্দ্র
একটি আকৃতির বাউন্ডিং গোলকের ব্যাসার্ধ পড়ে, বাউন্ডিং বক্সের কেন্দ্র থেকে তার কোণার দূরত্ব, মডেল এককে।
আকৃতি
ব্যাসার্ধ
একটি আকৃতির বাউন্ডিং গোলককে একটি গোলক সলিড হিসেবে তৈরি করে।
আকৃতি
গোলক সলিড
একটি আকৃতির সীমানাকে একটি নির্দিষ্ট দূরত্বে বাইরের দিকে, বা ঋণাত্মক দূরত্বের জন্য ভিতরের দিকে, সরায়: একটি ওয়্যার একটি সমান্তরাল রূপরেখায় বাড়ে, একটি ফেস বা সলিড একটি বড়টিতে।
একটি ওয়্যার বা এজ তার নিজস্ব প্লেনে, বা দেওয়া থাকলে face এ, অফসেট হয়; কোণাগুলি গোল হয়।
0 দূরত্ব আকৃতিটি যেমন আছে তেমন ফেরত দেয়।
আকৃতি, ঐচ্ছিকভাবে যে ফেসের উপর একটি ওয়্যার অফসেট করতে হবে, দূরত্ব ও টলারেন্স
অফসেট করা আকৃতি
offset এর মতো একটি আকৃতি অফসেট করে, কোণাগুলি কীভাবে জোড়া হয় তার বাছাইসহ: arc সেগুলি গোল করে,
intersection বাহুগুলিকে একটি ধারালো কোণা পর্যন্ত বাড়ায়, tangent সেগুলিকে স্পর্শক রাখে।
removeIntEdges একটি সলিডে অফসেট যে অভ্যন্তরীণ এজ রেখে যেতে পারে তা বাদ দেয়।
আকৃতি, ঐচ্ছিকভাবে যে ফেসের উপর একটি ওয়্যার অফসেট করতে হবে, দূরত্ব, টলারেন্স, কোণার জোড়ের ধরন এবং ভিতরের এজগুলি সরানো হবে কিনা
অফসেট করা আকৃতি
একটি ফেস বা শেলকে একটি পুরুত্ব দেয়, এটিকে দেওয়া offset এর একটি সলিড স্ল্যাব বা দেয়ালে
পরিণত করে।
ধনাত্মক অফসেট সারফেস নর্মালের দিকে পুরু করে, ঋণাত্মক অন্য দিকে। একটি লফট বা সুইপ করা চামড়াকে প্রিন্টযোগ্য কিছুতে পরিণত করতে এটি ব্যবহার করুন।
ফেস বা শেল এবং পুরুত্ব
পুরু সলিড
তালিকাভুক্ত ফেসগুলি সরিয়ে ও বাকিগুলি অফসেট করে একটি সলিডকে দেওয়া দেয়ালের পুরুত্বের একটি শেলে ফাঁপা করে।
উদাহরণস্বরূপ, একটি বাক্সের উপরের ফেস সরালে একটি খোলা কাপ পাওয়া যায়। offset দেয়ালের
পুরুত্ব, ভিতরের দিকে বাড়াতে ঋণাত্মক; joinType বলে অফসেট দেয়ালগুলি কোণায় কীভাবে মেলে,
অন্য ফ্ল্যাগগুলি কার্নেলের thick-solid বিল্ডারে যায়।
সলিড, যে ফেসগুলি সরাতে হবে, দেয়ালের পুরুত্ব, টলারেন্স ও জোড়ের অপশন
ফাঁপা করা সলিড
const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
const faces = await bitbybit.occt.shapes.face.getFaces({ shape: box });
const cup = await bitbybit.occt.operations.makeThickSolidByJoin({
shape: box,
shapes: [faces[0]],
offset: -1,
tolerance: 1e-3,
intersection: false,
selfIntersection: false,
joinType: Bit.Inputs.OCCT.joinTypeEnum.arc,
removeIntEdges: false,
});
এক প্লেনে না থাকা একটি ওয়্যার অফসেট করে, এটিকে direction বরাবর এক্সট্রুড করে, ফলাফলটি পুরু করে
এবং অফসেট এজটি তা থেকে পড়ে নিয়ে।
এটি মসৃণ ওয়্যারে সবচেয়ে ভালো কাজ করে; ধারালো কোণাগুলি প্রথমে fillets.fillet3DWire দিয়ে ফিলেট করুন।
অফসেট এজগুলি একটি ওয়্যারে জোড়া না গেলে সেগুলি এজের একটি তালিকা হিসেবে ফেরত আসে।
ওয়্যার, অফসেটের দূরত্ব এবং যে দিক বরাবর এক্সট্রুড করতে হবে
অফসেট করা ওয়্যার, অথবা এজগুলি জোড়া দেওয়া না গেলে আলগা এজগুলি
এক বা একাধিক প্রোফাইল আকৃতিকে একটি পাথ ওয়্যার বরাবর সুইপ করে এবং ফলাফলটিকে একটি সলিডে বন্ধ করে।
প্রোফাইলগুলি পাথের উপর বসানো থাকা উচিত; কয়েকটি প্রোফাইল থাকলে সুইপটি পথে একটি থেকে পরেরটিতে মিশে যায়।
পাথ ওয়্যার এবং তার উপর স্থাপিত প্রোফাইল আকৃতিগুলি
সুইপ করা সলিড
একটি ওয়্যার বরাবর একটি সুষম বহুভুজ সুইপ করে, nrCorners টি সমতল বাহুর একটি নল দেয়, যেমন
একটি পাথ বরাবর একটি ষড়ভুজাকার দণ্ড।
radius এর বহুভুজটি ওয়্যারের শুরুতে বসানো হয়, এর লম্বভাবে। makeSolid
শেলের বদলে একটি সলিড দেয়, trihedronEnum প্রোফাইলটি পাথ বরাবর কীভাবে ঘোরে তা বেছে নেয়,
এবং forceApproxC1 ফলাফলটি মসৃণ করে।
পাথ ওয়্যার, বহুভুজের ব্যাসার্ধ ও কোণার সংখ্যা এবং সুইপ অপশন
সুইপ করা সলিড বা শেল
কয়েকটি ওয়্যারের প্রতিটি বরাবর একটি বৃত্ত সুইপ করে, যেভাবে pipeWireCylindrical একটির জন্য করে, সবগুলি
একই ব্যাসার্ধ ও অপশন দিয়ে।
পাথ ওয়্যারগুলি, ব্যাসার্ধ ও সুইপ অপশন
প্রতি ওয়্যারে একটি টিউব, একই ক্রমে
একটি ওয়্যার বরাবর একটি বৃত্ত সুইপ করে, পাথ অনুসরণকারী দেওয়া ব্যাসার্ধের একটি গোল নল দেয়।
বৃত্তটি ওয়্যারের শুরুতে বসানো হয়, এর লম্বভাবে। makeSolid শেলের বদলে একটি সলিড
দেয়, trihedronEnum প্রোফাইলটি পাথ অনুসরণ করার সময় কীভাবে ঘোরে তা বেছে নেয়, এবং
forceApproxC1 ফলাফলটি মসৃণ করে।
পাথ ওয়্যার, ব্যাসার্ধ ও সুইপ অপশন
সলিড বা শেল হিসেবে টিউবটি
একটি আকৃতিকে মূলবিন্দু দিয়ে যাওয়া একটি অক্ষের চারপাশে ঘুরিয়ে একটি সারফেস বা সলিড সুইপ করে: একটি ফেস একটি সলিড দেয়, একটি ওয়্যার একটি শেল।
angle ডিগ্রিতে; 360 বা বেশি একটি পূর্ণ পাক দেয়। অক্ষটি direction বরাবর চলে: Y অক্ষের
পাশের একটি প্রোফাইল তার চারপাশে রিভলভ করলে একটি ফুলদানি দেয়। প্রোফাইলটি এটিকে ছেদ করতে পারবে না।
প্রোফাইল আকৃতি, ডিগ্রিতে কোণ, অক্ষের দিক এবং জ্যামিতি কপি করা হবে কিনা
রিভলভ করা আকৃতি
যে মডেলিং অপারেশনগুলি OpenCascade ওয়্যার ও ফেসকে সারফেস ও সলিডে পরিণত করে এবং আকৃতি মাপে: সেকশনের মধ্য দিয়ে লফট করা, এক্সট্রুড ও রিভলভ করা, পাথ বরাবর প্রোফাইল সুইপ করা, অফসেট করা, শেলকে সলিডে পুরু করা, স্লাইস ও ভাগ করা, সাথে বাউন্ডিং বক্স, বাউন্ডিং গোলক ও নিকটতম-বিন্দু কোয়েরি। দূরত্ব মডেল এককে এবং কোণ ডিগ্রিতে; প্রতিটি অপারেশন একটি নতুন আকৃতি ফেরত দেয়। বুলিয়ান
booleansএ, গোল করাfilletsএ থাকে।