Jump to content

Макросы в Power Mill


eksodus

Recommended Posts

Konstantin_VP

@syncomp может поможет мой макрос. Он разбивает 2д модель по диаметрам подписывая диаметр и кол. отв. .Удаляет двойники и конусы. PowerMill 2016

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

ECHO OFF DCPDEBUG UNTRACE COMMAND ACCEPT

DIALOGS ERROR OFF
GRAPHICS LOCK //отключение обновления экрана

//Проверка на наличие активного Featureset
 BOOL $err = 0
 $err = ERROR $entity("Featureset","").Name

    IF $err {
        MESSAGE WARN "2D модель не акивирована!"
        RETURN
    }

	    //Подготовка активного FEATURESET
		EDIT FEATURESET ; DESELECT ALL
		UNDRAW FEATURESET ALL
		DRAW FEATURESET ;
	
	    //фильтр отв. с углом (фаски, конусы, конические отв.)
		real $DraftAngle = 0.5
	    EDIT SELECTION DELETE
		EDIT SELECTION FILTER DRAFT_ANGLE MIN $DraftAngle
		EDIT SELECTION APPLY
		DELETE FEATURESET ; SELECTED


	//список всех диаметров в активном Featureset
	REAL LIST diameters = extract(components(entity('featureset','')), 'Diameter')
	//Удаление дубликатов из $diameters
    int diameDublicate = remove_duplicates(diameters)

STRING $featuresetName = ''
int $HoleDiamCount = 0
string $uline = ''

	IF size(diameters) == 1 {
	
	$HoleDiamCount = size(extract(components(entity('featureset','')), 'Diameter'))
	$featuresetName = "DIAMETER "+ '${round($diameters[0], 2)}' +'_('+ $HoleDiamCount + ')'
	
	//проверка наличия дубликатов
	IF entity_exists('featureset',$featuresetName) {
	
	While entity_exists('featureset',$featuresetName) == 1 {
	$uline = $uline + '_'
	$featuresetName = "DIAMETER "+ '${round($diameters[0], 2)}' +'_('+ $HoleDiamCount + ')'
	$featuresetName = $featuresetName+$uline
	
	}
	
	RENAME FEATURESET ;  $featuresetName
	$uline = ''
	
	} else {
	
	RENAME FEATURESET ; $featuresetName
	$uline = ''
	
	}
	
	} else {
	
    FOREACH $d IN $diameters {
	
		    EDIT SELECTION DELETE
			EDIT SELECTION FILTER DIAMETER MIN $d
			EDIT SELECTION FILTER DIAMETER MAX $d
			EDIT SELECTION APPLY
			//копирование 2D модели с выбранными отв.
			COPY FEATURESET $entity("Featureset","").Name SELECTED
			
			RENAME FEATURESET # '2DHole'
			
			$HoleDiamCount = size(extract(components(entity('featureset','2DHole')), 'Diameter'))

			$featuresetName = "DIAMETER "+$d +'_('+ $HoleDiamCount + ')'
			
			
			//проверка наличия дубликатов
			IF entity_exists('featureset',$featuresetName) {

			While entity_exists('featureset',$featuresetName) == 1 {
			$uline = $uline + '_'
			$featuresetName = $featuresetName+$uline
			}

			RENAME FEATURESET 2DHole  $featuresetName
			$uline = ''

			} else {
			
			RENAME FEATURESET 2DHole $featuresetName
			$uline = ''
			
			}


			}
			
			UNDRAW FEATURESET ALL
			DELETE Featureset ;

}


DIALOGS ERROR On
RESET LOCALVARS // очистить временные переменные
GRAPHICS UNLOCK //включение обновления экрана

 

 

Link to post
Share on other sites


03.12.2021 в 09:07, syncomp сказал:

До сих пор мучаюсь с переименованием отверстий!!!

все что вы пишите в чем нуждаетесь - есть в моем макросе для сверления

там и переименование самих отверстий, и переименование наборов отверстий

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

советую ознакомиться с ним

03.12.2021 в 11:23, Konstantin_VP сказал:

PowerMill 2016

ну хоть кто-то как и я еще работает в 2016 милле )

03.12.2021 в 11:23, Konstantin_VP сказал:

Удаляет двойники и конусы

конусы удаляет в много-компонентных отверстиях ?

или как и в моем макросе сверления - только в двух-компонентных ?

Link to post
Share on other sites
scorpion1007
03.12.2021 в 10:07, syncomp сказал:

До сих пор мучаюсь с переименованием отверстий!!! Подсказки eksodus и scorpion1007  не помогли. С форумным кодом разбирался долго. А переменная $featuresetName ничего не дала.

Я не могу получить имя набора отверстий!  Чтобы переименовать каждое отверстие в отдельном наборе, нужно знать его имя. Переименование каждого набора через FOREACH происходит великолепно. Даже получается показать имя! каждого отверстия в активном наборе. Но чтобы переименовать конкретное отверстие в активном наборе нужно знать его имя! И вот с этим проблема. Получить имя стандартным способом не получается. Я подразумеваю, что тип имени string. Но когда определяю переменную с этим типом (STRING fName = featureset.name), то РМ дает ошибку, что тип неправильный! Получить имя инструмента или траектории таким образом можно без проблем.

 

Смотри. Представь список в списке

Чтоб получить доступ ко всем наборам(по-другому спискам( list)) отверстий пробегаешься по папке Featureset

FOREACH f IN FOLDER('Featureset') {

...

}

 

 

 

 

где f это один из элементов списка Featureset. То есть по очереди перебираешь папку по одному элементу

После этого, тебе доступны поля этого элемента. В данном случае наборов(списков) отверстий в папке /Они отделяются точкой

 

2021-12-05_003709.jpg

 

 

то есть имя набора будет $f.name есссно строковое

к Примеру:

string name_nabor=$f.name

 

После этого зная имя набора можешь пробежаться по его компонентам

То же через цикл FOREACH

FOREACH f IN FOLDER('Featureset') {

FOREACH item IN components($f.name)) {

...твой код

}

}

Где из списка набора $f.name ты поучаешь доступ к каждому отверстию набора

И у каждого отверстия тоже есть поля, доступные через точку

 

 

 

то есть $item.name будет именем отверстия string

 

 

2021-12-05_004708.jpg

 

 

 

 

 

a $item.Diameter будет диаметром этого отверстия.

 

 

2021-12-05_005004.jpg

 

 

 

Также доступны и куча других полей отверстий. Имея эти поля можешь их или считывать или модифицировать

в данном случае

$item.name="Vasya" переименует отверстие на Васю

 

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

Там синтаксис правильный  

 

Сайт глюканул, последняя картинка повторяется. Не могу удалить

 

2021-12-05_005004.jpg

Edited by scorpion1007
Link to post
Share on other sites
scorpion1007

Ессно такая конструкция $item.name="Vasya" не сработает, если в наборе больше чем одно отверстия. Имена отверстий должны быть уникальны,  и милл не даст тебе их переименовать. Нужно организовывать счетчик

//Инициализируешь счетчик для имен набора, если нужно их поменять

int count_nabor=0

//Инициализируешь счетчик для имен отверстий

int count_otv=0

//Перебираешь все наборы

FOREACH f IN FOLDER('Featureset') {

//Переименовываешь наборы, если надо

$f.name=$count_nabor

//Дальше цикл по отверстиям набора. Сначала обнуляешь счетчик имен отверстий перед входом в цикл

$count_otv=0

FOREACH item IN components($f.name)) {

//Переименовываешь отверстие

$item.name=$count_otv+"_"+$item.Diameter+"_mm"

// Увеличиваешь счетчик на 1

$count_otv=$count_otv+1

}

//Увеличиваешь счетчик имен набора, когда вышел из цикла

$count_nabor=$count_naboк+1

}

Как-то так. Возможно надо счетчики(int) и диаметр привести к строке, не помню. А может и так прокатит.

Когда долго не пишешь, подзабывается. Написал один раз и юзаешь год.

В голове уже все перемешиватся, Питон,C#, макросы. У всех свои синтаксисы. Некоторые не дают работать пока не приведешь типы переменных в соответствие друг с другом. Смотри в хелпе

 

Link to post
Share on other sites
11 часов назад, scorpion1007 сказал:

Как-то так. Возможно надо счетчики(int) и диаметр привести к строке, не помню. А может и так прокатит.

Всё правильно вы пишете. НО!!! Вы, и многие другие, и руководство по Макропрограммированию советуют получать доступ к имени набора отверстий, как и каждому отверстию из набора через цикл FOREACH!!! Но это неудобно! Мне нужно изменить имя одного набора отверстий. Зачем перебирать все наборы? Предположим: У меня имеются два набора отверстий, 1 и 2. Соответственно набор под именем 1 имеет 16 отверстий диаметром 12мм и набор под именем 2 имеет 4 отверстия диаметром 30мм. Я хочу переименовать набор под именем 1 на новое имя ф12(16). Конструкция переименования будет: RENAME FEATURESET ..? "ф12(16)" Какое значение  какой переменной мне нужно поставить вместо Вопросительного знака? Я нашел как это сделать и написал об этом в конце прошлой страницы. Через INTITY. А получив доступ к имени набора я уже смогу переименовать и все отверстия в наборе, конечно же используя FOREACH Для меня это уже не актуально.

Сейчас ищу способ получить количество отверстий в наборе. Знаю, что нужно использовать SIZE но пока не понял как это сделать . Заинтересовал код Konstantin_VP, но пока его не анализировал. На работе дел много, а дома отдыхаю от РМ

Link to post
Share on other sites
Konstantin_VP
04.12.2021 в 15:18, eksodus сказал:

все что вы пишите в чем нуждаетесь - есть в моем макросе для сверления

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

04.12.2021 в 15:18, eksodus сказал:

ну хоть кто-то как и я еще работает в 2016 милле )

Ну на предприятии есть лицензия данной версии...собственно вот :)

04.12.2021 в 15:18, eksodus сказал:

конусы удаляет в много-компонентных отверстиях ?

или как и в моем макросе сверления - только в двух-компонентных ?

Если отверстие является составным (конус слит с отв), то удаляется весь компонент из набора т.к. не использовал команду разделения.

Но если конус (фаска и / или конус от сверла) не слит с отв, то удаляется просто конус из набора. А полученный итоговый набор разбивается по диаметрам на другие наборы.

Link to post
Share on other sites
scorpion1007
2 часа назад, syncomp сказал:

Всё правильно вы пишете. НО!!! Вы, и многие другие, и руководство по Макропрограммированию советуют получать доступ к имени набора отверстий, как и каждому отверстию из набора через цикл FOREACH!!! Но это неудобно! Мне нужно изменить имя одного набора отверстий. Зачем перебирать все наборы? Предположим: У меня имеются два набора отверстий, 1 и 2. Соответственно набор под именем 1 имеет 16 отверстий диаметром 12мм и набор под именем 2 имеет 4 отверстия диаметром 30мм. Я хочу переименовать набор под именем 1 на новое имя ф12(16). Конструкция переименования будет: RENAME FEATURESET ..? "ф12(16)" Какое значение  какой переменной мне нужно поставить вместо Вопросительного знака? Я нашел как это сделать и написал об этом в конце прошлой страницы. Через INTITY. А получив доступ к имени набора я уже смогу переименовать и все отверстия в наборе, конечно же используя FOREACH Для меня это уже не актуально.

Сейчас ищу способ получить количество отверстий в наборе. Знаю, что нужно использовать SIZE но пока не понял как это сделать . Заинтересовал код Konstantin_VP, но пока его не анализировал. На работе дел много, а дома отдыхаю от РМ

1)

RENAME FEATURESET "1" "ф12(16)"

2)

ACTIVATE FEATURESET "ф12(16)"

INT kolvo_otv = SIZE(components($entity('FEATURESET','')))

Edited by scorpion1007
Link to post
Share on other sites
05.12.2021 в 23:02, Konstantin_VP сказал:

Он довольно перегружен для восприятия и выделить нужный фрагмент из него сложно

возможно, но вот оттуда этот абзац -

// Деление 2D Элементов на группы по диаметру
	ENTITY $sourceFeatureset = $entity("Featureset","")
	EDIT FEATURESET ; DESELECT ALL
	REAL LIST diameters = {}
	FOREACH $f IN components($sourceFeatureset) {
	IF NOT member($diameters,$f.Diameter) {
	INT $i = add_last($diameters,$f.Diameter)
	   }
	}
	FOREACH $d IN $diameters {
	STRING $featuresetName = "Отверстия D"+$d+" СК_"+$activename
	IF NOT $entity_exists("Featureset",$featuresetName) {
	CREATE FEATURESET $featuresetName
	}
	ACTIVATE FEATURESET $sourceFeatureset
	EDIT FEATURESET ; DESELECT ALL
	FOREACH $f IN components($sourceFeatureset) {
	IF $f.Diameter == $d {
	EDIT FEATURESET ; SELECT $f.Name
	}
	 } 
	 EDIT FEATURESET $featuresetName INSERT FEATURESET ; LAST
	}
	DELETE FEATURESET $sourceFeatureset

 

 

05.12.2021 в 23:02, Konstantin_VP сказал:

Если отверстие является составным (конус слит с отв), то удаляется весь компонент из набора т.к. не использовал команду разделения.

в моем макросе сверления при двухкомпонентном отверстии, (например отверстие плюс фаска, или отверстие плюс цековка) -

удаляется второй компонент и само отверстие продляется на длину второго компонента

// Преобразование составных отверстий в простые (если таковые имеются)
INT subNum = 0
INT comp = 0
DEACTIVATE FEATURESET
FOREACH fsets IN folder ('FeatureSet') {
	FOREACH feat IN components(fsets) {
		IF feat.type == 'hole' {
			IF feat.num_items > 1 {
				FOREACH sub IN components(feat) {
					IF ((sub.Draft < 89) AND (sub.Draft > 1)) OR ((sub.Draft > -89) AND (sub.Draft < -1)) {
						INT subNum2 = $subNum + 1
						REAL depthPrevComp = 0
						ACTIVATE FEATURESET $fsets.name
						EDIT FEATURESET $fsets SELECT $feat.name
						IF subNum > 0 {
							$depthPrevComp = abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[$subNum-1].Depth)
						}
						IF subNum2 < feat.num_items {
							REAL depth = abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[$subNum2].Depth) - $depthPrevComp
							EDIT FEATURESET ; FEATURE SELECTION $subNum2
							EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED DEPTH $depth
						} 
						IF subNum2 == feat.num_items {
							$subNum2 = $subNum2 - $subNum
							REAL depth = 0
							IF feat.num_items > 2 {
								$depth = abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[$subNum].Depth) - abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[0].Depth)
							} ELSE {
								$subNum2 = $subNum2 - 1
								$depth = abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[$subNum].Depth)
							}
							EDIT FEATURESET ; FEATURE SELECTION $subNum2
							EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED DEPTH $depth
						}
						EDIT FEATURESET ; FEATURE SELECTION $subNum
						EDIT FEATURESET ; FEATURE DELETE
						EDIT FEATURESET $fsets.name DESELECT $feat.name
						$subNum = $subNum - 1
					}
					$subNum = $subNum + 1
				}
				$subNum = 0
			}
		}
		IF feat.num_items > 1 {
			ACTIVATE FEATURESET $fsets.name
			REAL depth = abs(components(components(entity('Featureset', '$fsets.name'))[$comp])[1].Depth)
			EDIT FEATURESET $fsets SELECT $feat.name
			EDIT FEATURESET ; FEATURE SELECTION '1'
			EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED DEPTH $depth	
			EDIT FEATURESET ; FEATURE SELECTION '0'
			EDIT FEATURESET ; FEATURE DELETE
			EDIT FEATURESET $fsets.name DESELECT $feat.name
		}
		$comp = $comp + 1
	}
	$comp = 0
}

вроде бы так логичнее, но в принципе, у каждого свои запросы

 

  • Нравится 1
Link to post
Share on other sites
Konstantin_VP
10 часов назад, eksodus сказал:

вроде бы так логичнее

согласен, просто мне это не нужно было. 

 

10 часов назад, eksodus сказал:

возможно, но вот оттуда этот абзац -

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

Link to post
Share on other sites
07.12.2021 в 12:20, Konstantin_VP сказал:

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

Я так стараюсь и поступать. Первую часть макроса взял за основу. Пока применяю в своих проектах только до создания простых отверстий... Единственное что меня не устраивало так это то, что цвет отверстий остается желтым. Это неудобно. Потому как по умолчанию в РМ этим цветом выделяются отверстия. Но выделив отверстия одного диаметра в созданном наборе, не могу увидеть их визуально. Стал разбираться с кодом. И натолкнулся на такую строку: EDIT FEATURESET ; COLOUR  1,00000 1,00000 0,25000 . Я понимаю, что это формат задания цвета. Но нигде никогда с таким не сталкивался. Единственное, что мог взять за вариант, то это 5 знаков после точки. Типа один из цветов можно представить в диапазоне 0,1-65535 Других вариантов не придумал. Подскажите как понять этот формат?

Link to post
Share on other sites
scorpion1007
10.12.2021 в 11:41, syncomp сказал:

Я так стараюсь и поступать. Первую часть макроса взял за основу. Пока применяю в своих проектах только до создания простых отверстий... Единственное что меня не устраивало так это то, что цвет отверстий остается желтым. Это неудобно. Потому как по умолчанию в РМ этим цветом выделяются отверстия. Но выделив отверстия одного диаметра в созданном наборе, не могу увидеть их визуально. Стал разбираться с кодом. И натолкнулся на такую строку: EDIT FEATURESET ; COLOUR  1,00000 1,00000 0,25000 . Я понимаю, что это формат задания цвета. Но нигде никогда с таким не сталкивался. Единственное, что мог взять за вариант, то это 5 знаков после точки. Типа один из цветов можно представить в диапазоне 0,1-65535 Других вариантов не придумал. Подскажите как понять этот формат?

Для начала я б попробовал:

string message="Спасибо Konstantin_VP, eksodus, scorpion1007 за подсказки и помощь"

MESSAGE INFO $message

 

  • Нравится 1
Link to post
Share on other sites
12.12.2021 в 15:16, scorpion1007 сказал:

Для начала я б попробовал:

string message="Спасибо Konstantin_VP, eksodus, scorpion1007 за подсказки и помощь"

MESSAGE INFO $message

 

Однозначно согласен с Вами. Огромное спасибо за помощь в написании макросов всех. Очень помогают в работе. Всех  с наступающим НГ)))

Даю свой вариант макроса создания и переименования  отверстий. Он основан на коде от eksodus

Создание всех отверстий.mac

Edited by syncomp
Добавление файла макроса
  • Нравится 3
Link to post
Share on other sites
  • 3 weeks later...
Gexoman

Добрый день. Кто-нибудь пытался вывести все параметры инструмента в УП, к примеру в ToolList ? Суть такая, хочу чтоб CIMCO подтягивала инструмент по всем параметрам из УП, но столкнулся с тем что не могу вывести конические фрезы и дисковые по нужным параметрам. Пробывал через script вывести но не смог обнаружить нужные параметры, а через режим «ЭХО» в самом PoerMill как понял только макрос можно вписать под эти параметры.

Сохраненное изображение 2022-1-8_17-34-1.347.jpg

Сохраненное изображение 2022-1-8_17-41-59.816.jpg

Link to post
Share on other sites
mannul
08.01.2022 в 15:51, Gexoman сказал:

Добрый день. Кто-нибудь пытался вывести все параметры инструмента в УП, к примеру в ToolList ?

Как я понял вам не хватает параметров длины конической части и диаметра площадки?

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

Создайте в посте пользовательские параметры типа Real с именами udp_TaperDiameter и udp_TaperHeight (регистр важен) и выводите хоть в туллист хоть куда.

Для дисковой верхний радиус udp_TipRadius

Все остальные параметры есть штатно.

Edited by mannul
  • Нравится 1
Link to post
Share on other sites
Gexoman
10.01.2022 в 17:42, mannul сказал:

Как я понял вам не хватает параметров длины конической части и диаметра площадки?

  Скрыть содержимое

Создайте в посте пользовательские параметры типа Real с именами udp_TaperDiameter и udp_TaperHeight (регистр важен) и выводите хоть в туллист хоть куда.

Для дисковой верхний радиус udp_TipRadius

Все остальные параметры есть штатно.

Благодарю за помощь. 
А где можно посмотреть параметры, «команды» для программирования поста ?

Link to post
Share on other sites
mannul
1 час назад, Gexoman сказал:

А где можно посмотреть параметры, «команды» для программирования поста ?

В самом редакторе постпроцессора на вкладке Parameters а так же в справке к посту. Те параметры что я выше писал ни где не найдете, это скрытый функционал.

Link to post
Share on other sites
arsenev
10.01.2022 в 15:42, mannul сказал:

Как я понял вам не хватает параметров длины конической части и диаметра площадки?

  Скрыть содержимое

Создайте в посте пользовательские параметры типа Real с именами udp_TaperDiameter и udp_TaperHeight (регистр важен) и выводите хоть в туллист хоть куда.

Для дисковой верхний радиус udp_TipRadius

Все остальные параметры есть штатно.

День добрый! Подскажи, пожалуйста, как вывести в УП диаметр патрона.

Что-то типа параметра Real с именем udp_НolderDiameter?

Edited by arsenev
Link to post
Share on other sites
mannul
2 часа назад, arsenev сказал:

как вывести в УП диаметр патрона.

Что-то типа параметра Real с именем udp_НolderDiameter?

Размеры патрона не передаются в CL-дату по умолчанию. Можете создать в посте параметр с приставкой udp_Имя1, а в PM в параметрах инструмента нужно создать параметр с таким же именем но без udp_ и вписать значение вручную или вписать параметр PM или использовать макрос.

  • Нравится 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Максим853
      Здравствуйте, не могу установить License server nx4. Выдает что не может запустить службу. Я зашел в службы , пытался нажать запустить, но он выдал ошибку. Может кто сталкивался ?    
    • Krusty
      у дассо нет вменяемых решателей ведь, или не? виртуальная геометрия и виртуальная труба в домашнем писюке? да лан
    • BSV1
      Как же тогда по на его основе определяют, заражён человек в данный момент или нет?  Кстати, насчет "инструмент статистики". Инструмент он, несомненно, но отнюдь не статистики. 
    • VODKABALALAIKALAPTI
      Добрый вечер, я методом тыка так сказать разобрался с ним :) 
    • fleshget
      Здравствуйте!  Есть два вектора, один просто круг, а другой - шкив зубчатый. Вывод в дугах. При обработке круга (6.tap) - УП корректная, G01 ставится перед каждым опусканием фрезы на новый слой. Все отлично. При обработке зубчатого шкива (3мм.tap) - происходит "некорректное" опускание, в начале строки PowerMill забывает поставить G01 !!! И у меня эта строка проходит на максимальной моей подаче вниз. Для обоих УП использовалась стратегия: "По профилю кривой" Подскажите пожалуйста как заставить PowerMill ставить в начале строки G01 при обработке зубчатого шкив при опускания фрезы? Я на всякий случай и проект прикрепил (2017).   PS: при первом опускании на Z0 - поставило G01 3мм шкив.rar
    • konyginv
      Приветствую , у Blum есть приложение на андройд с циклами , там вроде как все интуитивно понятно если не разберешься пиши , поищу мануал по грибку , поделюсь
    • Jekas
      Помогите написать макропрограму для нарезание резьбы с разбивкой по двум режущим кромкам, и с возможностью многозаходной без смешения начальной точки стойка fanuc 0i mate td. Сам ноль в макро программирование.   
    • NX_User_1
      При симуляции на основе машинного кода выдаётся сообщение:   Tool CENTROVKA has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file! Tool CENTROVKA has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file! Tool SV_D6.8 has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file! Tool SV_D6.8 has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file! Tool RAZV_D6.8 has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file! Tool MET4IK_M8 has tracking poing's adjust register number as zero! The tracking point's data is not outputed into to_ini.ini file!   В cse_files\subprog to_ini.ini вот это: $P_UIFR[0]=CTRANS(X,0.0,Y,0.0,Z,0.0) $TC_TP1[1]=1 $TC_TP2[1]="CENTROVKA" $TC_TP8[1]=10 $TC_DP1[1,1]=200 $TC_DP2[1,1]=0.0000 $TC_DP3[1,1]=50.0000 $TC_DP4[1,1]=0.0000 $TC_DP5[1,1]=0.0000 $TC_DP6[1,1]=4.0000 $TC_DP7[1,1]=0.0000 $TC_MPP6[1,1]=1 $TC_TP1[2]=2 $TC_TP2[2]="SV_D6.8" $TC_TP8[2]=10 $TC_DP1[2,2]=200 $TC_DP2[2,2]=35.0000 $TC_DP3[2,2]=80.0000 $TC_DP4[2,2]=0.0000 $TC_DP5[2,2]=0.0000 $TC_DP6[2,2]=3.3500 $TC_DP7[2,2]=0.0000 $TC_MPP6[1,2]=2 $TC_TP1[3]=3 $TC_TP2[3]="RAZV_D6.8" $TC_TP8[3]=10 $TC_DP1[3,3]=200 $TC_DP2[3,3]=30.0000 $TC_DP3[3,3]=100.0000 $TC_DP4[3,3]=0.0000 $TC_DP5[3,3]=0.0000 $TC_DP6[3,3]=3.4000 $TC_DP7[3,3]=0.0000 $TC_MPP6[1,3]=3 $TC_TP1[4]=4 $TC_TP2[4]="MET4IK_M8" $TC_TP8[4]=10 $TC_DP1[4,4]=200 $TC_DP2[4,4]=20.0000 $TC_DP3[4,4]=100.0000 $TC_DP4[4,4]=0.0000 $TC_DP5[4,4]=0.0000 $TC_DP6[4,4]=4.0000 $TC_DP7[4,4]=0.0000 $TC_MPP6[1,4]=4 $TC_TP1[5]=5 $TC_TP2[5]="FR_D8_R0.6" $TC_TP8[5]=10 $TC_DP1[5,5]=121 $TC_DP2[5,5]=20.0000 $TC_DP3[5,5]=75.0000 $TC_DP4[5,5]=0.0000 $TC_DP5[5,5]=0.0000 $TC_DP6[5,5]=4.0000 $TC_DP7[5,5]=0.5000 $TC_MPP6[1,5]=5 $TC_TP1[6]=6 $TC_TP2[6]="FR_D10" $TC_TP8[6]=10 $TC_DP1[6,6]=120 $TC_DP2[6,6]=30.0000 $TC_DP3[6,6]=75.0000 $TC_DP4[6,6]=0.0000 $TC_DP5[6,6]=0.0000 $TC_DP6[6,6]=5.0000 $TC_DP7[6,6]=0.0000 $TC_MPP6[1,6]=6 M17   На какой регистр ругается NX?
    • Snake 60
      @kkk Мой макрос не пробовали? там применяется другой метод сохранения (ссылка в подписи) Многие пользуются, никогда не было проблем с масштабом. Или макрос Артема (Xarial) пакетного сохранения dxf из сборки - тоже отличный,  рабочий, макрос.
    • LazyBitch
      А в чем слабоватость функционала лоадкейсов? В табличной форме достаточно быстро и удобно составлять расчетные комбинации нагрузок с коэффициентами сочетаний. Меня одно только подбешивает - по лоадкейсу нельзя посчитать линейную устойчивость.
×
×
  • Create New...