Статьи блога

Оценки
(0)

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

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

001

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

002


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

003


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

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

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

004

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

005


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

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

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

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

006

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

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

007

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

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

008

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

009

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

010

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

011

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

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

012

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

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

000

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