CadQuery va OpenSCAD ni AI tomonidan yaratilgan qismlarni ishlab chiqarish uchun taqqoslash. ModelRift bu ikki vosita ni AI tomonidan yaratilgan qismlarni ishlab chiqarish uchun taqqosladi. Ikki vosita ham muvaffaqiyatli natijalar berdi, lekin xatolarga duch kelish usullari farq qiladi.
Kirish
ModelRift platformasida har bir model uchun OpenSCAD ishlatiladi. Bu tanlovni takroran tekshirish kerak edi, shuning uchun biz eng ishonchli alternativani — CadQuery, Python kutubxonasini OpenCascade B-rep yadrosiga asoslanganini tanladik.
Savol shunday edi: AI agenti kimni to'g'ri, chop etiladigan va ishlaydigan qismga olib kelishi mumkin? Har bir vosita bilan yozishning qulayligi bu taqqoslashda hisobga olinmadi.
Tadqiqot tuzilishi
Ushbu tadqiqotda oltita AI agenti uchta chop etiladigan qismni modellashtirish vazifasini bajardi. Uchta qism CadQuery va uchta qism OpenSCAD bilan ishlab chiqarildi. Har bir natija alohida tekshirildi.
Barcha oltita ish Claude Opus 5 (1M kontekst) orqali Claude Code orqali bajarildi. Har bir agent alohida ishlagan va bir-biri bilan aloqa qilmagan. Har bir agent uchun bir qismni ishlab chiqarish uchun bir nechta versiyalar ishlatildi.
OpenSCAD tomonida bizning o'zimizning openscad-skill ishlatildi. Bu vosita fayl va versiya nomlash, render-inspect-fix sifat nazorati tsikli, CLI prevyular uchun kamera presetlari, kesimli diagnostika va Customizer sintaksisni qamrab oladi.
CadQuery uchun biz ushbu vosita harakatlarini portladik, faqat OpenSCAD ga o'xshash bo'lmagan narsalarni almashtirdik. CadQuery CLI rendereri yo'q, shuning uchun biz uni uchun kichik offscreen renderer yozdik, plus B-rep validligi o'lchovlarini CSG holat qatorining o'rniga qo'ygan edik. Ikki fayl ham 3D-chop etish qoidalariga, devor qalinligiga, bo'shliqlar va yonboshlar uchun bir xil qoidalarni oldik.
Natijalar
Har uchta vazifada ikkala vosita ham to'g'ri natijalar berdi. Qobiliyat bu taqqoslashda muhim bo'lmadi. Ikki vosita xatolarga duch kelish usullari bilan farq qildi.
Eng qiyin vazifa ikkala vosita tomonidan hal qilindi. OpenSCAD chapda, CadQuery o'ngda.
Natijalar jadvali:
- T1 OpenSCAD: 2 versiya, 103 qator kod, 1 xatolik, 0 xatosiz noto'g'ri geometriya, 461 soniya, 77 ming token, 12 ms geometriya qayta hisoblash, toza final STL.
- T1 CadQuery: 3 versiya, 135 qator kod, 4 xatolik, 0 xatosiz noto'g'ri geometriya, 562 soniya, 89 ming token, 1.56 s geometriya qayta hisoblash, toza final STL.
- T2 OpenSCAD: 8 versiya, 220 qator kod, 0 xatolik, 5 xatosiz noto'g'ri geometriya, 1058 soniya, 138 ming token, 16 ms geometriya qayta hisoblash, toza final STL.
- T2 CadQuery: 5 versiya, 266 qator kod, 0 xatolik, 3 xatosiz noto'g'ri geometriya, 909 soniya, 139 ming token, 1.93 s geometriya qayta hisoblash, toza final STL.
- T3 OpenSCAD: 1 versiya, 150 qator kod, 1 xatolik, 0 xatosiz noto'g'ri geometriya, 542 soniya, 82 ming token, 43 ms geometriya qayta hisoblash, toza final STL.
- T3 CadQuery: 3 versiya, 172 qator kod, 1 xatolik, 1 xatosiz noto'g'ri geometriya, 935 soniya, 119 ming token, 1.95 s geometriya qayta hisoblash, toza final STL.
Uch vazifada umumiy natijalar:
- OpenSCAD: 11 versiya, 473 qator kod, 2 xatolik, 5 xatosiz noto'g'ri geometriya, 2061 soniya, 297 ming token.
- CadQuery: 11 versiya, 573 qator kod, 5 xatolik, 4 xatosiz noto'g'ri geometriya, 2406 soniya, 347 ming token.
"Toza" degani, suvdan o'tmaydigan, bir birikma, nol non-manifold yoki chegaraviy yoylar, z=0 da turadi, fayldan o'lchangan.
Qismlar
Har ikki vosita uchun bir xil matn berildi, vosita uchun maxsus maslahatlar yo'q edi.
Eng oddiy vazifa, T1, devorga osiladigan polka L-bracket edi: ikki plita 90 darajada, 4 qalin, ikki uchburchak gusset, ikki flat-head burchakli teshiklar 90 darajada va 9 bosh diametrida, ikki oddiy teshik, tashqi vertikal burchaklarda R3, ichki burchakda R4 fillet, qo'llab-quvvatlashsiz chop etilishi mumkin edi.
module corner_mask() {
translate([0, 0, -eps]) linear_extrude(vert_h + 2*eps)
offset(r = corner_r) offset(delta = -corner_r) square([plate_w, horiz_d]);
}
T2 vazifasi 50 x 26 PCB uchun ikki qismli snap-fit korpusni oshirdi. Devorlar 2, bo'shliq bo'shligi har bir tomonda 0.4, toʻrtta M2 ustuni, 9.5 x 3.5 USB-C kesish, alohida qopqoq bilan periferik lab 0.2 bo'shliq va ishlaydigan snaplar, beshta vent teshiklari. Ikki qism bir-biriga mos kelishi kerak edi.
T3 vazifasi eng qiyin edi: M24x2 o'ramli shlang-barb moslamasi, geksagonal flansh 30 qirralari bo'yicha, haqiqiy spiral o'ram 12 uzun, 25 uzun barb uchta barbni 12 ID shlang uchun olib, 8 o'tkazish kanali. Spetsifikatsiya to'g'ridan-to'g'ri o'ram geometriyasini talab qildi.
result = result.edges("|Z").edges(
BoxSelector((-WIDTH, -EPS, -EPS), (WIDTH, EPS, V_HEIGHT + EPS))
+ BoxSelector((-WIDTH, H_DEPTH - EPS, -EPS), (WIDTH, H_DEPTH + EPS, V_HEIGHT + EPS))
).fillet(R_OUTER)
Xulosalar
Ikki vosita ham muvaffaqiyatli natijalar berdi, lekin xatolarga duch kelish usullari farq qildi. OpenSCAD to'g'ri geometriyani birinchi urinishda yaratdi va ikki versiyada tugadi. CadQuery bir xatolikni hal qilish uchun bir necha marta urinish qildi.
CadQuery va OpenSCAD ni AI tomonidan yaratilgan qismlarni ishlab chiqarish uchun taqqoslash natijalariga ko'ra, ikkala vosita ham muvaffaqiyatli natijalar beradi, lekin xatolarga duch kelish usullari farq qiladi. OpenSCAD to'g'ri geometriyani birinchi urinishda yaratdi va ikki versiyada tugadi. CadQuery bir xatolikni hal qilish uchun bir necha marta urinish qildi.
Asl manba: modelrift.com