<bgdev />free

Вход Регистрация

Първият ми проект с вайб-кодинг. 3D CAD система.
0

0 1 2 3 4 5

#180892 (ツ) johnfound
Последно редактирано на 27.06.2026 от johnfound, видяно: 225 пъти.

От известно време си играя с opencode + Big Pickle. Не за друго, ами ми потрябва CAD система, която да работи като OpenSCAD, но да прави истински solid-модели, а не мешове като OpenSCAD.

Намерих нещо подобно, някакъв човек е започнал да го пише преди 5..6 години и го е зарязал. Та реших да го дооправя малко. То се оказа не малко, а много. Тъй като проекта е на Python и касае 3D моделиране – неща от които нищо не разбирам, реших да пробвам с използване на ИИ. Оказа се забавно приключение. Като резултат, имам почти-почти работеща програма, достатъчно съвместима с OpenSCAD (във всеки случай моите проекти вървят):

/!attached/5983

Можете да я свалите и изпробвате:

За Линукс: bcad-linux.7z

За Уиндоус: bcad-windows.7z

Разопаковате в каква да е директория. Ако не ви харесва – триете директорията.

Стартирате за Линукс: bcad.desktop (или AppRun от конзолата).

За Windows: bcad-windows.exe

В менюто File|Examples има примери измислени от Big Pickle. Прегледах ги – интересни са. (рендира се с F5 или от менюто Render|Reload)

Вюпорта се върти с левият бутон на мишката, мести с десния, зум – с колелцето или средния бутон за по-фино.

Версията за Windows съм я тествал само във WINE – работи. Дали ще работи при вас си нямам на понятие.

Това е най-голямата програма която съм правил в живота си. В смисъл, като обем на файловете. Като функционалност – средна хубост.

Сорс кода е разбира се достъпен в репозитория: https://asm32.info/fossil/bcad/.

Attached files:
FileSizeUploadedDownloadsMD5 hash
bcad.png84780 bytes27.06.20267411e6caa4c02b0e0b3e1e7c925fbeb9ef
#180894 (ツ) BIGBUGEX
Последно редактирано на 27.06.2026 от BIGBUGEX, видяно: 214 пъти.

Брау чуек. Ши го тествам.

#180896 (ツ) |
Създадено на 27.06.2026 , видяно: 198 пъти.

Аз бях вайб-кодирал ОоО симулатор на процесор, с 9 stages, контролер на прекъсванията, TLB, меш която свързва ядрата, и т.н. и Клод се справи сравнително добре. Не поддържаше всички инструкции, но почти успя да буутне Линукс преди да се наложи да го изоставя и да правя нещо по-полезно.

За съжаление не мога да го направя опън сорс.

#180898 (ツ) waldorf
Последно редактирано на 28.06.2026 от waldorf, видяно: 187 пъти.

Аз се забавлявам да правя методология с която от спецификация получаваш завършен софтуер. Т.е. по целия сорс е спецификацията - няколко страници текст на английски. Заменя доста сорс код. Прекрасна компресия.

#180899 (ツ) Дон Реба
Създадено на 28.06.2026 , видяно: 172 пъти.

какво значи "истински solid-модели"?

#180909 (ツ) Delegate
Създадено на 28.06.2026 , видяно: 165 пъти.

общо взето, като разликата между растер и вектор графика

#180910 (ツ) Дон Реба
Създадено на 28.06.2026 , видяно: 164 пъти.

да де, ама какво?

#180911 (ツ) Delegate
Създадено на 28.06.2026 , видяно: 162 пъти.

джонката разглежда и до 2 минути ще внесе яснота

#180913 (ツ) johnfound
Създадено на 28.06.2026 , видяно: 159 пъти.
Дон Реба

какво значи "истински solid-модели"?

Ами означава, че ако имаш цилиндър – той е идеален цилиндър при произволни операции с него. Първата производна няма точки на прекъсване, можеш по произволен участък от кривата да определиш диаметъра и центъра. Ей такива неща. В OpenSCAD не е така – там всички кръгове са многоъгълници – начупена крива с всички последствия, а всички 3д обекти – повърхност от триъгълници. В bcad повърхностите са съставени от гладки криви – части от дъги, сплайнове, а ръбове има само когато искаш да моделираш призма или пирамида.

Това разбира се не го правя аз – използвам OpenCASCADE библиотеките. А OpenSCAD използва CGAL която прави операции само на меш повърхности от триъгълници.

Аз определено не съм силен в тия теми, но например на CNC машини трябва да подаваш именно файлове с истинска геометрия, а не повърхност от триъгълници.

#180914 (ツ) bvbfan
Създадено на 28.06.2026 , видяно: 157 пъти.
Дон Реба

какво значи "истински solid-модели"?

И аз това се чудех, OpenSCAD просто използва матрици за точките, не е 3D. Но сега видях, че FreeCAD е точно това и е общо-взето един от най-добрите в областта.

#180915 (ツ) johnfound
Създадено на 28.06.2026 , видяно: 155 пъти.
bvbfan

И аз това се чудех, OpenSCAD просто използва матрици за точките, не е 3D. Но сега видях, че FreeCAD е точно това и е общо-взето един от най-добрите в областта.

Да – FreeCAD също е базирана на OpenCASCADE. На мене би ми свършила работа, но на мене ми харесва подхода на OpenSCAD – вместо да дърпаш с мишката, пишеш код, а езика е приятен за програмиране.

#180916 (ツ) Дон Реба
Последно редактирано на 28.06.2026 от Дон Реба, видяно: 152 пъти.
johnfound

В OpenSCAD не е така – там всички кръгове са многоъгълници

ти ме разби, нали е процедурен, пишеш код за да генерираш обемите. да не искаш да кажеш че тоя код ресува отсечки а не цилиндри и конуси? ако е така, това е много странно и е първата кад система която чувам да работи така. обикновено кад системите ползват идеални примитиви като цилиндри и конуси за тухлички, и от тях чрез булеви операции, заглажданмия и тн правят финалния обект. но все пак крайната цел ти е точно меш, защото конвертиращите към г-код софтуери от това разбират. знам че има и нови които разбират и от нурби, но тебе едва ли ти трябва баш това, а и тоя OpenSCAD май няма нурби. за какво са ти идеалните примитиви? какъв ти е юзкейса всъщност?

#180917 (ツ) johnfound
Последно редактирано на 28.06.2026 от johnfound, видяно: 138 пъти.
Дон Реба

ти ме разби, нали е процедурен, пишеш код за да генерираш обемите. да не искаш да кажеш че тоя код ресува отсечки а не цилиндри и конуси? ако е така, това е много странно и е първата кад система която чувам да работи така. обикновено кад системите ползват идеални примитиви като цилиндри и конуси за тухлички, и от тях чрез булеви операции, заглажданмия и тн правят финалния обект. но все пак крайната цел ти е точно меш, защото конвертиращите към г-код софтуери от това разбират. знам че има и нови които разбират и от нурби, но тебе едва ли ти трябва баш това, а и тоя OpenSCAD май няма нурби. за какво са ти идеалните примитиви? какъв ти е юзкейса всъщност?

Сега, OpenSCAD като език описва идеална CSG геометрия. Но, библиотеките които той използва за обработка на тая идеална геометрия правят действията върху идеалните обекти през меш – тоест ако имаш difference(){ sphere(); cylinder(); } – превръща сферата в меш със зададената точност, цилиндъра също, изчислява разликата и връща меш с резултата. Резолюцията можеш да определиш ти, може да е огромна, но това ще са мешове винаги.

За 3D печата, за който се използва най-много OpenSCAD това е без значение. А за машиностроенето пречи много силно. CNC машините обикновено искат .STEP файл с идеалната геометрия, а не с мешове. От OpenSCAD такова не може да се получи или ако може – с много уговорки и използване на FreeCAD като посредник.

#180918 (ツ) Дон Реба
Последно редактирано на 28.06.2026 от Дон Реба, видяно: 127 пъти.

а, еми значи си е точно като другите кадове, и те така правят. ти обаче как си го представяш за тебе, в какъв вид искаш да получиш "компилираната" геометрия? edit: видях че си го написал - step

#180920 (ツ) Дон Реба
Създадено на 28.06.2026 , видяно: 127 пъти.

ааааа! джонка, абе защо не пусна тая тема по-рано бе, отворих сега софта на бамбу лаба и видяй че импортва степ, а аз се гърчих като катър да правя мешери!

#180921 (ツ) johnfound
Създадено на 28.06.2026 , видяно: 123 пъти.
Дон Реба

а, еми значи си е точно като другите кадове, и те така правят. ти обаче как си го представяш за тебе, в какъв вид искаш да получиш "компилираната" геометрия? edit: видях че си го написал - step

Другите кадове не правят така – freecad например работи с идеална геометрия. И всички машиностроителни cad системи по принцип. Разбира се, има операции които по принцип не могат да се направят с идеални повърхности и тогава ги режат на триъгълници, а геометрията деградира. В bcad например операцията hull() е такава. Нея я направих само за съвместимост с OpenSCAD, но вади warning че геометрията деградира.

#180923 (ツ) Rabin
Създадено на 28.06.2026 , видяно: 113 пъти.

На Скетч-ъп си правя разни шайбички, ама дори смисълът на проекта не ми е ясен. Както и повечето термини.

#180924 (ツ) Дон Реба
Създадено на 28.06.2026 , видяно: 110 пъти.

поразпитах сега геминито за тоя степ формат, тегава работа, отказах се. освен това оказва се че в степ формата ползват същия "хак" който ползвам и аз - нямат булеви операции, а дупките са просто геометрия с обърнати нормали. моя проблем е че слайсъра по тоя начин прави XOR, т.е. нямам право да припокривам дупки. доста вероятно ако същото му го поднеса в степ формат ще получа същия нежелан ефект, но не можех да го шпробвам защото бамбуто нещо не иска да приема степовете дето геминито ги генерира. което допълнително ми затвърди решението за отказ

#180927 (ツ) johnfound
Създадено на 28.06.2026 , видяно: 98 пъти.
Дон Реба

поразпитах сега геминито за тоя степ формат, тегава работа, отказах се. освен това оказва се че в степ формата ползват същия "хак" който ползвам и аз - нямат булеви операции, а дупките са просто геометрия с обърнати нормали. моя проблем е че слайсъра по тоя начин прави XOR, т.е. нямам право да припокривам дупки. доста вероятно ако същото му го поднеса в степ формат ще получа същия нежелан ефект, но не можех да го шпробвам защото бамбуто нещо не иска да приема степовете дето геминито ги генерира. което допълнително ми затвърди решението за отказ

Честно казано, си нямам на понятие как работи step файла. Но самият .step файл, това е просто файлов формат. А как библиотеката OpenCASCADE представя обектите в паметта си и как извършва действията аз не знам точно. Но едно знам точно – булеви операции има 100% и те се извършват именно над идеалната геометрия. Как го правят вътрешно не е ясно, но на изхода получаваш именно идеална геометрия на резултата на булевата операция.

#180928 (ツ) Дон Реба
Създадено на 28.06.2026 , видяно: 93 пъти.

ами спецификацията е затворена, но ето тук има списък с функциите които аутодеск поддържа, не виждам булеви оператори. правят ги с обръщане на нормалите, както го правя и аз, но това не ти гарантира еднакъв резултат на различни крайни машини

0 1 2 3 4 5

Първият ми проект с вайб-кодинг. 3D CAD система.
0

AsmBB v3.0 (check-in: 2fb30f0a060190b0); SQLite v3.53.0 (check-in: 4525003a53a7fc63);
©2016..2024 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE