Dasturlash

CadQuery va OpenSCAD: AI tomonidan yaratilgan qismlar uchun qanday ishlaydi

13-sentabr, 2026, 02:301 ko'rish5 daqiqa o'qish
CadQuery va OpenSCAD: AI tomonidan yaratilgan qismlar uchun qanday ishlaydi

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.

Two threaded hose adapters side by side, one built in OpenSCAD and one in CadQuery, nearly identical

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.

Two L-brackets viewed from the inner corner showing gussets, four holes and the inner fillet

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.

Two enclosure boxes side by side with mounting posts and relief slots

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.

Two cross-sections: the left shows thread turns floating with no core cylinder, the right shows a solid body

Eng qiyin vazifa ikkala vosita tomonidan hal qilindi. OpenSCAD chapda, CadQuery o'ngda.

Natijalar jadvali:

Axial cross-sections of both finished adapters showing thread crests staggered by half a pitch
  • 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.

The same bracket rendered three ways: flat default, cluttered triangulation edges, and clean outlines

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

Manba: Hacker News
#CadQuery #OpenSCAD #AI #3D-modellash #qismlar
Telegram da muhokama qilish