Перейти к публикации

Макросы в Power Mill


Рекомендованные сообщения

23 часа назад, Konstantin_VP сказал:

@scorpion1007

 

STRING LIST TPFOLDERS = get_folders('TOOLPATH')

Привеликий сенькс)

Изменено пользователем scorpion1007
Ссылка на сообщение
Поделиться на других сайтах


Всем добрый день. Всегда работал в Windows 7x64 и PowerMill 2018. Вчера пришлось переустановить Windows/ Сейчас стоит Windows 10x64 и PowerMill 2019. В принципе все нормально, но невыполняются некоторые макросы. Милл выдает ошибку, что не может вычислить выражение, синтаксическая ошибка. К примеру, знак деления(/) видит как (%). Создаю, редактирую и читаю макросы в Блокноте. Понимаю, что 10-ка неправильно выдает кодировку символов. Что делать? Может кто сталкивался с такой проблемой. Или все таки лучше вернуться на 7-ку?

Ссылка на сообщение
Поделиться на других сайтах
В 26.12.2019 в 11:51, syncomp сказал:

Что делать?

переделывать макросы

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 26.12.2019 в 12:51, syncomp сказал:

Всем добрый день. Всегда работал в Windows 7x64 и PowerMill 2018. Вчера пришлось переустановить Windows/ Сейчас стоит Windows 10x64 и PowerMill 2019. В принципе все нормально, но невыполняются некоторые макросы. Милл выдает ошибку, что не может вычислить выражение, синтаксическая ошибка. К примеру, знак деления(/) видит как (%). Создаю, редактирую и читаю макросы в Блокноте. Понимаю, что 10-ка неправильно выдает кодировку символов. Что делать? Может кто сталкивался с такой проблемой. Или все таки лучше вернуться на 7-ку?

Попробуй изменить кодировку в NOTEPAD++

1234.png.282998a642b4f2db99f728b2e706e1bb.png

 

Если не получится, попробуй позаменивать проценты на деление и прочее

Изменено пользователем scorpion1007
Ссылка на сообщение
Поделиться на других сайтах

Ребят, подскажите как пробежаться на предмет имён траекторий, содержащихся в NC-файле через цикл FOREACH?

 Нужно переименовать NC-файл, если  в нем содержится траектория с определенным именем

Ссылка на сообщение
Поделиться на других сайтах
В 11.01.2020 в 19:18, scorpion1007 сказал:

как пробежаться на предмет имён траекторий, содержащихся в NC-файле

 

Показать содержимое  
STRING LIST $Tl_list = extract(filter(components(entity('ncprogram', '')), "RootType=='nctoolpath'"), 'name')

FOREACH ncTp in Tl_list {

If $ncTp == '' {

}

}

 

Hide  

 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Konstantin_VP сказал:

 

Показать содержимое

STRING LIST $Tl_list = extract(filter(components(entity('ncprogram', '')), "RootType=='nctoolpath'"), 'name')

FOREACH ncTp in Tl_list {

If $ncTp == '' {

}

}

 

Hide

 

Круто!!! Спасибо большое

Ссылка на сообщение
Поделиться на других сайтах

Добрый день.Может кто-то работает в CimcoEdit v5? И подскажет, как отразить зеркально траекторию.

Я задаю такие параметры, и после отражения даже визуально видно, что изменяются В и С.

 

Изменение размера IMG_20200117_151729.jpg

Изменение размера IMG_20200117_144414.jpg

Изменение размера IMG_20200117_144115.jpg

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Прошу помочь с макросом. Если в имени траектории есть G41 или G42, то в примечания (NOTES) к траектории нужно внести запись Dn, где n - номер инструмента траектории.

Ссылка на сообщение
Поделиться на других сайтах
В 28.04.2019 в 15:57, Konstantin_VP сказал:
Показать содержимое

//Включение корректора на траекториях с латинской приставкой '_RL или _RR' В названии

string $LEFT = "_rl" //корректор слева
string $RIGHT = "_rr" //корректор справа
int $Item = 0 //счётчик траекторий

STRING NCName  = entity('ncprogram','').Name //Активный NC

FOREACH ncitem IN components(entity('ncprogram', $NCName)) {

// Проверка траекторий в NC-файле
IF lcase(ncitem.RootType) == 'nctoolpath' {

// Получение имени в Нижнем регистре
STRING $lcaseName = lcase(ncitem.Name)

// Проверка, содержит ли имя $LEFT
IF position($lcaseName, $LEFT) > 0 {

EDIT NCPROGRAM ; ITEM $Item COMPONENT ${($Item)*1000}

COMP_CODE LEFT //корректор слева

// Проверка, содержит ли имя $RIGHT
} elseIf position($lcaseName, $RIGHT) > 0 {

EDIT NCPROGRAM ; ITEM $Item COMPONENT ${($Item)*1000}

COMP_CODE RIGHT //корректор справа

}

$Item = Item + 1

}

}

 

Hide
Если в названии траектории есть "_RL" включится корректор слева в активном NC , "_RR" - справа.

Как сделать, чтобы макрос воздействовал сразу на все NC-файлы, а не только на активный?

Ссылка на сообщение
Поделиться на других сайтах
В 19.02.2020 в 10:43, arsenev сказал:

Прошу помочь с макросом. Если в имени траектории есть G41 или G42, то в примечания (NOTES) к траектории нужно внести запись Dn, где n - номер инструмента траектории.

С этой задачей справился. Вот текст макроса для фанукообразных систем ЧПУ:
 

Скрытый текст

 

//Вставка Notes с номером корректора на радиус инструмента
//на траекториях с 'G41 или G42' В названии

string $LEFT = "G41" //корректор слева
string $RIGHT = "G42" //корректор справа

FOREACH tp IN folder('Toolpath') {

ACTIVATE TOOLPATH $tp.Name

STRING $CutcomLeft = "D"+$tool.Number.Value+"(G41)"
STRING $CutcomRight = "D"+$tool.Number.Value+"(G42)"

// Проверка, содержит ли имя $LEFT

IF position(tp.Name, $LEFT) > 0 {

EDIT TOOLPATH ; Notes $CutcomLeft

// Проверка, содержит ли имя $RIGHT

} elseIf position(tp.Name, $RIGHT) > 0 {

EDIT TOOLPATH ; Notes $CutcomRight

}

}

 

 

Сделал это для того, чтобы добавлять информацию о номере корректора на радиус инструмента и коде (стороне - G41 или G42) смещения в карту наладки из Notes траектории, т.к. прямого способа не нашёл.

Изменено пользователем arsenev
Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Может кому пригодиться. Макрос для вывода времени обработки в формате ЧЧ:ММ:СС . Выводит данные в текстовый файл. По каждому NC-файлу отдельно + в конце суммарное время обработки.

Время.jpg

Время обработки.zip

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, Bullet77 сказал:

Может кому пригодиться. Макрос для вывода времени обработки в формате ЧЧ:ММ:СС . Выводит данные в текстовый файл.

А можно в сам фаил вписывать, я потом тоталлом выведу значение, только добавте например перед значением символ типа # или % или еще как.

иначе не удобно, яч вижу фаил и вижу значение все по нему, а не ищу в текстовике.

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, Maik812 сказал:

А можно в сам фаил вписывать, я потом тоталлом выведу значение, только добавте например перед значением символ типа # или % или еще как.

иначе не удобно, яч вижу фаил и вижу значение все по нему, а не ищу в текстовике.

Данный макрос переименовывает NC-файлы в "Имя_NC-файла %( ЧЧ:ММ:СС )"

Так Вы будете видеть файл и значение по нему

Время обработки_запись в имя NC-файла.zip

Ссылка на сообщение
Поделиться на других сайтах

Всем добрый вечер! Как изменить знак переменной? Т.е. если переменная отрицательная, то нужно сделать ее положительной и наоборот...

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, syncomp сказал:

Всем добрый вечер! Как изменить знак переменной? Т.е. если переменная отрицательная, то нужно сделать ее положительной и наоборот...

//переменная
INT I = 85
// смена знака переменой
$I = -($I) 
//
// вывод в сообщении
MESSAGE INFO $S

Здравствуйте. Вот, хотя бы, так

Изменено пользователем Bullet77
Ссылка на сообщение
Поделиться на других сайтах

Расскажите пожалуйста нормальным языком как объявить в макросе Функции и ими пользоваться. По руководству я понял, что должна присутствовать функция Main.

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, syncomp сказал:

Расскажите пожалуйста нормальным языком как объявить в макросе Функции и ими пользоваться. По руководству я понял, что должна присутствовать функция Main.

Функция "Main", по сути, является основой исполняемого файла. Телом, так сказать. А все остальные функции, которые создаются в этом файле, могут быть использованы или не использованы в функции "Main" и остальных функциях.  Использование функций удобно тем, что Вы можете 1 раз написать код и вызывать его, как функцию, столько раз, сколько нужно, а не дублировать код в исполняемом файле. Это приводит к сокращению объема конечного файла.  Но без функции "Main" остальные функции существовать не могут. Вот пример с описанием действий русским языком:

// в этой функции исполняеться "основной" код
function Main() {

	//формируем путь для перехода	
	string path_project = $project_pathname(0) + "\DATA\" + $project.Name
	
	// путь к модели
  	string ModelPath = folder('Model')[0].Path

  	 //название модели (без формата) 
  	string ModelName = folder('model')[0].Name

    // поиск позиции $ModelName в строке $ModelPath (0-начало) 
    real Pos = position($ModelPath, $ModelName)

    //отображает строчку с позиции 0 до $Pos 	//отнимаем от пути к модели имя модели
    string path = substring($ModelPath, 0, $Pos)

	//формируем путь для перехода
	string path_model = $path + "\DATA\" + $ModelName
	
	// формируем списки которые будут записаны в соответствующие файлы
	string list s_project = {"Данные по проекту"}
	string list s_model = {"Данные по модели"}

	//передаем переменные в функцию WRITING. Где $path_project - путь для перехода, а $s_project - то что будет записано в сам файл
	CALL WRITING($path_project, $s_project)
	CALL WRITING($path_model, $s_model)
}

// в этих двух функциях, описаных ниже, исполняется "вспомогательный" код
// в данном случае функция WRITING вызывается 2 раза, а не
// дважды продублирован "кусок" кода

// принимаем переменные в функции WRITING. Где string P - $path_project - путь для перехода, а string list S - $s_project - то что будет записано в сам файл
// соблюдая при этом типы файлов
function WRITING(string P, string list S)
	
	// используем функцию внутри функции
	CALL CheckDirect($P) 
	
	// формируем название файла
	string file = "Файл для (" + $p + ").txt"

	//открытие файла, а если его нет, то создание
	FILE OPEN $file FOR WRITE AS "F"

	foreach line in S {

	// запись в файл переменной $line
	FILE WRITE $line TO "F"
	}

	FILE CLOSE "F"
}

function CheckDirect(string D) {

	//проверка наличия пути
	if dir_exists($d) {

	//если есть - переходим
	CD $d
	} else {

	//если отсутствует - создаем и переходим
	MKDIR $d
	CD $d
	}
}
	

После функции "Main" обязательно использование () "открыта-закрыта скобка". При передаче переменных, во внутрь функции или из нее, обязательно соблюдение последовательности переменных и их типа. Если требуется передать обратно значение из функции "вспомогательной" в функцию "Main" или другую, то переменную описывают как (OUTPUT "тип переменной" "сама переменная") , но без  кавычек.  "Вспомогательные" функции, так же как "Main", могут быть использованы без передачи данных, но присутствие скобок в описании и вызове такой функции - обязательно.

Изменено пользователем Bullet77
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

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

изменение конечной безопасной точки.mac изменение начальной безопасной точки.mac

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • TVM
      Для общего развития интересовался. И на предложение, спроектировать крышечку - там все просто, не ведусь. 
    • Gorich
    • Нанософт разработка
      Одним из эффективных способов осуществления строительного надзора является использование результатов лазерного сканирования с построением 3D-моделей, что дает наиболее полную информацию о строительных объектах с привязкой к пространственным, инфраструктурным и центральным инженерным коммуникациям. Институт «Сибгипробум», активно работающий над совершенствованием мониторинга и созданием цифровых двойников, использует комбинацию технологий «Платформа nanoCAD + ReClouds» как бесшовную инженерную среду для проектирования и для работы с облаками точек. Комплексную поддержку при внедрении программных решений предоставила компания «Бюро САПР» – премьер- и фокус-партнер компании «Нанософт» по направлениям «Конструкции», «Инженерия» и «Землеустройство».   О компании АО «Сибгипробум» – институт, на протяжении 65 лет специализирующийся в области проектирования предприятий лесной и целлюлозно-бумажной промышленности, объектов глубокой химико-механической переработки древесины, а также разрабатывающий проекты экологических и энергетических объектов. В проектной деятельности институт активно использует технологии лазерного сканирования и информационного моделирования. Исходная ситуация ·        Отсутствие возможности оперативного повсеместного контроля строительства на промплощадке. ·        Отсутствие актуальной трехмерной модели объекта, которую в дальнейшем можно было бы сопоставить с облаком точек. ·        Сжатые сроки, которые не позволяли создать трехмерную модель. Задачи цифрового мониторинга ·        Поиск изменений между отчетными периодами. ·        Подсчет объемов монтажа. ·        Поиск пространственно-временных коллизий. Сравнение облака точек в двух отчетных периодах на графике строительства – S-кривой. Красным подсвечено то, что изменено (это было сделано на другой платформе)   Оптимальное технологическое решение можно выбрать в зависимости от степени сложности точечной задачи в рамках цифрового мониторинга. Продемонстрируем это на конкретных примерах. Прикладная задача 1: проверка проектного положения монтируемого оборудования и конструкций. Выбранная технология: Платформа nanoCAD для совмещения 2D-чертежей с облаком точек. Алгоритм работы технологии: загрузка исходного облака точек формата LAS в nanoCAD импортом NPC → создание удобной ПСК для сравнения облака точек в нужном ракурсе → копирование чертежа и совмещение по «точкам доверия» (например, по колоннам здания) → создание сечения → поиск отклонений. Полученный прикладной результат: разрез на определенной отметке показал отклонение по колоннам здания, из-за чего стена построена «криво». Благодаря этим данным авторский надзор перепроверил расчетные значения и скорректировал решения. В результате эту стену пришлось укреплять дополнительными металлоконструкциями. Плюсы и минусы технологии Плюсы: Минусы: ·        не требуется трехмерная модель; ·        простая технология, которую может освоить каждый; ·        низкие требования к аппаратному обеспечению; ·        низкая стоимость контроля проектных решений без выезда на площадку. ·        трудозатратно, если требуется проверить несколько разных разделов в одной точке; ·        проверка происходит в рамках одного сечения; ·        каждый раз в новом месте проверки требуется совмещение чертежа и облака точек.     Поиск отклонений в конструкциях путем совмещения 2D-чертежей с облаком точек в Платформе nanoCAD   Прикладная задача 2: анализ деформации оборудования – цилиндрической печи. Выбранная технология: ReClouds для сравнения облака точек печи с ее 3D-моделью. Алгоритм: загрузка исходного облака точек (в формате LAS) и цилиндра, выполненного в виде 3D-солида, равного диаметру печи → совмещение 3D-моделей → использование команды ReClouds Сравнение → побор опытным путем радиуса отклонения (вылет точки от нормативного положения) → создание градиентного графика отклонений → поиск отклонений. Полученный прикладной результат: выявлены отклонения трубы от нормативного положения: вмятина и провисание. Наглядный способ проинформировать проектировщиков и строителей, на какие участки следует обратить внимание, чтобы принять решения о ремонте, частичной или полной замене. Эффективность использования ReClouds ·        Автоматизация обработки данных 3D-сканирования. ·        Работа в знакомой инженерной среде с интуитивно понятным интерфейсом. ·        Высокая скорость работы. ·        Минимум финансовых и аппаратных ресурсов. ·        Интеграция со специализированными решениями. ·        Гибридность используемых технологий: Платформа nanoCAD и ReClouds позволяют одновременно работать с 3D-моделью, 2D-чертежом и облаком.                                         Анализ деформации цилиндрической печи с помощью ReClouds. Справа красным и зеленым цветом подсвечена сама труба   Отклонения трубы от эталонного 3D-солида: слева видна вмятина, справа – провисание трубы Мнение пользователя Павел Владимирович Коротких, главный специалист – руководитель группы отдела по цифровизации инженерных процессов и данных, АО «Сибгипробум»   «Когда геополитическая ситуация обострилась и были введены санкции, перед нашим институтом, как и перед предприятиями многих других отраслей, встала задача импортозамещения.   Много где возникали сложности, но было очень отрадно знать, что базовое инженерное ПО нам есть чем заменить. Этим ПО стала Платформа nanoCAD, которая оказалась намного большим, чем просто скопированный зарубежный продукт.   Из стандартного функционала хотелось бы отметить, во-первых, Диспетчер чертежа, который позволяет удобно осуществлять менеджмент чертежей; а, во-вторых, базовые операции при работе с облаками точек: импорт/экспорт, настройки визуализации, подрезку, сечения и т.д.   Использование ReClouds – вертикального приложения к Платформе nanoCAD – дало нам расширенные возможности взаимодействовать с облаками точек, при этом оставаясь в единой инженерной среде.   Обнадеживает активное развитие продуктов со стороны разработчика и неуклонно растущее комьюнити пользователей».   О компании «Нанософт» «Нанософт» – российский разработчик инженерного ПО: технологий автоматизированного проектирования (CAD/САПР), информационного моделирования (BIM/ТИМ) и сопровождения объектов промышленного и гражданского строительства (ПГС) на всех этапах жизненного цикла, а также сквозной цифровизации всех процессов в производстве. Миссия компании – формирование условий для массового оснащения российского рынка лицензионными, качественными и доступными отечественными программными продуктами. «Нанософт» помогает своим заказчикам достичь импортонезависимости в области инженерного ПО и нацелена на развитие собственных технологий в фокусе реальных потребностей. Это позволяет гарантированно защитить критически важную ИТ-инфраструктуру, что особенно актуально сейчас, когда западные вендоры уходят с рынка, замораживают поставки ПО и техническую поддержку. Все программные продукты компании включены в Единый реестр российских программ для электронных вычислительных машин и баз данных. Официальный сайт: nanocad.ru.  
    • Raven
      Спасибо всем кто, ответил Проблема была в том что в БД свойство было строковое не массив, хотя в бизнес-моделере свойство с таким же именем было массивом типизированых ссылок.
    • Raven
      Привет. Подскажите почему может не отображаться пункт меню Вид - Применяемость
    • Gorich
      Я вот не совсем понял где и что смотреть...а руководство по эксплуатации от станка ну так сказать такое себе...там какие то совсем основы... нашел там типо какой то общий сброс...это не сможет помочь?)
    • Viktor2004
      а как проверить шпиндель, хорошо ли он держит инструмент? Не снимая шпиндель и не разбирая его
    • gudstartup
    • gudstartup
      почитайте руководство по эксплуатации я думаю или в сервисе или в пусконаладке нажмите кнопку plc  вы сигнал определили?
    • Gorich
×
×
  • Создать...