четверг, 7 февраля 2013 г.

О кодере бедном замоливите слово

Почти вступительный пост к рублике об OpenSCAD.
Второй месяц переписываю OpenSCAD код за Johann под параметрический Kossel и наконец накипело. 
Програмист из меня... (на моей исторической родине, любят сравнивать в этом случае задницу и свисток) Но, господи, мой разум отказывается понимать, что руководило Johann когда он его писал. Должен едь быть какойто смысл весь код поворачивать детали входящие в какойто модуль на угол, и после, при вставке, разворачивать весь модуль обратно на тот же угол. 

код получается примерно такой:
module cube() {  //ввели какоето название модуля
rotate ([0,30,60]) //повернули его на углы 30 и 60 градусов по двум осям
   cube ([20,30,40]);} //нарисовали повернутый кубик.

rotate ([0,-30,-60])  insert cube();  // вставили тотже кубик чтобы он не выглядел повернутым   развернули его обратно (

вариант правильный:

module cube() {  //ввели какоето название модуля
   cube ([20,30,40]);} //нарисовали кубик.
insert cube();  // вставили тотже кубик 

Причем "правильный" он только в том случае если этот модуль мы планируем использовать еще где-то.
А есть в жтом коде еще места когда деталь вначале поворачивается а потом вводятся мозгодробительные координаты чтобы она попала в нужную точку. хотя если просто поменять команды поворота и переноса местами - все будет "зашибись".

Несмотря на все код я почти доправил. и скоро будет первая параметрическая версия под под изменяемую экструзию. ) правда пока мне лень в нее вводить автовыбор винтов и гаек нужных под эту жэкструзию.

PS. Громадное спасибо тов.Hophead за его версию Mendel90 по которой можно разбирать написание сложных многофакторных моделей почти как по учебнику.