একটি I-বিমের সমতল ক্রস-সেকশন তৈরি করে: একটি উল্লম্ব ওয়েব দিয়ে জোড়া দুটি অনুভূমিক ফ্ল্যাঞ্জ।
width ফ্ল্যাঞ্জের প্রস্থ, height মোট উচ্চতা, webThickness ও flangeThickness
দেয়ালের পুরুত্ব; alignment বলে প্রোফাইলের বাক্সের কোন বিন্দু center এ বসে,
rotation এটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। এটি ভূমিতে থাকে, Y বরাবর এক্সট্রুড করার জন্য
প্রস্তুত।
প্রোফাইলের আকার, দুটি পুরুত্ব, অ্যালাইনমেন্ট, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
I-বিম প্রোফাইল ফেস
const profile = await bitbybit.occt.shapes.face.createIBeamProfileFace({
width: 10,
height: 20,
webThickness: 2,
flangeThickness: 3,
alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
rotation: 0,
center: [0, 0, 0],
direction: [0, 1, 0],
});
const beam = await bitbybit.occt.operations.extrude({ shape: profile, direction: [0, 100, 0] });
একটি H-বিমের সমতল ক্রস-সেকশন তৈরি করে: একটি অনুভূমিক ওয়েব দিয়ে জোড়া দুটি উল্লম্ব ফ্ল্যাঞ্জ, পাশ ফেরানো একটি I-বিম।
width মোট প্রস্থ, height ফ্ল্যাঞ্জের উচ্চতা, webThickness ও flangeThickness
দেয়ালের পুরুত্ব; alignment বলে প্রোফাইলের বাক্সের কোন বিন্দু center এ বসে,
rotation এটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। এটি ভূমিতে থাকে।
প্রোফাইলের আকার, দুটি পুরুত্ব, অ্যালাইনমেন্ট, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
H-বিম প্রোফাইল ফেস
একটি T-বিমের সমতল ক্রস-সেকশন তৈরি করে: একটি অনুভূমিক ফ্ল্যাঞ্জ যার মাঝখান থেকে একটি উল্লম্ব ওয়েব ঝুলে থাকে।
width ফ্ল্যাঞ্জের প্রস্থ, height মোট উচ্চতা, webThickness ও flangeThickness
দেয়ালের পুরুত্ব; alignment বলে প্রোফাইলের বাক্সের কোন বিন্দু center এ বসে, এবং
rotation এটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। এটি ভূমিতে সমতল করে শোয়ানো থাকে।
প্রোফাইলের আকার, দুটি পুরুত্ব, অ্যালাইনমেন্ট, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
T-বিম প্রোফাইল ফেস
একটি U-বিম, একটি চ্যানেলের সমতল ক্রস-সেকশন তৈরি করে: একটি ওয়েব যার প্রান্ত থেকে
flangeWidth এর দুটি ফ্ল্যাঞ্জ উঠে দাঁড়ায়।
width ও height মোট আকার, webThickness ও flangeThickness দেয়ালের
পুরুত্ব; alignment বলে প্রোফাইলের বাক্সের কোন বিন্দু center এ বসে, rotation
এটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। এটি ভূমিতে সমতল করে শোয়ানো থাকে।
প্রোফাইলের আকার, পুরুত্বগুলি, ফ্ল্যাঞ্জের প্রস্থ, অ্যালাইনমেন্ট, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
U-বিম প্রোফাইল ফেস
একটি ফেস সম্পর্কে ডায়াগনস্টিক তথ্য সংগ্রহ করে: তার সারফেসের টাইপ, U ও V ডিগ্রি, কন্ট্রোল বিন্দু ও নটের সংখ্যা, U বা V বন্ধ, পর্যায়ক্রমিক বা র্যাশনাল কিনা, UV সীমা, ক্ষেত্রফল, সমতলতা, অভিমুখ এবং ওয়্যার ও এজের সংখ্যা।
একটি খালি বা null ফেস অবৈধ চিহ্নিত একটি রিপোর্ট দেয়।
যে ফেসটি পরিদর্শন করতে হবে
রিপোর্ট
একটি ফেসের U ও V পরিসরের মধ্য দিয়ে সমানভাবে ধাপে ধাপে গিয়ে তার উপর বিন্দুর একটি গ্রিড বসায়।
nrDivisionsU বাই nrDivisionsV বিন্দু ফেসটিকে প্রান্ত থেকে প্রান্ত পর্যন্ত ঢাকে, সারি ধরে ধরে তালিকাভুক্ত: প্রথম U এর
জন্য সব V মান, তারপর পরের U। removal ফ্ল্যাগগুলি প্রথম বা শেষ সারি বাদ দেয়; shift
ফ্ল্যাগগুলি প্রতিটি বিন্দুকে অর্ধেক ধাপ ঠেলে।
ফেস, U ও V তে বিন্দুর সংখ্যা এবং শিফট ও অপসারণের অপশন
বিন্দুগুলি, সারি ধরে
একটি ফেস জুড়ে একটি প্যারামিটার দিক বরাবর সমান ব্যবধানের ওয়্যার আঁকে, একটি রুলড শিটের রেখাগুলির মতো।
nrDivisions ধাপ তার চেয়ে একটি বেশি ওয়্যার দেয়, সীমানা রেখাসহ; removeStart
ও removeEnd সেগুলি বাদ দেয়, shiftHalfStep প্রতিটি ওয়্যারকে অর্ধেক ধাপ সরায়। isU true হলে
প্রতিটি ওয়্যার একটি স্থির U তে বসে এবং V জুড়ে চলে; false ভূমিকা অদলবদল করে।
ফেস, বিভাজনের সংখ্যা, দিক ও অপশন
ওয়্যারগুলি, বেছে নেওয়া দিক বরাবর ক্রমানুসারে
subdivideToPoints এর মতো একটি ফেসের উপর বিন্দুর একটি গ্রিড বসায়, কিন্তু প্রতি n-তম সারি বা কলামে বিন্দু
সরায় ও সরিয়ে দেয়, ইটের মতো ও এলোমেলো প্যাটার্নের জন্য।
প্রতিটি নিয়ম একটি জোড়া: shiftHalfStepNthU বলে প্রতি কততম V সারি U তে অর্ধেক ধাপ সরে,
shiftHalfStepUOffsetN গোনা কোথায় শুরু হয়; removal নিয়মগুলি একটি প্রান্ত সারির প্রতি n-তম
বিন্দু বাদ দেয়।
ফেস, U ও V তে বিন্দুর সংখ্যা এবং n-তম সারির শিফট ও অপসারণের নিয়ম
বিন্দুগুলি, সারি ধরে
const staggered = await bitbybit.occt.shapes.face.subdivideToPointsControlled({
shape: face,
nrDivisionsU: 10,
nrDivisionsV: 10,
shiftHalfStepNthU: 2,
shiftHalfStepUOffsetN: 0,
removeStartEdgeNthU: 0,
removeStartEdgeUOffsetN: 0,
removeEndEdgeNthU: 0,
removeEndEdgeUOffsetN: 0,
shiftHalfStepNthV: 0,
shiftHalfStepVOffsetN: 0,
removeStartEdgeNthV: 0,
removeStartEdgeVOffsetN: 0,
removeEndEdgeNthV: 0,
removeEndEdgeVOffsetN: 0,
});
subdivideToPoints একটি ফেসের উপর যে গ্রিড বসাত তার প্রতিটি বিন্দুতে সারফেস নর্মাল গণনা করে,
একই অপশন ও একই ক্রমসহ।
নর্মালগুলি একক ভেক্টর এবং ফেসের অভিমুখ অনুসরণ করে, তাই উল্টানো ফেস সেগুলিকে
উল্টানো দেয়। সারফেসে দাঁড়িয়ে থাকা জিনিস বসাতে তালিকাটি subdivideToPoints এর সাথে জোড়া দিন।
ফেস, U ও V তে বিন্দুর সংখ্যা এবং শিফট ও অপসারণের অপশন
একক নর্মালগুলি, সারি ধরে
subdivideToPoints একটি ফেসের উপর যে গ্রিড বসাত তার UV প্যারামিটার জোড়াগুলি তালিকাভুক্ত করে,
একই অপশন ও একই ক্রমসহ।
জোড়াগুলি ফেসের আসল UV মানে, ভগ্নাংশ নয়।
ফেস, U ও V তে বিন্দুর সংখ্যা এবং শিফট ও অপসারণের অপশন
UV জোড়াগুলি, সারি ধরে
দেওয়া UV ভগ্নাংশে একটি ফেসের উপর বিন্দুটি খুঁজে বের করে।
paramU ও paramV ফেসের U ও V পরিসরের উপর 0 থেকে 1 পর্যন্ত চলে, তাই 0.5, 0.5 পরিসরের
মাঝখান, যা একটি ছাঁটা ফেসে সবসময় ফেসের ভিতরে নয়।
ফেস এবং U ও V ভগ্নাংশ
সারফেসের উপরের বিন্দু
দেওয়া UV ভগ্নাংশে একটি ফেসের সারফেস নর্মাল খুঁজে বের করে।
paramU ও paramV ফেসের U ও V পরিসরের উপর 0 থেকে 1 পর্যন্ত চলে। নর্মালটি একটি একক
ভেক্টর এবং ফেসের অভিমুখ অনুসরণ করে, তাই উল্টানো ফেস এটিকে উল্টানো দেয়।
ফেস এবং U ও V ভগ্নাংশ
একক নর্মাল
একসাথে কয়েকটি UV ভগ্নাংশ জোড়ায় একটি ফেসের উপর বিন্দুগুলি খুঁজে বের করে।
প্রতিটি জোড়ায় U তারপর V থাকে, দুটিই ফেসের পরিসরের উপর 0 থেকে 1 পর্যন্ত।
ফেস এবং U ও V ভগ্নাংশ জোড়ার তালিকা
প্রতি জোড়ায় একটি বিন্দু, একই ক্রমে
একসাথে কয়েকটি UV ভগ্নাংশ জোড়ায় একটি ফেসের সারফেস নর্মালগুলি খুঁজে বের করে।
প্রতিটি জোড়ায় U তারপর V থাকে, দুটিই ফেসের পরিসরের উপর 0 থেকে 1 পর্যন্ত। নর্মালগুলি অন্তর্নিহিত
সারফেসের একক ভেক্টর; normalOnUV এর মতো নয়, উল্টানো ফেসের জন্য সেগুলি
উল্টানো হয় না।
ফেস এবং U ও V ভগ্নাংশ জোড়ার তালিকা
প্রতি জোড়ায় একটি একক নর্মাল, একই ক্রমে
একটি ফেসের UV পরিসর জুড়ে একটি সোজা রেখা বরাবর সমান ব্যবধানের বিন্দু বসায়।
isU true হলে রেখাটি param এ বসে (U পরিসরের 0 থেকে 1 পর্যন্ত একটি ভগ্নাংশ) এবং
nrPoints বিন্দু পুরো V পরিসরে ছড়ায়; false হলে ভূমিকা অদলবদল হয়।
removeStartPoint ও removeEndPoint প্রান্তগুলি বাদ দেয়, এবং shiftHalfStep প্রতিটি বিন্দুকে
অর্ধেক ধাপ সরায়।
ফেস, দিক, তার বরাবর ভগ্নাংশ, বিন্দুর সংখ্যা ও অপশন
রেখা বরাবর বিন্দুগুলি, ক্রমানুসারে
একটি প্যারামিটার রেখা বরাবর একটি ফেস জুড়ে একটি ওয়্যার আঁকে, সারফেস অনুসরণ করে।
isU true হলে ওয়্যারটি param এ বসে (U পরিসরের 0 থেকে 1 পর্যন্ত একটি ভগ্নাংশ) এবং
পুরো V পরিসরে চলে; false হলে ভূমিকা অদলবদল হয়।
ফেস, দিক ও তার বরাবর ভগ্নাংশ
সারফেসের উপরের ওয়্যার
একটি ফেস জুড়ে কয়েকটি ওয়্যার আঁকে, প্রতিটি প্যারামিটার মানের জন্য একটি, সারফেস অনুসরণ করে।
isU true হলে প্রতিটি ওয়্যার U পরিসরের তার ভগ্নাংশে বসে এবং পুরো V পরিসরে
চলে; false হলে ভূমিকা অদলবদল হয়।
ফেস, দিক ও তার বরাবর ভগ্নাংশগুলি
প্রতি ভগ্নাংশে একটি ওয়্যার, একই ক্রমে
বিন্দুগুলিকে একটি ফেসের ভিতরে, তার সীমানার উপরে বা তার বাইরে হিসেবে বাছাই করে, এবং বেছে নেওয়া দলগুলি রাখে।
keepIn, keepOn, keepOut ও keepUnknown দলগুলি বেছে নেয়; tolerance ঠিক করে সীমানার
কতটা কাছে থাকলে তার উপরে বলে গণ্য হয়। useBndBox সহ, gapTolerance দিয়ে বড় করা বাউন্ডিং বক্সের
বাইরের একটি বিন্দু বাইরে।
ফেস, বিন্দুগুলি, টলারেন্স, বাউন্ডিং-বক্স শর্টকাট এবং কোন দলগুলি রাখতে হবে
যে বিন্দুগুলি উত্তীর্ণ হয়েছে, তাদের মূল ক্রমে
একই বিন্দু ও অপশন দিয়ে কয়েকটি ফেসের বিরুদ্ধে filterFacePoints চালায়।
ডিফল্টে ফলাফলে প্রতিটি ফেসের জন্য একটি তালিকা থাকে; flatPointsArray true হলে তালিকাগুলি
একটিতে জোড়া হয়, তাই দুটি ফেসের উপরের একটি বিন্দু দুবার দেখা যায়।
ফেসগুলি, বিন্দুগুলি, টলারেন্স, কোন গোষ্ঠীগুলি রাখতে হবে এবং ফলাফল সমতল করা হবে কিনা
প্রতি ফেসে বিন্দুর একটি তালিকা, অথবা একটি একক জোড়া দেওয়া তালিকা
প্রতিটি ওয়্যারের জন্য একটি ফেস তৈরি করে, প্রতিটি একটি নির্দেশক ফেসের সারফেস থেকে কাটা যাতে এটি সেই সারফেসের বক্রতা নেয়।
ওয়্যারগুলি সারফেসের উপর থাকতে হবে। inside true হলে প্রতিটি ওয়্যার এমনভাবে ঘোরানো হয় যাতে তার ফেস
এটি যে অঞ্চল ঘিরে রাখে তা হয়; false হলে ওয়্যারের নিজস্ব দিক ঠিক করে, এবং উল্টো দিকে চলা
ওয়্যার বাইরের অঞ্চল দেয়।
ওয়্যারগুলি, গাইড ফেস এবং কোন দিকটি রাখতে হবে
প্রতি ওয়্যারে একটি ফেস, একই ক্রমে
একটি নির্দেশক ফেসের সারফেসে থাকা একটি ওয়্যার থেকে একটি ফেস তৈরি করে, যাতে নতুন ফেসটি সেই সারফেসের বক্রতা নেয়।
inside true হলে ওয়্যারটি এমনভাবে ঘোরানো হয় যাতে ফেসটি এটি যে অঞ্চল ঘিরে রাখে তা হয়; false হলে
ওয়্যারের নিজস্ব দিক ঠিক করে, এবং উল্টো দিকে চলা ওয়্যার তার বাইরের অঞ্চল দেয়।
ওয়্যার, গাইড ফেস এবং কোন দিকটি রাখতে হবে
নতুন ফেস
একটি বন্ধ ওয়্যার দিয়ে সীমাবদ্ধ একটি ফেস তৈরি করে।
planar true হলে ওয়্যারটি এক প্লেনে থাকতে হবে এবং ফেসটি সমতল; false হলে ওয়্যারের এজগুলির
মধ্য দিয়ে একটি মসৃণ সারফেস ফিট করা হয়, যা সমতল নয় এমন ওয়্যার ভরাট করে। ওয়্যার নয়
এমন আকৃতি একটি ত্রুটি থ্রো করে।
ওয়্যার এবং ফেসটি সমতল হতে হবে কিনা
নতুন ফেস
কয়েকটি ওয়্যার থেকে একটি ফেস তৈরি করে: প্রথম ওয়্যার বাইরের সীমানা এবং পরের প্রতিটি ওয়্যার তাতে একটি ছিদ্র কাটে।
planar true হলে ওয়্যারগুলি এক প্লেনে থাকতে হবে। ছিদ্র ওয়্যারগুলি বাইরেরটির ভিতরে
বসতে হবে, এটিকে বা পরস্পরকে ছেদ না করে।
ওয়্যারগুলি, বাইরের সীমানা প্রথমে, এবং ফেসটি সমতল হতে হবে কিনা
ছিদ্রসহ ফেস
const outer = await bitbybit.occt.shapes.wire.createRectangleWire({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
const hole = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 2, center: [0, 0, 0], direction: [0, 1, 0] });
const plate = await bitbybit.occt.shapes.face.createFaceFromWires({ shapes: [outer, hole], planar: true });
একটি নির্দেশক ফেসের সারফেসে কয়েকটি ওয়্যার থেকে একটি ফেস তৈরি করে: প্রথম ওয়্যার বাইরের সীমানা এবং পরের প্রতিটি ওয়্যার একটি ছিদ্র কাটে।
ফেসটি নির্দেশক সারফেসের বক্রতা নেয়। inside প্রথম ওয়্যারে প্রযোজ্য: true
এটিকে এমনভাবে ঘোরায় যাতে ফেসটি এটি যে অঞ্চল ঘিরে রাখে তা হয়; false তার নিজস্ব দিককে ঠিক করতে দেয়।
ওয়্যারগুলি, বাইরের সীমানা প্রথমে, গাইড ফেস এবং কোন দিকটি রাখতে হবে
ছিদ্রসহ ফেস
প্রতিটি বন্ধ ওয়্যারের জন্য একটি ফেস তৈরি করে, প্রতিটি যেভাবে createFaceFromWire করত।
planar true হলে প্রতিটি ওয়্যার একটি প্লেনে থাকতে হবে; false হলে প্রতিটির মধ্য দিয়ে একটি মসৃণ সারফেস
ফিট করা হয়।
ওয়্যারগুলি এবং ফেসগুলি সমতল হতে হবে কিনা
প্রতি ওয়্যারে একটি ফেস, একই ক্রমে
বৃত্তগুলিকে স্পর্শক বেল্ট দিয়ে জোড়ে: প্রতিটি জোড়ার জন্য এটি দুটি বাইরের স্পর্শক রেখা ও তাদের মধ্যের বাইরের চাপগুলি আঁকে এবং সেই রূপরেখাটি একটি সমতল ফেস দিয়ে ভরাট করে।
combination জোড়াগুলি বাছে: allWithAll প্রতিটি বৃত্ত অন্য প্রতিটির সাথে, inOrder
তালিকার প্রতিবেশীরা, inOrderClosed শেষটিকে প্রথমটির সাথেও। unify ফেসগুলি ফিউজ করে;
নাহলে সেগুলি একটি কম্পাউন্ড গঠন করে।
বৃত্ত ওয়্যারগুলি, কীভাবে তাদের জোড়া করতে হবে, ফলাফল একীভূত করা হবে কিনা এবং টলারেন্স
একীভূত আকৃতি, অথবা বেল্ট ফেসগুলির কম্পাউন্ড
const a = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 3, center: [0, 0, 0], direction: [0, 1, 0] });
const b = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 1, center: [10, 0, 0], direction: [0, 1, 0] });
const c = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 2, center: [5, 0, 8], direction: [0, 1, 0] });
const belt = await bitbybit.occt.shapes.face.createFaceFromMultipleCircleTanWires({
circles: [a, b, c],
combination: Bit.Inputs.OCCT.combinationCirclesForFaceEnum.inOrderClosed,
unify: true,
tolerance: 1e-7,
});
পরপর তালিকার বৃত্তগুলিকে স্পর্শক বেল্ট দিয়ে জোড়ে, যেভাবে
createFaceFromMultipleCircleTanWires একক বৃত্ত জোড়ে।
allWithAll একটি তালিকার প্রতিটি বৃত্তকে পরেরটির প্রতিটি বৃত্তের সাথে জোড়ে; inOrder প্রতিবেশী
তালিকায় একই অবস্থানের বৃত্তগুলি জোড়ে, যার জন্য সমান দৈর্ঘ্য দরকার; inOrderClosed
প্রতিটি তালিকাকে একটি বলয়েও বন্ধ করে। unify ফেসগুলি ফিউজ করে; নাহলে সেগুলি একটি কম্পাউন্ড গঠন করে।
বৃত্ত ওয়্যারের তালিকাগুলি, কীভাবে তাদের জোড়া করতে হবে, ফলাফল একীভূত করা হবে কিনা এবং টলারেন্স
একীভূত আকৃতি, অথবা বেল্ট ফেসগুলির কম্পাউন্ড
একটি পুরো সারফেস ঢাকা একটি ফেস তৈরি করে, সারফেসের স্বাভাবিক সীমা পর্যন্ত।
tolerance অবক্ষয়িত এজ শনাক্ত করতে ব্যবহৃত হয়, যেমন একটি গোলকের মেরু। সারফেসগুলি
geom.surfaces থেকে আসে।
সারফেস এবং ডিজেনারেট এজের জন্য টলারেন্স
ফেস
একটি সারফেসকে তার উপর থাকা একটি ওয়্যার দিয়ে কেটে একটি ফেস তৈরি করে।
inside true হলে ওয়্যারটি এমনভাবে ঘোরানো হয় যাতে ফেসটি এটি যে অঞ্চল ঘিরে রাখে তা হয়; false হলে
ওয়্যারের নিজস্ব দিক ঠিক করে, এবং উল্টো দিকে চলা ওয়্যার তার বাইরের অঞ্চল দেয়।
সারফেসগুলি geom.surfaces থেকে আসে।
সারফেস, তার উপরের ওয়্যার এবং কোন দিকটি রাখতে হবে
ফেস
তিনটি বিন্দু থেকে একটি সমতল ত্রিভুজাকার ফেস তৈরি করে।
তিনটি বিন্দু হিসেবে ত্রিভুজ
ফেস
একটি মেশের প্রতিটি ত্রিভুজের জন্য একটি সমতল ত্রিভুজাকার ফেস তৈরি করে।
যে ত্রিভুজ একটি ফেস গঠন করতে পারে না, যেমন পুনরাবৃত্ত বিন্দুযুক্ত একটি, তা কনসোলে একটি সতর্কতাসহ বাদ দেওয়া হয়।
ত্রিভুজের তালিকা হিসেবে মেশ
যে ত্রিভুজগুলি তৈরি করা গেছে তার প্রতিটিতে একটি ফেস
একটি আকৃতি থেকে তার অবস্থান দিয়ে একটি ফেস বাছে, 0 থেকে গুনে, কার্নেল যে ক্রমে আকৃতিটি হাঁটে সেই ক্রমে।
আকৃতিটি একটি ফেস বা ফেস থেকে তৈরি কিছু হতে হবে; শেষ ফেসের পরের সূচক একটি ত্রুটি থ্রো করে।
আকৃতি ও 0-ভিত্তিক ইনডেক্স
সেই ইনডেক্সের ফেস
কার্নেল যে ক্রমে হাঁটে সেই ক্রমে একটি আকৃতির প্রতিটি ফেস তালিকাভুক্ত করে।
আকৃতি
আকৃতিতে পাওয়া ফেসগুলি
একটি ফেস উল্টে দেয় যাতে তার নর্মাল অন্য দিকে নির্দেশ করে।
জ্যামিতি একই থাকে; শুধু অভিমুখ বদলায়, যা একটি শেলের বাইরের দিক এবং normalOnUV
যে দিক জানায় তা ঠিক করে।
ফেস
উল্টানো ফেস
একটি ফেসের সবচেয়ে ছোট U প্যারামিটার মান পড়ে, সারফেসের নিজস্ব এককে।
getUMaxBound, getVMinBound ও getVMaxBound এর সাথে মিলে এটি সেই পরিসর দেয় যার উপর
এই ক্লাসের অন্যত্র ব্যবহৃত UV ভগ্নাংশগুলি ম্যাপ হয়।
ফেস
নিম্ন U সীমা
একটি ফেসের সবচেয়ে বড় U প্যারামিটার মান পড়ে, সারফেসের নিজস্ব এককে।
ফেস
উচ্চ U সীমা
একটি ফেসের সবচেয়ে ছোট V প্যারামিটার মান পড়ে, সারফেসের নিজস্ব এককে।
ফেস
নিম্ন V সীমা
একটি ফেসের সবচেয়ে বড় V প্যারামিটার মান পড়ে, সারফেসের নিজস্ব এককে।
ফেস
উচ্চ V সীমা
একটি ফেসের সারফেস ক্ষেত্রফল মাপে, বর্গ মডেল এককে।
ফেস
ক্ষেত্রফল
একটি তালিকার প্রতিটি ফেসের সারফেস ক্ষেত্রফল মাপে, বর্গ মডেল এককে।
ফেসগুলি
প্রতি ফেসে একটি ক্ষেত্রফল, একই ক্রমে
একটি ফেসের ভরকেন্দ্র খুঁজে বের করে, যে বিন্দুতে তার ক্ষেত্রফল ভারসাম্যে থাকে।
একটি বাঁকা বা বলয়-আকৃতির ফেসে এই বিন্দুটি সারফেসের বাইরে থাকতে পারে।
ফেস
ভরকেন্দ্র
একটি তালিকার প্রতিটি ফেসের ভরকেন্দ্র খুঁজে বের করে।
ফেসগুলি
প্রতি ফেসে একটি বিন্দু, একই ক্রমে
একটি ফেসের উপর আয়তাকার ওয়্যার বসায়, তার UV পরিসরের একটি nrRectanglesU বাই nrRectanglesV
বিভাজনের প্রতিটি ঘরের জন্য একটি, সারফেস অনুসরণ করে।
border অফসেটগুলি প্রতি প্রান্তে পরিসর ছাঁটে। প্রতিটি আয়তক্ষেত্র তার ঘরে কেন্দ্রীভূত বসে, স্কেল প্যাটার্ন দিয়ে তার একটি ভগ্নাংশ হিসেবে আকার পায়; ফিলেট প্যাটার্ন কোণা গোল করে, অন্তর্ভুক্তি প্যাটার্ন ঘর বাদ দেয়।
ফেস, সেলের সংখ্যা, বর্ডার অফসেট ও ঐচ্ছিক প্যাটার্ন
আয়তক্ষেত্র ওয়্যারগুলি, সেল ধরে
একটি ফেসে আয়তাকার ছিদ্রের একটি গ্রিড কাটে এবং ছিদ্রযুক্ত ফেসটি ফেরত দেয়।
ছিদ্রগুলি subdivideToRectangleWires এর মতো একই ঘর ও প্যাটার্ন অনুসরণ করে; কোনো স্কেল
প্যাটার্ন না দিলে প্রতিটি ছিদ্র তার ঘরের অর্ধেক ঢাকে। holesToFaces true হলে ফলাফলে
ছিদ্রযুক্ত ফেসের পরে প্রতিটি ছিদ্রের জন্য একটি ফেসও থাকে, যা ঢাকনা বা ফিলারের জন্য সুবিধাজনক।
ফেস, সেলের সংখ্যা, বর্ডার অফসেট, ঐচ্ছিক প্যাটার্ন এবং ছিদ্র ফেসগুলি ফেরত দেওয়া হবে কিনা
ছিদ্রযুক্ত ফেস, চাওয়া হলে তারপর ছিদ্র ফেসগুলি
const [perforated] = await bitbybit.occt.shapes.face.subdivideToRectangleHoles({
shape: face,
nrRectanglesU: 6,
nrRectanglesV: 4,
scalePatternU: [0.6],
scalePatternV: [0.6],
filletPattern: [0.5],
inclusionPattern: [true],
holesToFaces: false,
offsetFromBorderU: 0.05,
offsetFromBorderV: 0.05,
});
একটি ফেসের উপর ষড়ভুজাকার ওয়্যারের একটি মৌচাক বসায়, তার UV পরিসরে ফিট করা nrHexagonsU বাই nrHexagonsV
টি, প্রতিটি সারফেস অনুসরণ করে।
border অফসেটগুলি প্রতি প্রান্তে পরিসরের একটি ভগ্নাংশ ছাঁটে; flatU একটি সমতল বাহু U এর দিকে
ঘোরায়, extend ফ্ল্যাগগুলি বাইরের সারিগুলিকে প্রান্ত ছাড়িয়ে টানে। স্কেল, ফিলেট ও অন্তর্ভুক্তি
প্যাটার্নগুলি প্রতি ষড়ভুজে পুনরাবৃত্ত হয়।
ফেস, ষড়ভুজের সংখ্যা, অভিমুখ, বর্ডার অফসেট, এক্সটেন্ড ফ্ল্যাগ ও ঐচ্ছিক প্যাটার্ন
ষড়ভুজ ওয়্যারগুলি, সারি ধরে
একটি ফেসে ষড়ভুজাকার ছিদ্রের একটি মৌচাক কাটে এবং ছিদ্রযুক্ত ফেসটি ফেরত দেয়।
ছিদ্রগুলি subdivideToHexagonWires এর মতো একই বিন্যাস ও প্যাটার্ন অনুসরণ করে; কোনো স্কেল
প্যাটার্ন না দিলে প্রতিটি ছিদ্র তার ষড়ভুজের অর্ধেক আকারের। holesToFaces true হলে
ফলাফলে ছিদ্রযুক্ত ফেসের পরে প্রতিটি ছিদ্রের জন্য একটি ফেসও থাকে।
ফেস, ষড়ভুজের সংখ্যা, অভিমুখ, বর্ডার অফসেট, ঐচ্ছিক প্যাটার্ন এবং ছিদ্র ফেসগুলি ফেরত দেওয়া হবে কিনা
ছিদ্রযুক্ত ফেস, চাওয়া হলে তারপর ছিদ্র ফেসগুলি
const [perforated] = await bitbybit.occt.shapes.face.subdivideToHexagonHoles({
shape: face,
nrHexagonsU: 8,
nrHexagonsV: 6,
flatU: false,
holesToFaces: false,
scalePatternU: [0.7],
scalePatternV: [0.7],
filletPattern: [0],
inclusionPattern: [true],
offsetFromBorderU: 0.05,
offsetFromBorderV: 0.05,
});
কোণা বিন্দুর একটি তালিকা থেকে একটি সমতল ফেস তৈরি করে, শেষ বিন্দু থেকে প্রথমটিতে ফিরিয়ে রূপরেখাটি বন্ধ করে।
বিন্দুগুলি এক প্লেনে থাকতে হবে।
কোণার বিন্দুগুলি ক্রমানুসারে
ফেস
একটি সমতল বৃত্তাকার ফেস, একটি চাকতি, তৈরি করে।
direction তার প্লেনের নর্মাল: ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
চাকতি ফেস
ভূমি প্লেনে একটি আয়তক্ষেত্রকে সমতল ষড়ভুজাকার ফেসের একটি গ্রিড দিয়ে ভরে দেয়, মূলবিন্দুতে কেন্দ্রীভূত।
ষড়ভুজগুলি এমনভাবে স্কেল করা হয় যাতে width জুড়ে nrHexagonsInWidth এবং height জুড়ে
nrHexagonsInHeight ধরে। স্কেল, ফিলেট ও অন্তর্ভুক্তির প্যাটার্নগুলি ষড়ভুজ ধরে ধরে পড়া হয় এবং
পুনরাবৃত্ত হয়; extend ফ্ল্যাগগুলি বাইরের সারিগুলিকে প্রান্ত ছাড়িয়ে টানে যাতে আয়তক্ষেত্রটি ঢাকা পড়ে।
আয়তক্ষেত্রের আকার, ষড়ভুজের সংখ্যা, এক্সটেন্ড ফ্ল্যাগ ও ঐচ্ছিক প্যাটার্ন
প্রতি ষড়ভুজে একটি ফেস, সারি ধরে
একটি সমতল উপবৃত্তাকার ফেস তৈরি করে।
direction তার প্লেনের নর্মাল: ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
radiusMajor অন্তত radiusMinor হতে হবে।
দুটি ব্যাসার্ধ, কেন্দ্র ও প্লেনের নর্মাল
উপবৃত্ত ফেস
center এ কেন্দ্রীভূত একটি সমতল বর্গ ফেস তৈরি করে।
direction তার প্লেনের নর্মাল: ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
বর্গক্ষেত্র ফেস
center এ কেন্দ্রীভূত একটি সমতল আয়তাকার ফেস তৈরি করে।
ভূমি প্লেনে width X বরাবর এবং length Z বরাবর চলে; direction প্লেনের
নর্মাল, এবং ডিফল্ট [0, 1, 0] ফেসটিকে ভূমিতে সমতল রাখে।
প্রস্থ, দৈর্ঘ্য, কেন্দ্র ও প্লেনের নর্মাল
আয়তক্ষেত্র ফেস
একটি সমতল L-আকৃতির ফেস তৈরি করে: একটি কোণায় জোড়া দুটি আয়তাকার পা।
প্রথম পায়ের widthFirst ও lengthFirst, দ্বিতীয়টির widthSecond ও
lengthSecond; align কোণাটিকে পাগুলির বাইরে, ভিতরে বা মাঝে বসায়, এবং
rotation আকৃতিটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। direction অন্য কিছু না বললে এটি ভূমিতে
সমতল করে শোয়ানো থাকে।
দুটি বাহুর আকার, অ্যালাইনমেন্ট, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
L-আকৃতির ফেস
numRays টি বিন্দুসহ একটি সমতল তারা-আকৃতির ফেস তৈরি করে।
বিন্দুগুলি outerRadius পর্যন্ত এবং তাদের মধ্যের খাঁজগুলি innerRadius পর্যন্ত পৌঁছায়; half শুধু
রশ্মিগুলির প্রথম অর্ধেক রাখে। offsetOuterEdges রশ্মির ডগাগুলিকে প্লেন থেকে তোলে এবং
ওয়্যারের জন্য উদ্দিষ্ট; একটি সমতল ফেসের এটি 0 এ দরকার। direction অন্য কিছু না বললে এটি ভূমিতে
সমতল করে শোয়ানো থাকে।
তারা ফেস
একটি স্টাইলাইজড ক্রিসমাস ট্রির মতো আকৃতির একটি সমতল ফেস তৈরি করে: ডালের nrSkirts স্তর,
কাণ্ডের রেখা থেকে outerDist থেকে innerDist পর্যন্ত সরু হয়ে, trunkHeight ও
trunkWidth এর একটি কাণ্ডের উপর।
এখানকার অন্য সমতল আকৃতিগুলির মতো নয়, এটি XY প্লেনে খাড়া দাঁড়ায়, ডগা Y বরাবর; direction
কাণ্ড-থেকে-ডগা দিক, rotation এটিকে সেই অক্ষের চারপাশে ঘোরায়, ডিগ্রিতে।
গাছের অনুপাত, কাণ্ডের আকার, অপশন, মূলবিন্দু এবং কাণ্ড-থেকে-চূড়া দিক
গাছ ফেস
একটি সমতল সামান্তরিক ফেস তৈরি করে: width ও height এর একটি আয়তক্ষেত্র যার বাহুগুলি angle ডিগ্রি
হেলে থাকে।
aroundCenter true হলে আকৃতিটি center এ কেন্দ্রীভূত হয়; নাহলে এটি সেখানে শুরু হয় এবং
ধনাত্মক দিকগুলিতে বিস্তৃত হয়। direction প্লেনের নর্মাল; ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
প্রস্থ, উচ্চতা, হেলানোর কোণ, এটি কেন্দ্রে রাখা হবে কিনা, কেন্দ্র ও প্লেনের নর্মাল
সামান্তরিক ফেস
একটি সমতল হৃদয়-আকৃতির ফেস তৈরি করে যা মোটামুটি sizeApprox এর একটি বর্গে ধরে।
rotation এটিকে তার প্লেনে ঘোরায়, ডিগ্রিতে। direction প্লেনের নর্মাল;
ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
আনুমানিক আকার, ঘূর্ণন, কেন্দ্র ও প্লেনের নর্মাল
হৃদয় ফেস
nrCorners টি কোণাসহ একটি সমতল সুষম বহুভুজ ফেস তৈরি করে, সবগুলি radius এর একটি বৃত্তে।
direction প্লেনের নর্মাল; ডিফল্ট [0, 1, 0] এটিকে ভূমিতে সমতল করে শোয়ায়।
কোণার সংখ্যা, ব্যাসার্ধ, কেন্দ্র ও প্লেনের নর্মাল
বহুভুজ ফেস
একটি ফেসের সারফেসকে দেওয়া U ও V ডিগ্রির B-spline হিসেবে পুনর্নির্মাণ করে।
একটি ডিগ্রি কমালে সারফেসটি tolerance এর মধ্যে একটি সরলতর আনুমানিক রূপে মসৃণ হয়;
বাড়ালে হুবহু থাকে। keepTrim মূল সীমানা ওয়্যারগুলি রাখে, যা বাড়ানোর সময়
নির্ভরযোগ্য; নাহলে ফেসটি পুরো নতুন সারফেস ঢাকে। ব্যর্থ পুনর্নির্মাণ একটি null
ফেস দেয়।
ফেস, লক্ষ্য U ও V ডিগ্রি, টলারেন্স এবং সীমানা রাখা হবে কিনা
পুনর্নির্মিত ফেস
একটি ফেসের উপর UV প্যারামিটারগুলি কীভাবে চলে তা বদলায়: U ও V অদলবদল, U উল্টানো, V উল্টানো, বা যেকোনো সংমিশ্রণ।
জ্যামিতি একই থাকে; শুধু প্যারামিটারের দিকগুলি বদলায়, যা এখানকার UV তে কাজ করা প্রতিটি
মেথডের জন্য গুরুত্বপূর্ণ, যেমন subdivideToPoints বা wireAlongParam। ফেসটি
সারফেসের স্বাভাবিক সীমার উপর পুনর্নির্মিত হয়।
ফেস এবং কোন ফ্লিপগুলি প্রয়োগ করতে হবে
পরিবর্তিত প্যারামেট্রাইজেশনসহ ফেস
একটি ফেসকে পুনরায় প্যারামিটারাইজ করে যাতে U বা V তে সমান ধাপ সারফেসে মোটামুটি সমান দূরত্ব দেয়।
অনেক সারফেস তাদের প্যারামিটার কিছু জায়গায় জড়ো করে, তাই তাদের উপর একটি UV গ্রিড অসমান দেখায়; এটি
সারফেসটিকে প্রতি দিকে samples বিন্দুতে পুনরায় নমুনা নেয় ও পুনরায় ফিট করে, যা
subdivideToPoints ও তার সহোদরগুলিকে সমান করে। ফেসটি নতুন সীমার উপর পুনর্নির্মিত হয়।
ফেস, কোন দিকগুলি নরমালাইজ করতে হবে, নমুনার সংখ্যা ও ফিট টলারেন্স
পুনঃপ্যারামেট্রাইজ করা ফেস
OpenCascade এ ফেস: একটি সারফেসের সীমাবদ্ধ টুকরো, সমতল বা বাঁকা, একটি বাইরের সীমানা ওয়্যার এবং ছিদ্র তৈরিকারী ঐচ্ছিক ভিতরের ওয়্যারসহ। ওয়্যার বা সারফেস থেকে, অথবা তৈরি সমতল আকৃতি হিসেবে (বৃত্ত, আয়তক্ষেত্র, তারা, বিম প্রোফাইল) যা
directionঅন্য কিছু না বললে গ্রাউন্ড প্লেনে থাকে, এগুলি তৈরি করুন; বিন্দু, নর্মাল ও ওয়্যারের গ্রিড পেতে UV প্যারামিটারের মাধ্যমে তাদের সারফেসে হাঁটুন; তাদের মধ্যে ছিদ্রের প্যাটার্ন কাটুন; এবং ক্ষেত্রফল ও ভরকেন্দ্র মাপুন। U ও V হল একটি সারফেসের দুটি দিক, এখানে ফেসের নিজস্ব পরিসরের 0 থেকে 1 পর্যন্ত ভগ্নাংশ হিসেবে দেওয়া। ফেসগুলি এজ থেকে এজে জুড়ে শেল হয়, যাshapes.shellসামলায়।