Изменение профиля операции

Аватара пользователя
demonlibra
Помогаю слегка
Сообщения: 2552
Зарегистрирован: 18 янв 2020, 11:49
Откуда: Ростов-на-Дону

Изменение профиля операции

Сообщение demonlibra »

При необходимости изменить профиль для операций выдавливания и выреза можно удалить и создать с новыми параметрами или воспользоваться методом, описанным в форуме FreeCAD.

Включите отображение консоли: Вид - Панели - Консоль Python
Выполните в консоли следующие команды:

Код: Выделить всё

p = App.ActiveDocument.Pad0 # Вместо Pad0 укажите название операции

Код: Выделить всё

p.Profile = (p.Profile[0],['Face5']) # Вместо 'Face5' укажите номер эскиза или грани для выдавливания
Пример

Код: Выделить всё

p = App.ActiveDocument.Pad
p.Profile = (p.Profile[0],['Edge3'])
Изображение Изображение
Не бойся поломать. Бойся не починить ))
Изображение
Аватара пользователя
demonlibra
Помогаю слегка
Сообщения: 2552
Зарегистрирован: 18 янв 2020, 11:49
Откуда: Ростов-на-Дону

Re: Изменение профиля операции

Сообщение demonlibra »

Макрос изменения профиля операции

Порядок действий:
  1. Активировать предыдущую операцию.
    Это необходимо чтобы получить имена профилей до момента создания редактируемой операции.
  2. Выбрать в списке моделей редактируемую операцию.
  3. Выбрать в графической области профиль, который должен быть присвоен операции.
    Допускается выбор нескольких профилей.
  4. Запустить макрос Смена_профиля_операции.FCMacro.

Код: Выделить всё

selection = FreeCADGui.Selection

if len(selection.getSelection()) > 1:
	operation = selection.getSelection()[0]
	FreeCAD.Console.PrintMessage('\nВыбрана операция: ' + operation.Name)

	base = selection.getSelection()[0].BaseFeature
	faces = selection.getSelectionEx()[1].SubElementNames
	FreeCAD.Console.PrintMessage('\nВыбраны стороны: ' + str(faces) + ' объекта: ' + str(base))
	
	operation.Profile = (base,faces)
else:
	FreeCAD.Console.PrintMessage('\nМакрос не может быть выполнен. !!! Выберите операцию и профили !!!')
Не бойся поломать. Бойся не починить ))
Изображение
Аватара пользователя
demonlibra
Помогаю слегка
Сообщения: 2552
Зарегистрирован: 18 янв 2020, 11:49
Откуда: Ростов-на-Дону

Re: Изменение профиля операции

Сообщение demonlibra »

Макрос изменения привязки тела (крепежного элемента)

Порядок действий:
  1. Выбрать в списке моделей крепёжный элемент.
  2. Выбрать в графической области профиль, который к которому необходимо выполнить привязку.
  3. Запустить макрос Смена_привязки_тела.FCMacro.

Код: Выделить всё

selection = FreeCADGui.Selection										# Выбранные объекты
try:
	object = selection.getSelection()[0]									# Крепёжный элемент
	FreeCAD.Console.PrintMessage('\nВыбран объект: ' + object.Name)		# Вывод сообщения в окно отчёта

	try:
		new_body = selection.getSelection()[1]._Body						# Попробовать получить имя объекта, на котором выделена грань 
	except:
		new_body = selection.getSelection()[1]							# Если объект Part, а не PartDesign

	new_edge = selection.getSelectionEx()[1].SubObjects[0]
	if issubclass(type(new_edge),Part.Edge):								# Проверка, 2-е выделение является гранью 
		new_edge = selection.getSelectionEx()[1].SubElementNames[0]		# Имя грани
		FreeCAD.Console.PrintMessage('\nВыбрана сторона: ' + new_edge)	# Вывод сообщения в окно отчёта
		#object.baseObject = new_body									# Присвоение нового объекта привязки
		#object.baseObject = (object.baseObject[0],[new_edge])				# Присвоение новой грани привязки
		object.baseObject = (new_body,[new_edge])
except:
	FreeCAD.Console.PrintMessage('\nМакрос не может быть выполнен. !!! Выберите объект и грань !!!')
Не бойся поломать. Бойся не починить ))
Изображение

Вернуться в «FreeCAD»