image

Постоянно видел на Thingiverse модели с исходниками на OpenSCAD. Даже пытался загружать этот код — но, похоже, тормозная жидкость залита в OpenSCAD при разработке в изобилии, при отображении более-менее сложной модели компьютер подвисает на десятки минут. В итоге — не вдохновило.

Обычно я пользуюсь древним Sketchup — еще гугловским, той античной версией, когда гугл врал, что Sketchup — это навсегда, и его бесплатная версия в усеченном варианте будет всегда доступна даже для коммерческого использования. Я, будучи по натуре легковерным, даже с Ruby слегка разобрался, автоматически прорисовывал профиля крыльев игрушечных самолетиков в Sketchup и генерировал код для пенорезки, чтобы их вырезать. Почти вчера было — но Ruby я уже абсолютно не помню.
Нарисовать в Sketchup что-то очень сложное и мелкое, чтобы можно было распечатать — это головная боль. Нарисовать-то можно, но он потеряет маленькие кусочки изображения, если их и удастся преобразовать в STL, то сгенерировать код для печати ни один слайсер не сможет.

Вот примерно такая моделька и понадобилась. Я даже нашел готовый STL файл.

image

Не знаю, что курил автор, но все отверстия были неправильных размеров, и использовать не получилось. А исходник автор положить не посчитал нужным. Проектировать такую модель с помощью Sketchup как-то не захотелось — плавали, знаем.

Вроде модель должна быть не сложная для OpenSCAD, но изучать его как-то не хотелось — пока дочитаешь до конца описание, забудешь, что было вначале. Все-таки не очень молодой, склероз крепчает и приходит альтернативная одаренность. Короче, решил, что изучать я ничего не буду. Буду искать подходящие решения в описании OpenSCAD по мере потребности.

И таки сработало — за один день я нарисовал эту детальку. Напечатать уже не успел — поставил на печать на второй день.
Так что предупреждаю — то, что сделано, сделано не от большого ума и знаний, а как уж карта легла. Может быть можно лучше и быстрее — но для одного дня должно быть не очень плохо, цель достигнута.
Если что описал неправильно, то это не по злому умыслу, а исключительно по незнанию — проект-то однодневка.

Со вступлением хватит, как повторял Остап Бендер за Мопассаном, ближе к телу.

Основание для крепления вентилятора — хотелось бы квадрат с закругленными краями. В элементарных функциях такой не нашелся. Но зато найдена не менее интересная вещь — на нарисованные элементы можно натянуть поверхность.
Пробуем — рисуем по углам цилиндрики с радиусом, который хотим иметь для закругления. Рисовать каждый отдельно — дурной вкус, используем циклы, благо они имеются.

$fn= 48;

FanBase();

module FanBase()
{
  height = 4;
  radius = 3;
  width = 41;
  union()
  {
    for(x = [0:1])
    {
      for(y = [0:1])
      {
        translate([(width-radius)*x-(width-radius)/2, (width-radius)*y-(width-radius)/2, 0])
          cylinder(r = radius, h = height, center = false);
      }
    }
  }    
}


image

Теперь просто меняем объединение union() на поверхность hull() — и все готово!

image

Это бы все это свести на конус. Натянется ли поверхность на 8 цилиндриков на разных высотах? Причем квадрат должен перейти в прямоугольник — диаметр у радиатора ведь меньше его высоты.

image

Без проблем — и код теперь выглядит так:

$fn= 48;

FanBase();

module FanBase()
{
  height = 4;
  radius = 3;
  width = 41;
    
  height_s = 1;
  radius_s = 2;
  length_s = 32;
  width_s = 27.5;    
    
  skirt1_height = 13;
  skirt2_height = 12.5;    

  hull()
  {
    for(x = [0:1])
    {
      for(y = [0:1])
      {
        translate([(width-radius)*x-(width-radius)/2, (width-radius)*y-(width-radius)/2, 0])
          cylinder(r = radius, h = height, center = false);
          
        translate([(length_s-radius_s)*x-(length_s-radius_s)/2, (width_s-radius_s)*y-(width_s-radius_s)/2, skirt1_height-height-height_s])
          cylinder(r = radius_s, h = height_s, center = false);          
          
      }
    }
  }    
}


image

Теперь бы юбку поднять повыше (гусары, молчать!) — нам нужно до половины диаметра закрыть радиатор. Делаем еще 4 цилиндра и натягиваем поверхность на них.

image

Вроде еще не сильно утомились, а картинка уже такая:

image

код тоже еще не напрягает:
$fn= 48;

FanBase();

module FanBase()
{
  height = 4;
  radius = 3;
  width = 41;
    
  height_s = 1;
  radius_s = 2;
  length_s = 32;
  width_s = 27.5;    
    
  skirt1_height = 13;
  skirt2_height = 12.5;    
  union()
  {
    hull()
    {    
      for(x = [0:1])
      {
        for(y = [0:1])
        {
          translate([(length_s-radius_s)*x-(length_s-radius_s)/2, (width_s-radius_s)*y-(width_s-radius_s)/2, skirt1_height])
            cylinder(r = radius_s, h = skirt2_height, center = false);   
        }      
      }
    }
    hull()
    {
      for(x = [0:1])
      {
        for(y = [0:1])
        {
          translate([(width-radius)*x-(width-radius)/2, (width-radius)*y-(width-radius)/2, 0])
            cylinder(r = radius, h = height, center = false);
          
          translate([(length_s-radius_s)*x-(length_s-radius_s)/2, (width_s-radius_s)*y-(width_s-radius_s)/2, skirt1_height-height_s])
            cylinder(r = radius_s, h = height_s, center = false);          
        }
      }
    }
  }    
}


Теперь займемся отверстиями для винтиков и гаечек. Имеем в виду, что когда пластик наплавляется, диаметр отверстия уменьшается на 0.2...0.4 мм. Если отверстие окажется чуть больше нужного — беда небольшая, а вот шестиугольное отверстие рассверлить, если оно окажется меньше нужного — у меня лично шестиугольных сверл нет.
При ближайшем рассмотрении оказывается, что цилиндр — это далеко не обязательно цилиндр, число граней можно указать. Чем больше граней — тем он больше будет похож на цилиндр. А для гаечек 6 граней — это то, что нам надо.

image

Код

FanScrewHoles();

module FanScrewHoles()
{
  width = 32;
  height = 4;
  height2 = 12;
  diam = 3.2;
  hex_nut = 6.6;
  union()
  {
    for(x = [0:1])
    {
      for(y = [0:1])
      {
        hull()
        {
          translate([width*x - width/2,width*y - width/2, height])
            cylinder(h=height2, r=hex_nut/2, center=false, $fn=6);
          translate([width*x - width/2,width*y - width/2, height+height2])
            cylinder(h=2, r=1, center=false);            
          
        }
        translate([width*x - width/2,width*y - width/2, -0.1])
          cylinder(h=height+0.2, r=diam/2, center=false);
      }
    }
  }
}



Теперь вычитаем отверстия из юбки

difference()
{
 FanBase();
 FanScrewHoles();
}


image

Надо бы заняться отверстием для воздуха — идем по накатанной дорожке, рисуем дырку наоборот.

image

image

Соединяем все вместе:

difference()
{ 
  FanBase();
  FanScrewHoles();
  AirHole();
}


image

Теперь нужна упрощенная модель печатающей головки. Опять не забываем, что готовое пластиковое изделие не будет точно соответствовать спроектированной модели, уменьшаем/увеличиваем где надо.

Тут я расслабился и переменные не вынес в отдельные строки.
Код
module HotEnd()
{
  union()
  {
    cylinder(r = 25/2, h = 32, center = false);
    translate([0,0,32]) cylinder(r = 16/2, h = 3.5, center = false);

    translate([0,0,32]) cylinder(r1 = 25/2, r2=16.4/2, h = 6.5, center = false);

    translate([0,0,35.5]) cylinder(r = 9/2, h = 2, center = false);
    translate([0,0,37.5]) cylinder(r = 16.4/2, h = 3.3, center = false);
    translate([0,0,40.8]) cylinder(r = 12.4/2, h = 5.2, center = false);
    translate([0,0,46]) cylinder(r = 16.4/2, h = 3.8, center = false) ;
  }
}



Пристраиваем головку к нашему поделию:

union()
{
  translate([-17,0,26])
    rotate([0, 90, 0])
      HotEnd();    
    
  difference()
  {
   FanBase();
   FanScrewHoles();
   AirHole();
  }
}


image

Теперь осталось нарисовать шейку-поддержку, желательно так, чтобы при печати обойтись без поддержек, извините за тафталогию. Дело вкуса, но я их не люблю.

Код
module Mount()
{
  width=29.5;
  union()
  {     
    difference()
    {        
      union()
      {  
        translate([0,-width/2,0])  
          rotate([-90,-90,0])
             linear_extrude(height = width, center = false, convexity = 10)
               polygon(points=[[10,1],[21.5,1],[21.5,18],[10,18],[0,8]]);                      
      }
      union()
      {
        translate([12.6, 22/2, 14.2])
          cylinder(h=10, r=3.2/2, center=false);      
        translate([12.6, 22/2, -0.1])  
          cylinder(h=14, r=6.6/2, center=false);   
        translate([12.6, -22/2, 14.2])
          cylinder(h=10, r=3.2/2, center=false);      
        translate([12.6, -22/2, -0.1])  
          cylinder(h=14, r=6.6/2, center=false);   
      }
    }
  }
}



image

В конце концов складываем, что положено складывать, вычитаем остальное:

module MainFan()
{
  difference()   
  {
    union() 
    { 
      FanBase();          
      translate([14,0,4])
        Mount();            
    }
    union()
    {
      FanScrewHoles();
      AirHole();
      translate([-17,0,26])
        rotate([0, 90, 0])
          HotEnd();
    }
  } 
}


image

Можно запускать слайсер.

image

Имеем то, что имеем.

image

После этого поправить все размеры в готовом файле второй детальки было минутным делом.

image

В заключение кое-какие мои проектики, нарисованные в Sketchup.
Вот такой станочек нарисовать за пару-тройку дней, даже в Sketchup, смогут не только лишь все.



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



Станки делал, когда уже заработал инвалидность — без дела сидеть мне лень, а с дикой атаксией что-то ровно отпилить было невозможно. Пилки по металлу просто ломались. Пришлось искать выход — голова, хоть и частично, но еще работает. Теперь станками пилю :) — было бы что пилить.

Прочая 3D мелочь пузатая, которую я не поленился выложить, здесь.
Может, кто для себя полезное что найдет.

Комментарии (45)


  1. fromzerotoinfinity
    08.12.2021 22:39
    +2

    Спасибо. Отличное описание. Голосовать не могу чего-то, поэтому здесь.


    1. DustyZebra Автор
      08.12.2021 22:41
      +1

      Кармы, наверно, не хватает - это поправимо.


  1. aborouhin
    08.12.2021 23:26
    +2

    Любопытно, конечно, что на свете, оказывается, ещё бывает :) И даже придумываются весьма полезные применения для такого код-ориентированного CAD'а. Надо запомнить на всякий случай.

    Но вот рассмотренная в посте деталька в Fusion360 (с бесплатной подпиской) рисуется за 20-30 минут. Ну или в каком-нибудь FreeCAD для поклонников строго open source решений. Про более взрослые CAD-системы не говорю, там и ценник взрослый.

    Если цель - сделать одну конкретную модельку, а не создать интерактивный онлайн-конструктор креплений под все известные алиэкспрессу типы хотэндов :) - то зачем заморачиваться именно с OpenSCAD?


  1. usa_habro_user
    09.12.2021 02:44
    -1

    Задам вопрос теоретически возможным реальным знатокам (а не "комментовским искпертам"), которые могут появиться в комментариях к этой статье: чем и как у вот такой вот модели можно сделать "руки как ноги" ;) , то бишь отдельными моделями, стыкуемыми к туловищу.

    Эта модель весьма сложна для качественной распечатки на FDM принтерах, в частности, из-за "висящих" рук, хотя там и прочих "висящих" мелких деталей хватает. "Вопрос на засыпку": как такое достойно (а не так, как тут любят постить фотки своих "кубиков" и прямоугольных коробочек "скоропечатники") распечатать? И, если не сложно, хотелось бы не просто получить "совет свысока", а реальную помощь (то бишь отредактированную модель). Я понимаю, что для 99.99% "профессиональных 3D печатников" тут это вопрос нерешаемый, но пишу на случай "ну, а вдруг?!" ;)


    1. fromzerotoinfinity
      09.12.2021 03:35

      Я пользуюсь Пруса Слайсер. У него при резке есть опция Support, которая создает непрочные поддержки которые потом отдираются легко. Выглядят так вот https://i1.wp.com/hackaday.com/wp-content/uploads/2019/05/prusaslicer_support2.png?w=396&h=396&crop=1&ssl=1

      Если еще не пробовали, то трай ит. А если не поможет решить проблему, тогда уже модельку разбивать на кусочки.


      1. usa_habro_user
        09.12.2021 04:21
        -2

        У всех слайсеров, в том числе и у Ultimaker Cura, есть такие опции, но это не решение. Тут вопрос к реальным "знатокам" (хотя сомневаюсь, что найду), как именно "модельку разбивать на кусочки".

        P.S. И, замечу, что советовать подобное после моего развернутого комментария, как бы "моветон"... Как там вы сказали, "трай ит"? Вот try it first before posting suggestion...


    1. SnakeSolid
      09.12.2021 07:12

      Нарезку можете сделать в блендере. Вот видео с примером - https://www.youtube.com/watch?v=dQX1218b49o .


    1. ITMatika
      09.12.2021 07:43
      +1

      Такое лучше печатать на фотополимернике.

      (извините за банальность)


      1. usa_habro_user
        09.12.2021 07:45
        -1

        Я в курсе (как и автор модели ;) ), но вопрос-то вовсе не в этом! Ну, вроде по-русски все пишу, ясно и просто (хотя вы хотя бы дали себе труд заглянуть в "сорцы", что уже плюс - это ирония).


        1. ITMatika
          09.12.2021 07:51

          Там регаться надо, чтоб скачать. Я сам не гуру в CAD-ах, так что по части модели советовать не буду. Но мои знакомые ребята рисуют и печатают похожие фигурки (ну может и не настолько тонкорукие) на полимернике. Со съёмными руками и ногами.


          1. usa_habro_user
            09.12.2021 07:58
            -3

            Я спрашивал как раз именно "гуру", если вы не заметили. Да, такие модели, с тонкими деталями, нужно печатать на resign принтерах, но... У меня есть только FDM (см. мои статьи), и покупать resign даже не планирую. Дочка "фанатеет" от этой игры, и хочу ей к Рождеству распечатать фигурку в подарок (это ее любимый персонаж), увеличенную в 3 раза.
            Потому, собственно, и попробовал спросить - постов по 3D печати очень мало. Впрочем, понимаю, что беда хабра - это "искперты", типа "Я свидетель, я свидетель! А что случилось?"...


            1. ITMatika
              09.12.2021 08:15

              Я просто видел идентичные пары фигурок. Первые просто распечатаны на FDM, вторые - распечатаны на полимернике, а затем качественно раскрашены мастером. Это небо и земля. Особенно в вопросах подарка.


          1. usa_habro_user
            09.12.2021 08:14

            А "со съемными руками и ногами" я тоже умею (но специально подготовленные для FDM, естественно)


            1. ITMatika
              09.12.2021 08:22

              Зачёт. Но у девки локоны и пальцы тонкие и острые. С ними будет проблема.


              1. usa_habro_user
                09.12.2021 08:32

                Камрад @iiiytn1k (спасибо ему еще раз!) сделал мне руки отдельно; попробую как-то ухитриться, и аккуратненько их распечатать без support-а на уменьшенной скорости - авось, и выйдет что-то.


    1. iiiytn1k
      09.12.2021 07:43
      +4

      В Blender такое сделать не проблема. Инструментом Knife разрезать фигуру и отделить отрезанную часть в отдельный объект. На плоскости отрезанного объекта нарисовать соединитель и модификатором Boolean-Difference сделать выемку на туловище.
      Вот за пару минут накидал. Соединители нарисовал «на глаз», поэтому они немного разные:
      image

      Ссылка на .blend файл (Blender 2.93):
      drive.google.com/file/d/1HCLL4tgKtCYJaIT7s_NNjHmw8KZ3Jzqe/view?usp=sharing

      Cсылка на .stl файлы:
      drive.google.com/file/d/1dxXvpppUJj_nb8_gEXHtNtb88GokiA6t/view?usp=sharing


      1. usa_habro_user
        09.12.2021 08:02

        Спасибо, но не подходит, мой слайсер (Cura) не понимает в формате блендера. Вы не можете сделать 3 объекта в формате .stl - тело, правая рука и левая рука?

        P.S. Решил было "плюсануть" вашу карму и статью (если есть) как минимум "за участие и внимание", а оказалось, что уже :) (да, статья была отличная!). Вот интересно выходит на хабре-то - помощь приходит не от болтунов, а от тех, кто сам что-то умеет ;)


        1. iiiytn1k
          09.12.2021 08:16
          +1

          Разбил на 4 объекта, так как хвост или пояс (честно говоря, не знаю как называется данный элемент гардероба) лучше печатать отдельным объектом.


          1. usa_habro_user
            09.12.2021 08:19

            Серёж, спасибо огромное! Завтра попробую (сейчас у нас уже ночь, да и я поставил печататься "вверх ногами" оригинальную модель - вдруг выйдет? Зарядил "крепким" ABS, в чехле, чтобы держать температуру). Отпишусь в личку, как опробую.


      1. usa_habro_user
        09.12.2021 08:22
        +1

        В Blender такое сделать не проблема.

        Кстати, вот вам отличная база для материала вашей следующей статьи: простое и доходчивое how to, без излишних погружений в таинства и тонкости (а, скажем, для практического применения в домашней 3D печати) будет полезно и интересно, думаю, не только мне.


    1. alnite
      09.12.2021 09:36
      +4

      Очень здорово, что нашёлся человек, который сделал за вас работу помог решить вашу задачку с подарком.

      В качестве ответного жеста, было бы здорово, если бы вы выложили настройки с которыми напечатали эту модель, и фото результата. Желающим повторить, именно на fdm, будет проще.


      1. nochkin
        10.12.2021 04:36

        Что-то мне подсказывает, что настройки -- это слишком индивидуальное и другим не сильно помогут.


    1. AotD
      09.12.2021 10:30
      +2

      Обычно используют meshmixer. Мне он никогда не нравился своим инопланетным и непонятным интерфейсом, но по гайдам в нём вполне можно сделать то что надо.

      Один раз подобным образом распиливал модель

      https://www.youtube.com/watch?v=Tgc66TvEke4


    1. PKav
      09.12.2021 14:10
      +1

      Вообще, такое умеет делать MeshMixer. Софтина очень специфическая, но позволяет довольно гибко делить модель и организовывать на месте деления соединение типа шип-паз для более удобного позиционирования при склейке.


    1. iRupert
      10.12.2021 23:25

      Для новичка самым простым решением вижу резку в слайсере. Наиболее простой для этой задачи будет FlashPrint, лучше версии 4.

      В нём откроете модель, комнатой резать можете нарезать свободно или по заданной плоскости.

      Далее разрезанные детали раскладывание на столе командой повернуть и в ней плоскостью на основание (вроде так называется). Если нужно печатать одну деталь за раз то остальные просто удалите, сохраните и нарежьте потом остальные.

      Сохраняете в STL и закидываете в слайсер от вашего принтера.


  1. usa_habro_user
    09.12.2021 05:07
    -3

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

    Возможно, автор не "курил", а просто использовал отверстия под дюймовую систему измерения (до сих пор общепринятую в США и кое где еще), вам не приходило в голову, перед тем, как начать хаять?


    1. fromzerotoinfinity
      09.12.2021 06:45
      +7

      Случаем не думали почему никто не советует вам ничего и уверен, что не посоветует.

      Выздоравливайте.


      1. usa_habro_user
        09.12.2021 07:30
        -6

        Я, по-моему, сразу предупредил, что не ищу "советов" от "искпертов", мне они не интересны от слова "совсем". Кто вас за язык-то тянул высказывать свой апломб и невежество?


    1. DustyZebra Автор
      09.12.2021 08:52
      +5

      Ну и зачем Вы на меня наехали? Какое отношение к дюймовой системе имеет диаметр и ширина шейки печатающей головки к дюймовой системе? Впрочем, я не любитель перепираться с незнакомыми людьми.


      1. usa_habro_user
        09.12.2021 09:00
        -2

        По моему, как раз "наехали" на автора модели (которой бесплатно воспользовались), именно вы, а не я. Я очень сомневаюсь, что камрад Triple_S "накурившись", "специально для вас", вложил (притом бесплатно!) модель, в которой "все отверстия были неправильных размеров" (цитирую вас) - куда проще предположить, что вы просто не разобрались, но поспешили обхаять абсолютно невинного автора бесплатной 3D модели. Как там отец Фёдор говАривал? "Не корысти ради, а токмо воли пославшей мя жены!" ;)

        P.S. Тем более непонятно (и, если честно, неприятно) слышать такое от вас: ведь вы не "пионэр", сами инженер, человек с жизненным опытом, и не можете не понимать - те, кто "курит" (как вы неуклюже выразились), отнюдь не делают 3D моделей и не выкладывают их на сайтах! Напиши вы: "но данная модель не подошла по размерам отверстий, поэтому пришлось их модифицировать" - кому бы в голову пришло на вас "наезжать"?!


        1. nochkin
          10.12.2021 04:40
          +2

          На Thingiverse часто встречаются модели с "неправильными" размерами, так как у разных людей часто разные индивидуальные требования.

          И дюймы тут не при чём. Если делать отверстие в четверть дюйма или 6,35 мм, то какая разница в дюймах это или в мм? Просто может оказаться, что кому-то надо это 8 мм в силу специфики применений.

          К бесплатности это тоже не имеет особого отношения, как мне кажется.


  1. 1eternal
    09.12.2021 09:13
    -2

    вот всё у программистов через одно место.

    вместо юзерфрендли графического интерфейса программы они моделируют через код.

    не знаю зачем существует такая программа и не могу понять тех, кто ей пользуется.


    1. DonAgosto
      09.12.2021 11:23
      +7

      не знаю зачем существует такая программа и не могу понять тех, кто ей пользуется.
      Так оно не для вас («обычных людей»), оно именно для программистов (и сочувствующих )). Они прям у себя на главной странице так и пишут: The Programmers Solid 3D CAD Modeller. Для программиста без опыта работы в КАД здесь порог входа — минимальный. Нужно только уметь работать с кодом и быстро искать в документации к библиотекам (программным) — и то и другое программист умеет априори и все инструменты для этого у него уже в наличии.
      вместо юзерфрендли графического интерфейса программы они моделируют через код.
      А вы представьте например как в том же вашем юзерфрендли графическом солиде сделать что-нито типа каталога какого-нито camozzi например. Только без строчки кода и уравнений, одними табличками размеров и прочих параметров, только мышекликом и цифровым блоком на клавиатуре :). Ну так на пару тысяч исполнений (комбинаций параметров) хотя бы.
      И потом поддерживать это, автоматически регистрировать все изменения, иметь возможность мгновенно откатиться на любое состояние в прошлом, автоматически с каталогом на сайте синхронизировать, выгрузки для офф-лайн версии каталога делать (не заставлять же всех солид устанавливать, чтоб каталог посмотреть), причем делать это все одновременно неограниченной группой товарищей (часть или все из которых — на удаленке), и тд и тп.
      Задолбаетесь ведь ). Плюните, и наймете в итоге того самого программиста, который вам это все вполне реализует. Кодом. Может быть даже в OpenSCAD.


      1. Celahir
        09.12.2021 20:16
        +2

        А вы представьте например как в том же вашем юзерфрендли графическом солиде сделать что-нито типа каталога какого-нито camozzi например.

        Справедливости ради, многое из того, что вы описали, там уже есть: параметрическое моделирование, загрузка переменных (размеров) с внешних источников, различные конфигурации одной детали/сборки, скрипты для генерации модели. Для автоматизации задач (eDrawings, FEM, рендер и т.п.) есть свой Task Scheduler. Я понимаю, что вы защищаете честь программистов, но критика продукта, с которым вы слабо знакомы, мне кажется неуместной. А то у меня сложилось ощущение, что либо инженер для вас это макака с "цифровым блоком", либо солид простой, как Paint. :)

        Только без строчки кода и уравнений

        Давайте без крайностей, инженер без уравнений, что программист без языка программирования. Под свою задачу свой инструмент. Солид стал популярен благодаря распространению через вузы и толерантности к ошибкам при построении модели. А цена продукта мало кого останавливает в России.


        1. DonAgosto
          09.12.2021 21:41

          загрузка переменных (размеров) с внешних источников
          а откуда они возьмутся во внешних источниках? все равно ручками в экселе набивать?
          различные конфигурации одной детали/сборки
          2000 конфигураций в одном файле? как то, мягко говоря, не очень удобно с этим работать будет, вам не кажется? или вобще не реально?
          скрипты для генерации модели
          Ну вот и первый код появился
          Я понимаю, что вы защищаете честь программистов
          Ой да ладно, даже мысли такой не было, и будьте уверены, программисты в моей защите не нуждаются совсем, у них и так все отлично в нынешнее время. )

          Просто так получилось, что я как бы
          но критика продукта, с которым вы слабо знакомы
          немного знаком на самом деле ). Начиная примерно с версии 2003. А диплом я делал в известном продукте Autodesk версии 14 (и даже код для этого продукта пришлось писать (на встроенном Lisp!), представляете), и потом на первом рабочем месте у меня был монитор 14" (CRT конечно же)) и кстати не менее известный продукт PTC версии 2000i. А на последних проектах было уже что-то типа SW-2018 и Creo-4. Как то так )
          Давайте без крайностей, инженер без уравнений, что программист...
          Извиняюсь, если вам показалось, что я был слишком категоричен ). Многие вот сомневаются где это может быть полезно (модель через код), а я просто привел вполне, как мне кажется, реалистичный пример. И ведь даже уравнения вряд ли сильно помогут в той задаче. Совсем без кода никак, к сожалению ).


          1. Celahir
            09.12.2021 23:00

            Но вы ведь сомневались где это может быть полезно

            Вы меня с комментатором выше не спутали? Иначе, я не понимаю к чему это ерничество. Я не вижу предмета спора и тоже пишу код, когда надо работать с данными. Уверен, что у вас был отличный проект, и вы выбрали подходящие инструменты для решения задачи.


            1. DonAgosto
              09.12.2021 23:36
              +1

              Вы меня с комментатором выше не спутали?
              Да, пардон :) поправил сразу практически, а вы видимо уже не обновили :)


    1. pvvv
      09.12.2021 13:03
      +1

      Сильно параметризуемую, но простую геометрию, которую ещё и менять надо, а не один раз нарисовать, устанешь мышкой накликивать.

      А через одно место тут - это выдумывать для этого очередной достаточно корявый недоязык.

      Вот здесь труЪ: http://c-csg.com/ :)


    1. roboter
      09.12.2021 13:26

      На простых моделях как в статье все плюсы и не увидеть, как писали выше во вюжен 20 - 30 минут уйдёт на всю модель.
      Плюсы когда есть математика и параметры, можно начертить шестерню и подставлять параметры.

      https://www.gotstl.com/product/50 - Онлайн генератор шестерни на OpenJSCAD


  1. anwender95
    09.12.2021 09:19

    Сделал несколько простых деталей на openscad и freecad, которые потом были успешно напечатаны.
    И freecad мне показался куда более удобным, чем openscad, хоть и далеко не юзер френдли.
    До этого модельки делал в Inventor, SketchUp, 123D, но захотелось опен сорса.


  1. Tontu
    09.12.2021 10:54

    Работал с FreeCAD, но не выкупил фишек его языка. Пришлось городить велосипед на С# и Unity3D (если делать велосипед, то самый эпичный, вообще надо было брать какой-нибудь ZenCad, по концепции гораздо ближе к истине). Дело в том, что в этой среде язык со своей философией и не даёт доступ к записи переменных из более высокой области видимости. Я так понимаю это по факту костыль к тому, как работает среда с аргументами, что можно сгенерировать модель из командной строки с нужными параметрами. Переменные из старших областей видимости копируются внутрь младшей и из младшей без эпичных костылей никак нельзя достучаться до старшей. Так что всякие итеративные численные методы реализовывать - то ещё приключение. В итоге по-настоящему процедурно сделать модель крайне неудобно. Ну или я чего-то не понимаю.

    P.S. Это если мы не берём коммерческие проекты, там всё давно очень хорошо.


  1. Blck-1
    09.12.2021 12:06
    +1

    Спасибо за статью. Который год тоже пытаюсь себя заставить OpenSCAD и каждый раз малодушничаю и запускаю Onshape или мазохирую во FreeCAD :-)

    Недавно тут еще про одну поделку прочел: https://github.com/CadQuery/cadquery Может с ней попроще будет.... :-)


  1. SignallerK
    09.12.2021 18:16
    +3

    Постепенно прихожу к мысли что thingiverse и тп, какой-то не правильный опенсорс. Не, может для какого-то гномика stl это ок. Но, для инженерной детали, это скорее выставка "смотри как я могу".

    Из десятка моделей скачанных там, пожалуй только парочку удалось распечатать без переделки stl в кривую модель, или перемоделирования с нуля.


    1. Celahir
      09.12.2021 20:38
      +1

      Этот ресурс и не был предназначен для инженерных деталей. За последними можно обратиться на grabCAD. Там тоже зоопарк, разная детализация моделей, но найти можно многое. В Onshape есть множество сборок и моделей, но их выгрузка запрятана в UI. Да и их бизнес модель на любителя: пользуйся бесплатно, но без прав на созданный продукт.


      1. DonAgosto
        09.12.2021 21:51
        +2

        grabCAD
        еще в копилку: 3dcontentcentral, partcommunity