Статьи блога

Previous Next

VBA макрос экспорт развертки листовой детали в формате DXF (ExportToDXF)

   Коллеги, предоставляю вашему вниманию макрос для сохранения развертки детали, сделанной командами листового металла,  с возможностью настройки имени выводимого файла, его места сохранения и ряда других настроек. Давайте по порядку. Макрос работает только с ДЕТАЛЯМИ. Окно макроса после запуска выглядит следующим образом:

   Самой важной особенностью данного макроса считаю разработку модуля UnsupresseFlatternFeatures, который находит случайно погашенные сгибы в развертке и высвечивает их. Возможно вы встречались с такой ситуацией, когда развертка вашей детали выполнялась не полностью. Например не разгибалась какая-то одна из полок сложной детали или что-то подобное. Мной было замечено, что происходит это по причине случайно погашенного элемента дерева развертки, или в процессе программного сбоя (например при наличии большого количества конфигураций в детали). Вот например:


  Как видите, погашенное состояние этого элемента не влияет на внешний вид листовой детали в согнутом виде, и так как часто DXF-файлы создаются до создания чертежа с детали, то в детали отсутствует конфигурация развертки:


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

Хочу выразить огромную благодарность коллеге @alek77 за подгон кода по траверсингу дерева построений с поиском дочерних элементов :)

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

   Есть возможность ввода разделителя в сформированном имени:


В разделитель можно добавить любые символы из вот этого списка  - + = _ ~ # $ % ^ . , ! @ & пробел.

Разделитель может состоять из одного, двух или трех символов или их комбинации из выше перечисленных.

Если в поле разделителя вводится недопустимый символ, то разделитель меняется на значение по умолчанию, а это моя любимая тильда :) "~"

Разделитель автоматически отображается в форме и в сформированном имени файла:

    В макросе предусмотрена защита по недопустимости ввода неразрешенного символа в имени файла. Программа удаляет не разрешенные символы в имени файла, а именно, удаляются символы „<” (знак меньше),  „>” (знак больше), „:”(двоеточие), „«” (двойные кавычки), „/” (слеш), „\” (обратный слеш), „|” (вертикальная черта), „?” (вопросительный знак), „*” (звездочка)

    Присутствует возможность формирования имени файла из свойств со вкладки конфигурация. Одно условие, свойства должны быть заполнены, иначе получим пустую строку, вместо значения свойства. Название свойств из которых берутся значения необходимо один раз указать свои. При однократном выполнении макроса эти свойства и еще ряд других полей записываются в файл настроек ExportToDXF (Snake-60 Edition v1.2.3.5).txt и будут считаны из него при следующем запуске макроса.

   Если кому то нужен другой принцип формирования названия файла из свойств - обращайтесь, подкорректирую макрос под вас.

   Ниже расположены опции выбора пути сохранения файла:

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

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

Под этой зоной расположены еще ряд настроек, которые пользователь может выполнить при сохранении развертки:

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

ВАЖНЫЙ МОМЕНТ!!! При установке макроса (при создании кнопки для запуска макроса) в окне настройки в строке Метод (нажав на треугольник справа) выбираем метод Macro11.main1:

  Любые замечания/пожелания пишите в комментах.

  Архив с макросом можно скачать по ссылке ниже:

https://boosty.to/snake.nest/posts/5fdcacfd-c705-4e75-bed9-d80b46c1afc8?share=post_link