From b9779dd01fb55706bb4de5ff2580b97b75c42cfc Mon Sep 17 00:00:00 2001 From: Mark Voltov Date: Tue, 25 Apr 2023 22:31:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F=20=D1=82=D0=B5?= =?UTF-8?q?=D1=85=D0=BD=D0=BE=D0=BB=D0=BE=D0=B3=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D0=B9=20=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cg/freecad/Frames/MetaObj.py | 0 cg/freecad/Frames/img/qXX7sBMbsvA.jpg | Bin 0 -> 87958 bytes cg/freecad/Frames/newDatumCmd.py | 259 ++++++++++++++++++ .../Модуль технологической подготовки.md | 27 ++ 4 files changed, 286 insertions(+) create mode 100644 cg/freecad/Frames/MetaObj.py create mode 100644 cg/freecad/Frames/img/qXX7sBMbsvA.jpg create mode 100644 cg/freecad/Frames/newDatumCmd.py create mode 100644 cg/freecad/Frames/Модуль технологической подготовки.md diff --git a/cg/freecad/Frames/MetaObj.py b/cg/freecad/Frames/MetaObj.py new file mode 100644 index 0000000..e69de29 diff --git a/cg/freecad/Frames/img/qXX7sBMbsvA.jpg b/cg/freecad/Frames/img/qXX7sBMbsvA.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17a6b4638ffea2916c7e0b0643d1b70b47e09cad GIT binary patch literal 87958 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 PT_sD`H56U;|8D{S-S?OA literal 0 HcmV?d00001 diff --git a/cg/freecad/Frames/newDatumCmd.py b/cg/freecad/Frames/newDatumCmd.py new file mode 100644 index 0000000..d1f2930 --- /dev/null +++ b/cg/freecad/Frames/newDatumCmd.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +# coding: utf-8 +# +# LGPL +# Copyright HUBERT Zoltán +# +# newDatumCmd.py + + +import os + +from PySide import QtGui, QtCore +import FreeCADGui as Gui +import FreeCAD as App +from FreeCAD import Console as FCC + +import Asm4_libs as Asm4 + + + + +""" + +-----------------------------------------------+ + | a class to create all Datum objects | + +-----------------------------------------------+ +""" +class newDatum: + "My tool object" + def __init__(self, datumName): + self.datumName = datumName + # recognised containers (not the same as Asm4.containerTypes !) + self.containers = [ 'App::Part', 'PartDesign::Body', 'App::DocumentObjectGroup'] + if self.datumName == 'Point': + self.datumType = 'PartDesign::Point' + self.menutext = "New Point" + self.tooltip = "Create a new Datum Point in a Part" + self.icon = os.path.join( Asm4.iconPath , 'Asm4_Point.svg') + self.datumColor = (0.00,0.00,0.00) + self.datumAlpha = [] + elif self.datumName == 'Axis': + self.datumType = 'PartDesign::Line' + self.menutext = "New Axis" + self.tooltip = "Create a new Datum Axis in a Part" + self.icon = os.path.join( Asm4.iconPath , 'Asm4_Axis.svg') + self.datumColor = (0.00,0.00,0.50) + self.datumAlpha = [] + elif self.datumName == 'Plane': + self.datumType = 'PartDesign::Plane' + self.menutext = "New Plane" + self.tooltip = "Create a new Datum Plane in a Part" + self.icon = os.path.join( Asm4.iconPath , 'Asm4_Plane.svg') + self.datumColor = (0.50,0.50,0.50) + self.datumAlpha = 80 + elif self.datumName == 'LCS': + self.datumType = 'PartDesign::CoordinateSystem' + self.menutext = "New Coordinate System" + self.tooltip = "Create a new Coordinate System in a Part" + self.icon = os.path.join( Asm4.iconPath , 'Asm4_CoordinateSystem.svg') + self.datumColor = [] + self.datumAlpha = [] + elif self.datumName == 'Sketch': + self.datumType = 'Sketcher::SketchObject' + self.menutext = "New Sketch" + self.tooltip = "Create a new Sketch in a Part" + self.icon = os.path.join( Asm4.iconPath , 'Asm4_Sketch.svg') + self.datumColor = [] + self.datumAlpha = [] + + + def GetResources(self): + return {"MenuText": self.menutext, + "ToolTip": self.tooltip, + "Pixmap" : self.icon } + + + def IsActive(self): + if App.ActiveDocument: + # is something correct selected ? + if self.checkSelection(): + return(True) + return(False) + + + def checkSelection(self): + # if something is selected ... + if Gui.Selection.getSelection(): + selectedObj = Gui.Selection.getSelection()[0] + # ... and it's an App::Part or an datum object + selType = selectedObj.TypeId + if selType in self.containers or selType in Asm4.datumTypes or selType=='Sketcher::SketchObject': + return(selectedObj) + # or of nothing is selected ... + elif Asm4.getAssembly(): + # ... but there is as assembly: + return Asm4.getAssembly() + # if we're here it's because we didn't find a good reason to not be here + return None + + + + """ + +-----------------------------------------------+ + | the real stuff | + +-----------------------------------------------+ + """ + def Activated(self): + # check that we have somewhere to put our stuff + selectedObj = self.checkSelection() + # default name increments the datum type's end numeral + proposedName = Asm4.nextInstance( self.datumName, startAtOne=True ) + + parentContainer = None + # check whether we have selected a container + if selectedObj.TypeId in self.containers: + parentContainer = selectedObj + # if a datum object is selected + elif selectedObj.TypeId in Asm4.datumTypes or selectedObj.TypeId=='Sketcher::SketchObject': + # see whether it's in a container + parent = selectedObj.getParentGeoFeatureGroup() + if parent.TypeId in self.containers: + parentContainer = parent + # if there is an assembly + elif Asm4.getAssembly(): + parentContainer = Asm4.getAssembly() + # something went wrong + else: + Asm4.warningBox("I can't create a "+self.datumType+" with the current selections") + + # check whether there is already a similar datum, and increment the instance number + # instanceNum = 1 + #while App.ActiveDocument.getObject( self.datumName+'_'+str(instanceNum) ): + # instanceNum += 1 + #datumName = self.datumName+'_'+str(instanceNum) + if parentContainer: + # input dialog to ask the user the name of the Sketch: + #proposedName = Asm4.nextInstance( self.datumName + '_' + selectedObj.Label, startAtOne=True ) + text,ok = QtGui.QInputDialog.getText(None,'Create new '+self.datumName, + 'Enter '+self.datumName+' name :'+' '*40, text = proposedName) + if ok and text: + # App.activeDocument().getObject('Model').newObject( 'Sketcher::SketchObject', text ) + createdDatum = App.ActiveDocument.addObject( self.datumType, text ) + parentContainer.addObject( createdDatum ) + createdDatum.Label = text + # automatic resizing of datum Plane sucks, so we set it to manual + if self.datumType=='PartDesign::Plane': + createdDatum.ResizeMode = 'Manual' + createdDatum.Length = 100 + createdDatum.Width = 100 + elif self.datumType=='PartDesign::Line': + createdDatum.ResizeMode = 'Manual' + createdDatum.Length = 200 + # if color or transparency is specified for this datum type + if self.datumColor: + Gui.ActiveDocument.getObject(createdDatum.Name).ShapeColor = self.datumColor + if self.datumAlpha: + Gui.ActiveDocument.getObject(createdDatum.Name).Transparency = self.datumAlpha + # highlight the created datum object + Gui.Selection.clearSelection() + Gui.Selection.addSelection( App.ActiveDocument.Name, parentContainer.Name, createdDatum.Name+'.' ) + Gui.runCommand('Part_EditAttachment') + + + +""" + +-----------------------------------------------+ + | a class to create an LCS on a hole | + +-----------------------------------------------+ +""" +class newHole: + def GetResources(self): + return {"MenuText": "New Hole Axis", + "ToolTip": "Create a Datum Axis attached to a hole", + "Pixmap" : os.path.join( Asm4.iconPath , 'Asm4_Hole.svg') + } + + def IsActive(self): + selection = self.getSelectedEdges() + if selection is None: + return False + else: + return True + + + """ + +-----------------------------------------------+ + | the real stuff | + +-----------------------------------------------+ + """ + def getSelectedEdges(self): + # check that we have selected only circular edges + selection = None + parent = None + edges = [] + # 1 selection means a single parent + if App.ActiveDocument and len(Gui.Selection.getSelection()) == 1: + parent = Gui.Selection.getSelection()[0] + # parse all sub-elemets of the selection + for i in range(len(Gui.Selection.getSelectionEx()[0].SubObjects)): + edgeObj = Gui.Selection.getSelectionEx()[0].SubObjects[i] + edgeName = Gui.Selection.getSelectionEx()[0].SubElementNames[i] + # if the edge is circular + if Asm4.isCircle(edgeObj): + edges.append( [edgeObj,edgeName] ) + # if we found circular edges + if len(edges) > 0: + selection = ( parent, edges ) + return selection + + + def Activated(self): + ( selectedObj, edges ) = self.getSelectedEdges() + for i in range(len(edges)): + edgeObj = edges[i][0] + edgeName = edges[i][1] + parentPart = selectedObj.getParentGeoFeatureGroup() + # we can create a datum only in a container + if parentPart: + parentDoc = parentPart.Document + # if the solid having the edge is indeed in an App::Part + if parentPart and (parentPart.TypeId=='App::Part' or parentPart.TypeId=='PartDesign::Body'): + # check whether there is already a similar datum, and increment the instance number + instanceNum = 1 + while parentDoc.getObject( 'HoleAxis_'+str(instanceNum) ): + instanceNum += 1 + axis = parentPart.newObject('PartDesign::Line','HoleAxis_'+str(instanceNum)) + axis.Support = [( selectedObj, (edgeName,) )] + axis.MapMode = 'AxisOfCurvature' + axis.MapReversed = False + axis.ResizeMode = 'Manual' + axis.Length = edgeObj.BoundBox.DiagonalLength + axis.ViewObject.ShapeColor = (0.0,0.0,1.0) + axis.ViewObject.Transparency = 50 + axis.recompute() + parentPart.recompute() + # + else: + FCC.PrintMessage('Datum objects can only be created inside Part or Body containers') + + + +""" + +-----------------------------------------------+ + | add the commands to the workbench | + +-----------------------------------------------+ +""" +Gui.addCommand( 'Asm4_newPoint', newDatum('Point') ) +Gui.addCommand( 'Asm4_newAxis', newDatum('Axis') ) +Gui.addCommand( 'Asm4_newPlane', newDatum('Plane') ) +Gui.addCommand( 'Asm4_newLCS', newDatum('LCS') ) +Gui.addCommand( 'Asm4_newSketch',newDatum('Sketch')) +Gui.addCommand( 'Asm4_newHole', newHole() ) + +# defines the drop-down button for Datum objects +createDatumList = [ 'Asm4_newLCS', + 'Asm4_newPlane', + 'Asm4_newAxis', + 'Asm4_newPoint', + 'Asm4_newHole' ] +Gui.addCommand( 'Asm4_createDatum', Asm4.dropDownCmd( createDatumList, 'Create Datum Object')) diff --git a/cg/freecad/Frames/Модуль технологической подготовки.md b/cg/freecad/Frames/Модуль технологической подготовки.md new file mode 100644 index 0000000..4ae744f --- /dev/null +++ b/cg/freecad/Frames/Модуль технологической подготовки.md @@ -0,0 +1,27 @@ + + +# Модуль технологической подготовки + +На вход: - step-модель описываемого оборудования. + +1. Описание имеющихся сущностей: + - Мы можем создать описание действий со станком и его состояниями для связи с окружающим миром нужен некий обобщенный объект + его свойством будет возможность воздействовать на состояния, но сам он будет любым. Думаю, нужно описать сами рычаги, а не того, кто будет их нажимать. + + - Описать объекты можно созданием зон вокруг них и/или созданием призрака геометрии оборудования (может быть сложно и избыточно). + - Для этого возможно создать параллелепипед/цилиндр, сопоставимый по габаритам с рассматриваемой зоной. С помощью инструментов верстака Part создается объект, имеющий желаемое название (Станок, рабочая зона, etc). Эта зона с помощью отношений parent привязана к геометрии станка. + +2. Описание действий + - Создается папка actions, в которую сохраняются создаваемые действия + - Интерфейс создания действий аналогичен интерфейсу задания других сущностей. Через него мы задаем ссылки на существующие действия и элементы и указываем их тип: триггеры, рабочие органы, конечные состояния, начальные состояния. Указываем их статус (выбор "да/нет") + - Указываем ссылки на привязываемую к этим действиям геометрию. (катушки, статоры, расходники и тд) Для этого их геометрия должна быть импортирована в модель. Ссылка будет указывать на конкретный импортированный файл. Если существует идентификатор детали, можно ссылаться на него. + +3. Задание состояний и переменных + - Переменные задаются средствами параметризации FreeCAD, инструменты для этого можно взять из ASM4, используя функционал переменных (Variables) и панели конфигураций. + - Для состояний переменных аналогично создается (в ASM4 уже имеется при создании модели) отдельная директория. + +4. Результатом описания будет модель, имеющая дерево объектов, в свойствах которых мы имеем всю необходимую информацию. Геометрические характеристики мы сохраняем как json и отправляем в среды, работающие с геометрией и физикой. Действия и геометрия подставляются в шаблон pddl в соответствующие абзацы. + +Пример размеченной модели: + +![Разметка](img/qXX7sBMbsvA.jpg) \ No newline at end of file