Merge remote-tracking branch 'origin/master' into rnc/t_shape_plugin

This commit is contained in:
Renaud Nédélec 2014-10-29 10:26:56 +01:00
commit 6e2763b424
555 changed files with 40803 additions and 21457 deletions

View File

@ -31,10 +31,10 @@ STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
SET(${PROJECT_NAME_UC}_MINOR_VERSION 4)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
SET(${PROJECT_NAME_UC}_VERSION
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
# Find KERNEL
# ===========
@ -67,20 +67,7 @@ OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON)
OPTION(SALOME_BUILD_GUI "Enable GUI" ON)
CMAKE_DEPENDENT_OPTION(SALOME_GEOM_USE_OPENCV "Enable shape recognition from picture" OFF
"SALOME_BUILD_GUI" OFF)
CMAKE_DEPENDENT_OPTION(SALOME_GEOM_BUILD_CC "Enable curve creator (experimental)" OFF
"SALOME_BUILD_GUI" OFF)
MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV SALOME_GEOM_BUILD_CC)
# Debug options (!!! FOR DEVELOPERS ONLY !!! TO BE REMOVED LATER !!!)
IF(CMAKE_BUILD_TYPE MATCHES "^Debug$")
CMAKE_DEPENDENT_OPTION(SALOME_GEOM_DEBUG_CC "Debug curve creator" OFF
"SALOME_GEOM_BUILD_CC" OFF)
MARK_AS_ADVANCED(SALOME_GEOM_DEBUG_CC)
IF(SALOME_GEOM_DEBUG_CC)
ADD_DEFINITIONS(-DDEBUG_CURVE_CREATOR)
ENDIF(SALOME_GEOM_DEBUG_CC)
ENDIF()
MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV)
# Prerequisites
# =============
@ -151,7 +138,7 @@ ENDIF(SALOME_BUILD_GUI)
##
FIND_PACKAGE(SalomeCAS REQUIRED)
FIND_PACKAGE(SalomeVTK 6.1 REQUIRED)
FIND_PACKAGE(SalomeVTK REQUIRED)
# OpenCV
IF(SALOME_GEOM_USE_OPENCV)
@ -234,16 +221,18 @@ INCLUDE(CMakePackageConfigHelpers)
# List of targets in this project we want to make visible to the rest of the world.
# They all have to be INSTALL'd with the option "EXPORT ${PROJECT_NAME}TargetGroup"
SET(_${PROJECT_NAME}_exposed_targets
GEOMArchimede BREPExport BREPImport BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
GEOMUtils GEOMEngine GEOM_SupervEngine IGESExport IGESImport GEOMSketcher
SalomeIDLGEOM STEPExport STEPImport STLExport STLImport ShHealOper XAO AdvancedEngine OCC2VTK
VTKExport
GEOMArchimede BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
GEOMUtils GEOMEngine GEOM_SupervEngine GEOMSketcher
SalomeIDLGEOM SalomeIDLGEOMSuperv SalomeIDLAdvancedGEOM ShHealOper XAO AdvancedEngine OCC2VTK
SalomeIDLSTLPlugin SalomeIDLBREPPlugin SalomeIDLSTEPPlugin SalomeIDLIGESPlugin SalomeIDLXAOPlugin SalomeIDLVTKPlugin
STLPluginEngine BREPPluginEngine STEPPluginEngine IGESPluginEngine XAOPluginEngine VTKPluginEngine
)
IF(SALOME_BUILD_GUI)
LIST(APPEND _${PROJECT_NAME}_exposed_targets
AdvancedGUI BasicGUI BlocksGUI BooleanGUI BuildGUI DisplayGUI DlgRef EntityGUI GEOMBase
AdvancedGUI BasicGUI BlocksGUI BooleanGUI BuildGUI DisplayGUI DlgRef CurveCreator EntityGUI GEOMBase
GEOMFiltersSelection GEOM GEOMToolsGUI GenerationGUI GroupGUI Material MeasureGUI GEOMObject
OperationGUI PrimitiveGUI RepairGUI TransformationGUI ImportExportGUI
OperationGUI PrimitiveGUI RepairGUI TransformationGUI DependencyTree
STLPluginGUI BREPPluginGUI STEPPluginGUI IGESPluginGUI XAOPluginGUI VTKPluginGUI
)
ENDIF(SALOME_BUILD_GUI)
@ -253,12 +242,6 @@ IF(SALOME_GEOM_USE_OPENCV)
)
ENDIF(SALOME_GEOM_USE_OPENCV)
IF(SALOME_GEOM_BUILD_CC)
LIST(APPEND _${PROJECT_NAME}_exposed_targets
CurveCreator
)
ENDIF(SALOME_GEOM_BUILD_CC)
# Add all targets to the build-tree export set
EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets}
FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake)

View File

@ -129,8 +129,6 @@ ENDIF(SALOME_GEOM_BUILD_GUI)
# Exposed GEOM targets:
SET(GEOM_GEOMArchimede GEOMArchimede)
SET(GEOM_BREPExport BREPExport)
SET(GEOM_BREPImport BREPImport)
SET(GEOM_BlockFix BlockFix)
SET(GEOM_GEOMbasic GEOMbasic)
SET(GEOM_GEOMAlgo GEOMAlgo)
@ -139,14 +137,16 @@ SET(GEOM_GEOMImpl GEOMImpl)
SET(GEOM_GEOMUtils GEOMUtils)
SET(GEOM_GEOMEngine GEOMEngine)
SET(GEOM_GEOM_SupervEngine GEOM_SupervEngine)
SET(GEOM_IGESExport IGESExport)
SET(GEOM_IGESImport IGESImport)
SET(GEOM_GEOMSketcher GEOMSketcher)
SET(GEOM_SalomeIDLGEOM SalomeIDLGEOM)
SET(GEOM_STEPExport STEPExport)
SET(GEOM_STEPImport STEPImport)
SET(GEOM_STLExport STLExport)
SET(GEOM_STLImport STLImport)
SET(GEOM_SalomeIDLGEOMSuperv SalomeIDLGEOMSuperv)
SET(GEOM_SalomeIDLAdvancedGEOM SalomeIDLAdvancedGEOM)
SET(GEOM_SalomeIDLSTLPlugin SalomeIDLSTLPlugin)
SET(GEOM_SalomeIDLBREPPlugin SalomeIDLBREPPlugin)
SET(GEOM_SalomeIDLSTEPPlugin SalomeIDLSTEPPlugin)
SET(GEOM_SalomeIDLIGESPlugin SalomeIDLIGESPlugin)
SET(GEOM_SalomeIDLXAOPlugin SalomeIDLXAOPlugin)
SET(GEOM_SalomeIDLVTKPlugin SalomeIDLVTKPlugin)
SET(GEOM_ShHealOper ShHealOper)
SET(GEOM_XAO XAO)
SET(GEOM_AdvancedEngine AdvancedEngine)
@ -162,17 +162,28 @@ SET(GEOM_GEOMBase GEOMBase)
SET(GEOM_GEOMFiltersSelection GEOMFiltersSelection)
SET(GEOM_GEOM GEOM)
SET(GEOM_GEOMToolsGUI GEOMToolsGUI)
SET(GEOM_DependencyTree DependencyTree)
SET(GEOM_GenerationGUI GenerationGUI)
SET(GEOM_GroupGUI GroupGUI)
SET(GEOM_Material Material)
SET(GEOM_MeasureGUI MeasureGUI)
SET(GEOM_GEOMObject GEOMObject)
SET(GEOM_OCC2VTK OCC2VTK)
SET(GEOM_VTKExport VTKExport)
SET(GEOM_OperationGUI OperationGUI)
SET(GEOM_PrimitiveGUI PrimitiveGUI)
SET(GEOM_RepairGUI RepairGUI)
SET(GEOM_TransformationGUI TransformationGUI)
SET(GEOM_ImportExportGUI ImportExportGUI)
SET(GEOM_STLPluginGUI STLPluginGUI)
SET(GEOM_STLPluginEngine STLPluginEngine)
SET(GEOM_BREPPluginGUI BREPPluginGUI)
SET(GEOM_BREPPluginEngine BREPPluginEngine)
SET(GEOM_STEPPluginGUI STEPPluginGUI)
SET(GEOM_STEPPluginEngine STEPPluginEngine)
SET(GEOM_IGESPluginGUI IGESPluginGUI)
SET(GEOM_IGESPluginEngine IGESPluginEngine)
SET(GEOM_XAOPluginGUI XAOPluginGUI)
SET(GEOM_XAOPluginEngine XAOPluginEngine)
SET(GEOM_VTKPluginGUI VTKPluginGUI)
SET(GEOM_VTKPluginEngine VTKPluginEngine)
SET(GEOM_GEOMShapeRec GEOMShapeRec)
SET(GEOM_CurveCreator CurveCreator)

View File

@ -21,8 +21,6 @@ SET(GEOM_CXXFLAGS -I${GEOM_ROOT_DIR}/include/salome) # to be removed
SET(GEOM_INCLUDE_DIRS ${GEOM_ROOT_DIR}/include/salome)
FIND_LIBRARY(GEOM_GEOMArchimede GEOMArchimede ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_BREPExport BREPExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_BREPImport BREPImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_BlockFix BlockFix ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMbasic GEOMbasic ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMAlgo GEOMAlgo ${GEOM_ROOT_DIR}/lib/salome)
@ -31,14 +29,15 @@ FIND_LIBRARY(GEOM_GEOMimpl GEOMimpl ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMUtils GEOMUtils ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMEngine GEOMEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SupervEngine GEOM_SupervEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_IGESExport IGESExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_IGESImport IGESImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMSketcher GEOMSketcher ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLGEOM SalomeIDLGEOM ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STEPExport STEPExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STEPImport STEPImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STLExport STLExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STLImport STLImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLGEOMSuperv SalomeIDLGEOMSuperv ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLSTLPlugin SalomeIDLSTLPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLBREPPlugin SalomeIDLBREPPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLSTEPPlugin SalomeIDLSTEPPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLIGESPlugin SalomeIDLIGESPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLVTKPlugin SalomeIDLVTKPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_SalomeIDLXAOPlugin SalomeIDLXAOPlugin ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_ShHealOper ShHealOper ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_XAO XAO ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_AdvancedEngine AdvancedEngine ${GEOM_ROOT_DIR}/lib/salome)
@ -54,17 +53,28 @@ FIND_LIBRARY(GEOM_GEOMBase GEOMBase ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMFiltersSelection GEOMFiltersSelection ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOM GEOM ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMToolsGUI GEOMToolsGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_DependencyTree DependencyTree ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GenerationGUI GenerationGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GroupGUI GroupGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_Material Material ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_MeasureGUI MeasureGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMObject GEOMObject ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_OCC2VTK OCC2VTK ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_VTKExport VTKExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_OperationGUI OperationGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_PrimitiveGUI PrimitiveGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_RepairGUI RepairGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_TransformationGUI TransformationGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_ImportExportGUI ImportExportGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STLPluginGUI STLPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STLPluginEngine STLPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_BREPPluginGUI BREPPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_BREPPluginEngine BREPPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STEPPluginGUI STEPPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STEPPluginEngine STEPPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_IGESPluginGUI IGESPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_IGESPluginEngine IGESPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_XAOPluginGUI XAOPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_XAOPluginEngine XAOPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_VTKPluginGUI VTKPluginGUI ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_VTKPluginEngine VTKPluginEngine ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_GEOMShapeRec GEOMShapeRec ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_CurveCreator CurveCreator ${GEOM_ROOT_DIR}/lib/salome)

View File

@ -36,28 +36,28 @@ def set_env( args ):
csf_list = ["Plugin", "GEOMDS_Resources", "ShHealing"]
for csf_file in csf_list:
uniteFiles( os.path.join( res_dir, csf_file ), os.path.join( env_dir, csf_file ) )
pass
for csf_string in csf_list:
csf_var = "CSF_" + csf_string + "Defaults"
for csf in csf_list:
uniteFiles( os.path.join( res_dir, csf ), os.path.join( env_dir, csf ) )
csf_var = "CSF_%sDefaults" % csf
if not os.getenv( csf_var ):
os.environ[ csf_var ] = env_dir
pass
pass
# find plugins
# collect plugins
plugin_list = []
resource_path_list = []
plugins_dir_var = "GEOM_ENGINE_RESOURCES_DIR"
if os.environ.has_key(plugins_dir_var):
# reverse the user's paths list, because the used 'add_path' prepends a new path,
# but we want to append it: [a, b, c] => [c, b, a]
plugins_dirs = os.environ[plugins_dir_var].split(os.pathsep)
plugins_dirs.reverse()
os.environ[plugins_dir_var] = string.join(plugins_dirs, os.pathsep)
pass
# standard plugins
plugin_list.append("BREPPlugin")
plugin_list.append("STEPPlugin")
plugin_list.append("IGESPlugin")
plugin_list.append("STLPlugin")
plugin_list.append("XAOPlugin")
plugin_list.append("VTKPlugin")
plugin_list.append("AdvancedGEOM")
# find additional plugins
for env_var in os.environ.keys():
value = os.environ[env_var]
if env_var[-9:] == "_ROOT_DIR" and value:
@ -67,29 +67,29 @@ def set_env( args ):
# look for NAMEOFPlugin.xml file among resource files
resource_dir = os.path.join(plugin_root, "share", salome_subdir, "resources", plugin.lower())
if not os.access(resource_dir, os.F_OK): continue
for resource_file in os.listdir(resource_dir):
if resource_file.endswith(".xml") and \
resource_file.lower() == plugin.lower() + ".xml":
# use "name" attribute of "geom-plugin" as name of plugin in a right case
from xml.dom.minidom import parse
try:
from xml.dom.minidom import parse
xml_doc = parse(os.path.join(resource_dir, resource_file))
plugin_nodes = xml_doc.getElementsByTagName("geom-plugin")
except:
continue
if not plugin_nodes or not plugin_nodes[0].hasAttribute("name"): continue
plugin = plugin_nodes[0].getAttribute("name")
if plugin in plugin_list: continue
# add paths of plugin
plugin_list.append(plugin)
# add paths of plugin
if not os.environ.has_key("SALOME_"+plugin+"Resources"):
resource_path = os.path.join(plugin_root, "share", salome_subdir, "resources", plugin.lower())
os.environ["SALOME_"+plugin+"Resources"] = resource_path
resource_path_list.append(resource_path)
add_path(os.path.join(plugin_root, get_lib_dir(), python_version, "site-packages", salome_subdir), "PYTHONPATH")
add_path(os.path.join(plugin_root, get_lib_dir(), salome_subdir), "PYTHONPATH")
if sys.platform == "win32":
add_path(os.path.join(plugin_root, get_lib_dir(), salome_subdir), "PATH")
add_path(os.path.join(plugin_root, "bin", salome_subdir), "PYTHONPATH")
@ -100,26 +100,13 @@ def set_env( args ):
pass
pass
pass
elif resource_file == "ImportExport" and plugin.upper() != "GEOM":
# add 'ImportExport' plugin file path into variable
add_path(resource_dir, plugins_dir_var)
# add plugin's library path into environment
if sys.platform == "win32":
add_path(os.path.join(plugin_root,get_lib_dir(),salome_subdir), "PATH")
else:
add_path(os.path.join(plugin_root,get_lib_dir(),salome_subdir), "LD_LIBRARY_PATH")
except:
continue
pass
pass
pass
plugin_list.append("GEOMActions")
pass
os.environ["GEOM_PluginsList"] = ":".join(plugin_list)
os.environ["SalomeAppConfig"] = os.environ["SalomeAppConfig"] + psep + psep.join(resource_path_list)
if os.environ.has_key(plugins_dir_var):
# reverse back the plugin paths:
# [f, e, d, c, b, a] => [a, b, c, d, e, f]
plugins_dirs = os.environ[plugins_dir_var].split(os.pathsep)
plugins_dirs.reverse()
os.environ[plugins_dir_var] = string.join(plugins_dirs, os.pathsep)
pass
pass

View File

@ -25,7 +25,7 @@ print "UnitName2 = ", UnitName2
# import shapes
Shape1 = geompy.ImportIGES(theFileName1)
Shape2 = geompy.ImportIGES(theFileName2)
Shape3 = geompy.ImportFile(theFileName2,"IGES_SCALE")
Shape3 = geompy.ImportIGES(theFileName2, True)
[Xmin1,Xmax1, Ymin1,Ymax1, Zmin1,Zmax1] = geompy.BoundingBox(Shape1)
[Xmin2,Xmax2, Ymin2,Ymax2, Zmin2,Zmax2] = geompy.BoundingBox(Shape2)
[Xmin3,Xmax3, Ymin3,Ymax3, Zmin3,Zmax3] = geompy.BoundingBox(Shape3)

View File

@ -0,0 +1,48 @@
# 2D polyline
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# create vertices
p1 = geompy.MakeVertex(70., 0., 0.)
p2 = geompy.MakeVertex(70., 70., 80.)
p3 = geompy.MakeVertex( 0., 70., 0.)
#create a vector from two points
vector_arc = geompy.MakeVector(p1, p3)
# create an arc from three points
arc = geompy.MakeArc(p1, p2, p3)
# create a wire
wire = geompy.MakeWire([vector_arc, arc])
# create a planar face
isPlanarWanted = 1
face = geompy.MakeFace(wire, isPlanarWanted)
# Create a 2D polyline with Polyline2D interface
pl = geompy.Polyline2D()
pl.addSection("section 1", GEOM.Polyline, True, [0, 0, 10, 0, 10, 10])
polyline1 = pl.result([100, 0, 0, 1, 1, 1, -1, 1, 0])
pl = geompy.Polyline2D()
pl.addSection("section 2", GEOM.Interpolation, False)
pl.addPoints([20, 0, 30, 0, 30, 10])
polyline2 = pl.result(face)
# add objects in the study
id_face = geompy.addToStudy(face,"Face")
id_polyline1 = geompy.addToStudy(polyline1, "Polyline1")
id_polyline2 = geompy.addToStudy(polyline2, "Polyline2")
# display the first polyline and the second polyline with its planar face
gg.createAndDisplayGO(id_face)
gg.setDisplayMode(id_face,1)
gg.setTransparency(id_face,0.5)
gg.createAndDisplayGO(id_polyline1)
gg.createAndDisplayGO(id_polyline2)

View File

@ -1,5 +1,7 @@
# Creation of a Cylinder
import math
import salome
salome.salome_init()
import GEOM
@ -15,19 +17,33 @@ v = geompy.MakeVector(p1, p2)
# create cylinders
height = 40
radius1 = 15
radius2 = 30
angle1 = 45. * math.pi / 180.
angle2 = 210. * math.pi / 180.
cylinder1 = geompy.MakeCylinder(p1, v, radius1, height)
radius2 = 30
cylinder2 = geompy.MakeCylinderRH(radius2, height)
cylinder3 = geompy.MakeCylinderA(p1, v, radius1, height, angle1)
geompy.TranslateDXDYDZ(cylinder3, 80., 0., 0.)
cylinder4 = geompy.MakeCylinderRHA(radius2, height, angle2)
geompy.TranslateDXDYDZ(cylinder4, 80., 0., 0.)
# add objects in the study
id_cylinder1 = geompy.addToStudy(cylinder1,"Cylinder1")
id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2")
id_cylinder3 = geompy.addToStudy(cylinder3,"Cylinder3")
id_cylinder4 = geompy.addToStudy(cylinder4,"Cylinder4")
# display the cylinders
gg.createAndDisplayGO(id_cylinder1)
gg.setDisplayMode(id_cylinder1,1)
gg.createAndDisplayGO(id_cylinder2)
gg.setDisplayMode(id_cylinder2,1)
gg.createAndDisplayGO(id_cylinder3)
gg.setDisplayMode(id_cylinder3,1)
gg.createAndDisplayGO(id_cylinder4)
gg.setDisplayMode(id_cylinder4,1)

View File

@ -11,10 +11,9 @@ box2 = geompy.MakeBox(-50,-50,-50, 0,0,0)
sphere = geompy.MakeSphere(50,50,50, 30)
fuse = geompy.MakeBoolean(box,sphere,3)
fuse_id = geompy.addToStudy(fuse,"Fuse")
box_id = geompy.addToStudy(box2, "Box")
gg = salome.ImportComponentGUI("GEOM")
gg.createAndDisplayGO(fuse_id)
gg.setDisplayMode(fuse_id,1)
gg.createAndDisplayGO(box_id)
gg.setVectorsMode(box_id, 1)
gg.setVectorsMode(fuse_id, 1)
gg.setVerticesMode(fuse_id, 1)

View File

@ -25,12 +25,23 @@ SALOME_CONFIGURE_FILE(doxyfile_tui.in doxyfile_tui)
SALOME_CONFIGURE_FILE(static/header.html.in ${CMAKE_CURRENT_BINARY_DIR}/static/header.html)
SALOME_CONFIGURE_FILE(static/header_py.html.in ${CMAKE_CURRENT_BINARY_DIR}/static/header_py.html)
# Generate a temporary python file, needed for the genaration of the documentation
# of the built-in Geometry plugins.
SET(DOC_GEOM_PluginsList AdvancedGEOM STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin VTKPlugin)
SALOME_ACCUMULATE_ENVIRONMENT(GEOM_PluginsList NOCHECK ${DOC_GEOM_PluginsList})
SET(geom_file "${CMAKE_CURRENT_SOURCE_DIR}/collect_geom_methods.py")
SET(plugins_cmd_options ${geom_file} -o tmp1/geomBuilder.py ${DOC_GEOM_PluginsList})
SALOME_GENERATE_ENVIRONMENT_SCRIPT(plugins_cmd env_script "${PYTHON_EXECUTABLE}" "${plugins_cmd_options}")
# Install a script
SALOME_INSTALL_SCRIPTS(collect_geom_methods.py ${SALOME_INSTALL_BINS})
SET(f "$ENV{KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py")
IF(WIN32)
STRING(REPLACE "/" "\\" f ${f})
ENDIF(WIN32)
ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp
COMMAND ${CMAKE_COMMAND} -E make_directory tmp1
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/geomBuilder.py ${CMAKE_SOURCE_DIR}/src/GEOM_SWIG/geomBuilder.py
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/gsketcher.py ${CMAKE_SOURCE_DIR}/src/GEOM_SWIG/gsketcher.py
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/geomtools.py ${CMAKE_SOURCE_DIR}/src/GEOM_PY/geomtools.py
@ -38,10 +49,12 @@ ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/structelem.py ${CMAKE_SOURCE_DIR}/src/GEOM_PY/structelem/__init__.py
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/parts.py ${CMAKE_SOURCE_DIR}/src/GEOM_PY/structelem/parts.py
COMMAND ${PYTHON_EXECUTABLE} ${f} -o tmp/orientation.py ${CMAKE_SOURCE_DIR}/src/GEOM_PY/structelem/orientation.py
COMMAND ${plugins_cmd}
COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_tui
COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py
COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
COMMAND ${CMAKE_COMMAND} -E remove_directory tmp
COMMAND ${CMAKE_COMMAND} -E remove_directory tmp1
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

View File

@ -0,0 +1,148 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
#################################################################################
#
# File: collect_geom_methods.py
# Author: Roman NIKOLAEV, Open CASCADE S.A.S (roman.nikolaev@opencascade.com)
#
#################################################################################
#
# Extraction of the methods dynamically added by the Geometry
# module plug-in(s) to the geomBuilder class.
#
# This script is intended for internal usage - only
# for generatation of the extra developer documentation for
# the Geometry module plug-in(s).
#
# Usage:
# collect_geom_methods.py <plugin_name>
# where
# <plugin_name> is a name of the plug-in module
#
# Notes:
# - the script is supposed to be run in correct environment
# i.e. PYTHONPATH, GEOM_PluginsList and other important
# variables are set properly; otherwise the script will fail.
#
################################################################################
import sys
import inspect
def generate(plugin_name, output):
plugin_module_name = plugin_name + "Builder"
plugin_module = "salome.%s.%s" % (plugin_name, plugin_module_name)
import_str = "from salome.%s import %s" % (plugin_name, plugin_module_name)
exec( import_str )
exec( "import %s" % plugin_module )
exec( "mod = %s" % plugin_module )
functions = []
for attr in dir( mod ):
if attr.startswith( '_' ): continue # skip an internal methods
item = getattr( mod, attr )
if type( item ).__name__ == 'function':
if item not in functions:
functions.append( item )
pass
pass
pass
if functions:
for function in functions:
comments = inspect.getcomments(function)
if comments:
comments = comments.strip().split("\n")
comments = "\t" + "\n\t".join(comments)
output.append(comments)
pass
sources = inspect.getsource(function)
if sources is not None:
sources_list = sources.split("\n")
sources_new_list = []
found = False
for item in sources_list:
if '"""' in item:
if found == True:
found = False
continue
else:
found = True
continue
pass
pass
if found == False :
sources_new_list.append(item)
pass
pass
sources = "\n".join(sources_new_list)
sources = "\t" + sources.replace("\n", "\n\t")
output.append(sources)
pass
pass
pass
pass
if __name__ == "__main__":
import optparse
parser = optparse.OptionParser(usage="%prog [options] plugin")
h = "Output file (geomBuilder.py by default)"
parser.add_option("-o", "--output", dest="output",
action="store", default=None, metavar="file",
help=h)
h = "If this option is True, dummy help for geomBuiler class is added. "
h += "This option should be False (default) when building documentation for Geometry module "
h += "and True when building documentation for Geometry module plug-ins."
parser.add_option("-d", "--dummy-geom-help", dest="dummygeomhelp",
action="store_true", default=False,
help=h)
(options, args) = parser.parse_args()
if len( args ) < 1: sys.exit("Plugin name is not specified")
f = open(options.output, "w")
output = []
if options.dummygeomhelp:
output.append( "## @package geomBuilder" )
output.append( "# Documentation of the methods dynamically added by the " + plugin_name + " Geometry plug-in to the geomBuilder class." )
# Add dummy Geometry help
# This is supposed to be done when generating documentation for Geometry module plug-ins
output.append( "# @note The documentation below does not provide complete description of class @b %geomBuilder" )
output.append( "# from @b geomBuilder package. This documentation provides only information about" )
output.append( "# the methods dynamically added to the %geomBuilder class by the " + plugin_name + " plugin" )
output.append( "# For more details on the %geomBuilder class, please refer to the SALOME %Geometry module" )
output.append( "# documentation." )
pass
else:
# Extend documentation for geomBuilder class with information about dynamically added methods.
# This is supposed to be done only when building documentation for Geometry module
output.append( "## @package geomBuilder" )
output.append( "# @note Some methods are dynamically added to the @b %geomBuilder class in runtime by the" )
output.append( "# plug-in modules. If you fail to find help on some methods in the documentation of Geometry module, " )
output.append( "# try to look into the documentation for the Geometry module plug-ins." )
pass
output.append("class geomBuilder():")
for arg in args:
generate( arg, output )
pass
for line in output: f.write( line + "\n" )
f.close()

View File

@ -99,7 +99,14 @@ EXAMPLE_RECURSIVE = NO
#---------------------------------------------------------------------------
#Input related options
#---------------------------------------------------------------------------
INPUT = tmp @CMAKE_SOURCE_DIR@/idl/GEOM_Gen.idl
INPUT = tmp tmp1 @CMAKE_SOURCE_DIR@/idl/GEOM_Gen.idl \
@CMAKE_SOURCE_DIR@/idl/AdvancedGEOM_Gen.idl \
@CMAKE_SOURCE_DIR@/idl/STLPlugin.idl \
@CMAKE_SOURCE_DIR@/idl/BREPPlugin.idl \
@CMAKE_SOURCE_DIR@/idl/STEPPlugin.idl \
@CMAKE_SOURCE_DIR@/idl/IGESPlugin.idl \
@CMAKE_SOURCE_DIR@/idl/XAOPlugin.idl \
@CMAKE_SOURCE_DIR@/idl/VTKPlugin.idl
FILE_PATTERNS =
IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/src/GEOM_SWIG

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
doc/salome/gui/GEOM/images/dialog.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
doc/salome/gui/GEOM/images/pref15.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -20,6 +20,7 @@ parent object is highlighted with bold font.</li>
and then displays only the children of the selected object(s).
</li>
\anchor publish_hidden_objects
<li><b>Unpublish</b> - hides the selected geometric object from the Object Browser
and erases it from all viewers. To publish unpublished geometric objects select in the
context menu of the <b>Geometry</b> root object <b>Publish...</b> item.
@ -34,6 +35,12 @@ and then displays only the children of the selected object(s).
unpublished objects are sorted by name in ascending order. It is possible
to change the order (ascending / descending) by clicking the corresponding title bar of the objects list.
</li>
<li>\ref dependency_tree_page "Show dependency tree" - shows dependency tree of selected objects
in new 2D View Window.</li>
<li>\ref reduce_study_page "Reduce study" - allows to reduce study
by automatic removing objects according to user's options.</li>
</ul>
<h2> Folders </h2>

View File

@ -15,6 +15,7 @@ geometrical objects as:
<li>\subpage create_isoline_page</li>
<li>\subpage create_sketcher_page</li>
<li>\subpage create_3dsketcher_page</li>
<li>\subpage create_polyline_page</li>
<li>\subpage create_vector_page</li>
<li>\subpage create_plane_page</li>
<li>\subpage create_lcs_page</li>

View File

@ -10,20 +10,33 @@ Entity - > Primitives - > Cylinder</b>
\n Firstly, you can define a \b Cylinder by the <b>Base Point</b> (the central
point of the cylinder base), the \b Vector (the axis of the cylinder),
and its dimensions: the Radius and the Height.
and its dimensions: the \b Radius and the \b Height. Also, you can optionally specify
the \b Angle in order to create a portion of cylinder.
\n <b>TUI Command:</b> <em>geompy.MakeCylinder(Point, Axis, Radius, Height)</em>
\n <b>Arguments:</b> Name + 1 vertex + 1 vector + 2 values
(Dimensions: radius and height).
\n <b>TUI Command:</b> <em>geompy.MakeCylinderA(Point, Axis, Radius, Height, Angle)</em>
\n <b>Arguments:</b> Name + 1 vertex + 1 vector + 3 values
(Dimensions: radius, height and angle).
\image html cylinder1.png
\n Secondly, you can define a \b Cylinder by the given radius and the
height at the origin of coordinate system. The axis of the cylinder
\n Secondly, you can define a \b Cylinder by the given \b Radius and
\b Height at the origin of coordinate system. The axis of the cylinder
will be collinear to the OZ axis of the coordinate system.
Similarly to first constructor, you can optionally specify the \b Angle
in order to create a portion of cylinder.
\n <b>TUI Command:</b> <em>geompy.MakeCylinderRH(Radius, Height)</em>
\n <b>Arguments:</b> Name + 2 values (Dimensions at origin: radius and
height).
\n <b>TUI Command:</b> <em>geompy.MakeCylinderRHA(Radius, Height, Angle)</em>
\n <b>Arguments:</b> Name + 3 values
(Dimensions at origin: radius, height and angle).
\image html cylinder2.png
<b>Example:</b>

View File

@ -25,11 +25,13 @@ sub-shapes of a given Type and returns a List of sub-shapes.</li>
sub-shapes of a given Type and returns a List of IDs of
sub-shapes.</li>
<li><em>geompy.SubShapeAllSortedCentres(Shape, Type)</em> explodes a
shape on sub-shapes of a given type and sorts them by coordinates of
their gravity centers, returning a list of sub-shapes.</li>
shape on sub-shapes of a given type and sorts them taking into account
their gravity centers, to provide stable order of sub-shapes.
It returns a list of sub-shapes.</li>
<li><em>geompy.SubShapeAllSortedCentresIDs(Shape, Type)</em> explodes
a shape on sub-shapes of a given type and sorts them by coordinates of
their gravity centers, returning a List of IDs of sub-shapes.</li>
a shape on sub-shapes of a given type and sorts them taking into
account their gravity centers, to provide stable order of sub-shapes.
It returns a List of IDs of sub-shapes.</li>
<li><em>geompy.SubShape(Shape, Type, ListOfInd)</em> allows to obtain
a compound of sub-shapes of the Shape, selected by they indices in a
list of all sub-shapes of the given Type. Each index is in the range

View File

@ -0,0 +1,107 @@
/*!
\page create_polyline_page 2D Polyline
The 2D Polyline allows drawing arbitrary 2D shapes.
To create a <b>2D Polyline</b> select in the main menu <b>New Entity -> Basic -> 2D Polyline</b>.
\image html polyline_dlg.png
A polyline represents a section or a set of sections. Each section is constructed from a sequence of 2D points
connected either by linear setgments or an interpolation curve. Every section has its own attributes:
- \b Name,
- \b Type (Polyline or Spline),
- \b Closed flag.
A Polyline created represents a shape that lies on the XOY plane. It can have the following types:
- \b Vertex for a single section with only 1 point.
- \b Wire for a single section with 2 or more points. A Wire can have multiple edges for more then 2 points if the section type is Polyline.
A single edge in the result wire is obtained for a Spline or Polyline with 2 points.
- \b Compound of Wires and/or Vertices if there are several sections.
For the moment only one reference coordinate system for polyline creation is supported. The XOY plane of the <b>Global coordinate system</b>
is suggested. Implementation of another reference coordinate system is a subject of further development of this functionality.
Restore button orientates the viewer correspondingly to the chosen working plane and fits the scene to show all objects.
For the moment this button works with only one plane.
It is possible to import a shape in this dialog using <b>Import polyline</b> selection button. To do it an imported object should satisfy conditions
for polyline shapes mentioned above. If a valid shape is selected, when dialog is opened, it is initialized by this shape.
Though the shape can be on any plane, an imported polyline will be defined on XOY plane only due to the limitation.
The group \b Sections in this dialog represents the Polyline construction framework. Its toolbar has the following operations:
- \b Undo
- \b Redo
- <b>Insert new section</b>
- <b>Addition mode</b>
- <b>Modification mode</b> - not implemented
- <b>Detection mode</b> - not implemented
- \b Remove
- <b>Join selected sections</b>
<b>Undo/Redo</b> buttons allows to undo/redo changes of the polyline.
<b>Insert new section</b> button opens a dialog that allows to add a new section:
\image html polyline_dlg_add_section.png
In this dialog it is possible to choose:
- \b Name of section
- \b Type of section
- \b Closed flag
To create a new section \b Add button should be clicked. \b Cancel button is used to cancel this operation.
After clicking \b Add button a new section is appeared on the list. Its name supplemented by its type and closedness
information (see icon) and the number of points (equal to 0 after creation).
To modify section parameters it is possible to double-click on a section in the list. In this case the following dialog appears:
\image html polyline_dlg_edit_section.png
To apply modifications the button \b Ok should be clicked.
<b>Addition mode</b> allows to add points to a section. It is necessary to select a particular section in a list of sections
and make some mouse clicks in the viewer. A section preview is recomputed after each click.
<b>Modification mode</b> and <b>Detection mode</b> are not implemented for the moment.
\b Remove button allows to remove a section. It is available if all modes are deactivated and one section is selected.
<b>Join selected sections</b> button is available in modification mode if two or more sections are selected. It is used to
merge several sections into the first one from selection list. Joined section has parameters of the first selected one. Points of
the other sections are appended at the end of the list of the first section points.
Some actions are available via popup menu by right mouse button click.
If all modes are deactivated:
- <b>Join all sections</b> - join all defined sections into the first one.
- \b Join - join sections. Available if two or more sections are selected.
In <b>Addition mode</b>:
- <b>Join all sections</b> - join all defined sections into the first one.
In <b>Modification mode</b>:
- <b>Join all sections</b> - join all defined sections into the first one.
- \b Join - join sections. Available if two or more sections are selected.
- <b>Clear all</b> - remove all sections. Available if at least one section is selected.
- <b>Set closed</b> - set all selected section's Closed flag. Available if at least one section is selected.
- <b>Set open</b> - reset all selected section's Closed flag. Available if at least one section is selected.
- <b>Set polyline</b> - set all selected section's type to Polyline. Available if at least one section is selected.
- <b>Set spline</b> - set all selected section's type to Spline. Available if at least one section is selected.
In <b>Detection mode</b>:
- <b>Join all sections</b> - join all defined sections into the first one.
- \b Join - join sections. Available if two or more sections are selected.
<h2>TUI Commands</h2>
To create the 2D polyline in TUI Polyline2D interface is used.
<em>pl = geompy.Polyline2D()</em> - returns an instance of Polyline2D interface <i>pl</i>.
See the \ref gsketcher.Polyline2D "Polyline2D" interface documentation for more information.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_polyline_page "2D Polyline".
*/

View File

@ -0,0 +1,211 @@
/*!
\page dependency_tree_page Dependency Tree
<ul>
<li>\ref dependency_tree_general_description_anchor "General description"</li>
<li>\ref dependency_tree_nodes_anchor "Nodes" </li>
<li>\ref dependency_tree_links_anchor "Links" </li>
<li>\ref dependency_tree_operations_anchor "Operations" </li>
<li>\ref dependency_tree_navigation_anchor "Navigation" </li>
<li>\ref dependency_tree_popup_menu_anchor "Context menu"</li>
</ul>
\anchor dependency_tree_general_description_anchor <h2>General description</h2>
In order to better understand the relations between the %GEOM
objects in a study the user has a possibility to display the
ascendants and descendant of the object(s) in a family tree.
User can build the dependency tree by selecting desirable object
in Object Browser or OCC Viewer and calling "Show dependency tree"
popup item. It will open a new or clear the existing "Dependency
Tree" view window (only one view is supported) and display a
dependency tree for the selected object or objects (multiple
selection is supported). Also user can rebuild the tree if to select
some object(s) right in the "Dependency Tree" view and call
"Rebuild the tree" popup menu item.
\image html tree_example.png
User can change all necessary parameters of Dependency Tree Viewer
in \ref pref_dependency_tree "Preferences".
<hr>
\anchor dependency_tree_nodes_anchor <h2>Nodes</h2>
Tree nodes in the Dependency Viewer are named according to the study
names of the corresponding objects.
Non-published objects are shown in the tree as "unpublished" and
colored in special color.
All nodes have the fixed size, so the long names are cut and shown
with ellipsis; full name of the object can be seen in the tooltip
if to keep the cursor over the node.
"Dependency Tree" view supports the following states of nodes:
<ul><li><b>Main node</b> - node of main object(s), which were selected in Object
Browser, OCC Viewer or Dependency Tree Viewer in order to build the
dependency tree;</li></ul>
\image html tree_main_node.png
<ul><li><b>Default node</b> - node of published in study object, which participate in building of
dependency tree as ascendant or descendant;</li></ul>
\image html tree_default_node.png
<ul><li><b>Unpublished node</b> - the same as "Default node", but
corresponding object was not published in study;</li></ul>
\image html tree_unpublished_node.png
<ul><li><b>Highlighted node</b> - the state of node when mouse
cursor is over it;</li></ul>
\image html tree_highlighted_node.png
<ul><li><b>Selected node</b> - the state of node when user
clicks the left mouse button on node.</li></ul>
\image html tree_selected_node.png
<hr>
\anchor dependency_tree_links_anchor <h2>Links</h2>
Dependency Tree Viewer shows oriented links between nodes to
represent dependency direction. Viewer supports the following states
of links:
<ul><li><b>Unidirectional link</b> - shows that A object depends on
B object;</li></ul>
\image html tree_unidir_link.png
<ul><li><b>Bidirectional link</b> - shows that A object depends on
B object and, at the same time, B object depends on
A object;</li></ul>
\image html tree_bidir_link.png
<ul><li><b>Self-dependency link</b> - shows that object depends on
itself;</li></ul>
\image html tree_selfdep_link.png
<ul><li><b>Cyclic dependency links</b> - shows cyclic dependency of
some nodes.</li></ul>
\image html tree_cycldep_link.png
<hr>
\anchor dependency_tree_operations_anchor <h2>Operations</h2>
The dependency tree of a chosen %GEOM object is displayed in
the dedicated 2D view window.
\n The functionalities of 2D viewer are available via its Viewer
Toolbar.
Buttons marked with small downward triangles have extended
functionality which can be accessed by locking on them with left
mouse button.
\image tree_tool_bar
<b>Dump View</b> - exports an object from the viewer in bmp, png or
jpeg image format.
\image html tree_view_dump.png
<b>Fit all</b> - scales the presentation so that it could fit within
the Viewer boundaries.
\image html tree_view_fitall.png
<b>Fit area</b> - resizes the view to place in the visible area only
the contents of a frame drawn with pressed left mouse button.
\image html tree_view_fitarea.png
<b>Fit selection</b> - resizes the view to fit in the visible area
only currently selected objects.
\image html tree_view_fitselect.png
<b>Zoom</b> - allows to zoom in and out.
\image html tree_view_zoom.png
<b>Panning</b> - if the represented objects are greater that the
visible area and you don't wish to use <b>Fit all</b> functionality,
click on this button and you'll be able to drag the scene to see its
remote parts.
\image html tree_view_pan.png
<b>Global panning</b> - allows to select a point to be the center of
the presentation showing all displayed objects in the visible ares.
\image html tree_view_glpan.png
<b>Hierarchy depth</b> - allows to change the number of hierarchy
levels to be shown in the dependency tree.
\image html tree_hierarchy_type.png
<ul>
<li>Level 1 corresponds to the parents and children of the selected
object(s);</li>
<li>Level 2 is Level 1 plus the grand-parents and grand-children
of the selected object(s);</li>
<li>etc...</li>
</ul>
<b>Display ascendants</b> - allows user to control the displaying
of ascendants.
\image html tree_disp_ascendants.png
<b>Display descendants</b> - allows user to control the displaying
of descendants.
\image html tree_disp_descendants.png
<b>Move nodes</b> - enables/disables of moving the nodes.
\image html tree_move_nodes.png
<b>Update</b> - allows user to update a dependency tree model and the view.
\image html tree_button_update.png
<hr>
\anchor dependency_tree_navigation_anchor <h2>Navigation</h2>
Dependency Tree 2D Viewer supports the following navigation mode:
<ul>
<li>rectangle selection in this mode is performed by the left mouse
button</li>;
<li>multiple selection is available when \b Shift button
is pressed.</li>
</ul>
Also, holding \b Ctrl key with pressed mouse buttons performs
the following view transformations:
<ul>
<li>Ctrl + left mouse button - zooming;</li>
<li>Ctrl + middle mouse button - panning;</li>
</ul>
<hr>
\anchor dependency_tree_popup_menu_anchor <h2>Popup Menu</h2>
After the object has appeared in the Dependency Tree 2D Viewer,
user can select it with left mouse click to change its presentation
parameters and get access to other useful options by right-clicking on
the selected object.
\image html tree_popup_menu1.png
<ul>
<li>\b Show - allows to show selected object(s) in OCC 3D Viewer;</li>
<li><b> Show Only</b> - allows to show only selected object(s)
in OCC 3D Viewer;</li>
<li><b> Rebuild the tree</b> - allows to rebuild the dependency tree
for selected object(s);</li>
<li>\ref reduce_study_page "Reduce study" - allows to reduce study.</li>
</ul>
Some functionalities are available through right-clicking on
the viewer background:
\image html tree_popup_menu2.png
Dependency Tree 2D Viewer background can be customized using the
"Change background" popup menu command that opens standard
"Select Color" dialog box:
\image html selectcolor.png
*/

View File

@ -29,6 +29,17 @@ functionality for all objects in the current view via the main menu
\n <b>TUI Command:</b> <em>gg.setVectorsMode(ID, Bool)</em>
\n Also it is possible to show the vertices of the selected
shape. For this, choose in the context menu of the shape
<b>Display mode -> Show Vertices</b>, or apply this
functionality for all objects in the current view via the main menu
<b> View -> Display Mode -> Show/Hide Vertices.</b>
\image html vertices_mode.png
<center><em>Vertices Mode (Show Vertices)</em></center>
\n <b>TUI Command:</b> <em>gg.setVerticesMode(ID, Bool)</em>
Our <b>TUI Scripts</b> provide you with useful examples of
\ref tui_change_disp_mode "Changing Display Parameters".

View File

@ -2,6 +2,8 @@
\page geometry_preferences_page Geometry preferences
\anchor pref_settings <h2>Settings</h2>
In the \b Geometry module you can set preferences for visualisation of
geometrical figures, which can be used in later sessions with this module.
There is also a special group of preferences controlling input
@ -31,8 +33,21 @@ default color for edges, vectors and wires (isolated lines).</li>
vertices.</li>
<li><b>Color of isolines</b> - allows to select default color for
isolines.</li>
<li><b>Step value for spin boxes</b> - allows to define the increment
of values set in spin boxes.</li>
<li><b>Top level color</b> - allows to select default color for objects which
were brought to the viewer foreground.</li>
<li><b>Top level display mode</b> - allows to select default top level display mode between:</li>
<ul>
<li><b>Show additional wireframe actor</b> - allows to have the shading actor at its usual
place (in the back) and add the additional wireframe actor in the viewer foreground.</li>
<li><b>Keep current display mode</b> - allows to use current display mode of object.</li>
<li><b>Wireframe</b> - allows to switch display mode to wireframe mode after
"top-level" operation.</li>
<li><b>Shading</b> - allows to switch display mode to shading mode after
"top-level" operation.</li>
<li><b>Shading With Edges</b> - allows to switch display mode to shading with edges mode after
"top-level" operation.</li>
</ul>
<li><b>Transparency</b> - allows to define default transparency value.</li>
<li><b>Deflection coefficient</b> - allows to define default deflection
coefficient for lines and surfaces. A smaller coefficient provides
better quality of a shape in the viewer.</li>
@ -44,6 +59,8 @@ predefined materials.</li>
<li><b>Isolines width</b> - allows to define default width of the isolines.</li>
<li><b>Preview edges width</b> - allows to define width of the edges for preview.</li>
<li><b>Measures line width</b> - allows to define lines width of measurements tools.</li>
<li><b>Step value for spin boxes</b> - allows to define the increment
of values set in spin boxes.</li>
<li><b>Automatic bring to front</b> - when the option is on, the objects selected by the user automatically become "top-level".</li>
</ul>
@ -128,5 +145,35 @@ system immediately after the module activation.</li>
</ul>
</ul>
\anchor pref_dependency_tree <h2>Dependency Tree</h2>
Also user can set preferences for visualisation of <b>Dependency Tree</b> in 2D Viewer.
\image html pref_dep_tree.png
<ul>
<li><b>General</b></li>
<ul>
<li><b>Hierarchy type</b> - allows to choose default displaying mode of dependency tree.</li>
<li><b>Possibility to move nodes</b> - enable/disable the possibility of moving nodes by default.</li>
</ul>
</ul>
<ul>
<li><b>Color</b></li>
<ul>
<li><b>Background color</b> - allows to select default background color.</li>
<li><b>Default node color</b> - allows to select default node color.</li>
<li><b>Main node color</b> - allows to select default main node color.</li>
<li><b>Unpublished node color</b> - allows to select default node color
for unpublished objects.</li>
<li><b>Selected node color</b> - allows to select default selected node color.</li>
<li><b>Default arrow color</b> - allows to select default arrow color.</li>
<li><b>Highlighted arrow color</b> - allows to select default highlighted
arrow color.</li>
<li><b>Selected arrow color</b> - allows to select default selected
arrow color.</li>
</ul>
</ul>
*/

View File

@ -2,34 +2,44 @@
\page import_export_geom_obj_page Importing/exporting geometrical objects
In Geometry module you can import and export geometrical objects
from/into BREP, IGES, STEP, ACIS and STL files. The mechanisms of import and export
are implemented via plug-ins, which gives the opportunity to
expand the range of available formats by adding more plug-ins (for
example, CATIA 5).
\tableofcontents
The \subpage xao_format_page "import and export of shapes in XAO format" is implemented differently.
\section io_general General information
In Geometry module you can import and export geometrical objects
from/into \b BREP, \b IGES, \b STEP, \b STL, \b XAO, \b VTK (only export)
and others files.
The mechanisms of import and export are implemented via plugins,
which gives the opportunity to expand the range of available formats
by adding more plugins (for example, CATIA 5 or ACIS).
\note If a plugin supports import of materials associated with shapes, these
shapes are grouped corresponding to the imported materials. For the moment STEP
import is the only plugin that supports this feature.
<em>To import geometrical objects from a BREP, IGES, STEP, ACIS or STL file:</em>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_import_export_page
\section io_import Import file
<em>To import geometrical objects from a BREP, IGES, STEP or STL file:</em>
\par
From the \b File menu choose \b Import. In the opening dialog box \b Import
select the required format of the file for importation and search for
a *.brep, *.iges, *.step, *.sat or *.stl file.
From the \b File menu choose <b>Import/<FormatName></b>, where <b><FormatName></b> is a name
of desirable format. In the <b>Import <FormatName></b> dialog box select the file to import
and press \b Open. The file will be imported in the module and its contents (geometrical object)
will be displayed in the <b>Object Browser</b>.
The dialog box to import the file can provide additional parameters.
For example, dialog box for importing files in STL format:
\image html geomimport.png
\par
Select the required file and click \b Open. Your file will be imported in
the module and its contents (geometrical object) will be displayed in
the <b>Object Browser</b>.
\note If the selected file is in IGES or STEP format and the length
is not expressed in meters, it will be asked whether to take or not these
\note If the selected file is in IGES or STEP format and the model size
is not expressed in meters, the user will be asked whether to take or not the
units into account (see the picture below). This feature can be
helpful if some wrong units have been written to the IGES or STEP file by a
3rd-party software.
@ -38,15 +48,6 @@ helpful if some wrong units have been written to the IGES or STEP file by a
\par
\note If the selected file is in ACIS format (the use of this format
requires licensing) and the file contains names for some shapes, it
will be suggested to create groups by types (solid, face, edge and
vertex) for all named shapes:
\image html sat_named_shapes.png
\par
\note It is possible to re-open from the initial file a previously imported shape if
the file has been changed on disk. For this, select
<b>Reload From Disk</b> in the context menu of the imported
@ -55,21 +56,52 @@ as before this operation.
\image html geomimport_reopen.png
\n <em>To export geometrical objects into a BREP, IGES, STEP, ACIS or STL
\section io_export Export file
\n <em>To export geometrical objects into a BREP, IGES, STEP, STL or VTK
file:</em>
\par
Select the object you wish to export, then from the \b File menu choose
\b Export. In the opening dialog box \b Export define the required format,
the name and the location of the file for exportation.
<b>Export/<FormatName></b>, where <b><FormatName></b> is a name of desirable format.
In the <b>Export <FormatName></b> dialog box define the name and the location
of the file to export and press \b Save.
The dialog box to export the file can provide additional advanced parameters.
For example, dialog box for exporting files in STL format:
\image html geomexport.png
\par
Click \b Save to confirm your exportation.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_import_export_page
\section io_xao Import and export of shapes in XAO format
XAO is a file format which describes a shape with its topology, groups and fields.
<em>To import a shape in the \b XAO format:</em>
\par
In the \b File menu select <b>Import/XAO</b>.
\image html importxao_dlg.png
\par
<em>To export a shape in the \b XAO format:</em>
\par
In the \b File menu select <b>Export/XAO</b>.
\image html exportxao_dlg.png
In this dialog:
- Click the arrow button and select in the Object Browser or in the Viewer the <b>Shape</b> to be exported.
- Input the <b>File name</b> to create a new file or click browse button to save in an existing file.
- Select the \b Groups of the chosen shape to be exported.
- Select the \b Fields of the chosen shape to be exported.
- Press "Apply" or "Apply & Close" button to get the result.
It also possible to export a shape using the TUI Command: <em>geompy.ExportXAO(Shape, FileName, Groups, Fields)</em>
*/

View File

@ -6,7 +6,7 @@
\b Geometry module of SALOME is destined for:
- \subpage import_export_geom_obj_page "import and export of geometrical models"
in IGES, BREP, STEP, ACIS and STL formats;
in IGES, BREP, STEP, STL, XAO and VTK formats;
- \subpage create_geom_obj_page "construction of geometrical objects"
using a wide range of functions;
- \subpage view_geom_obj_page "viewing geometrical objects" in the OCC

View File

@ -0,0 +1,58 @@
/*!
\page reduce_study_page Reduce Study
The user sometimes needs to keep in the study only some objects that
present the final result(s) of the design operations and to delete all
other objects which do not contribute to these results.
The feature is especially useful when the user designs the whole model
through the GUI and wants to generate simplified "clean" Python dump only
at the end of the model construction with no "useless" objects in the
%GEOM module.
User can open dialog box by selecting desirable object(s) in Object
Browser or OCC Viewer and calling "Reduce study" popup item.
\image html reduce_study_dialog.png
<ul>
<li><b> Objects to be kept</b> - objects that will be kept in the study after
applying operation of reduce study. The list of objects being selected by
the user are highlighted in bold font.</li>
<li><b> Objects to be removed</b> - objects that will be deleted.</li>
\note Mentioned views provide possibility to show/hide object(s) in
current Viewer using "eye" icon near each item of tree. Also user can
show/hide ALL objects in tree by clicking "eye" icon in the head of tree view.
<li><b> Intermediate objects</b> group box allows to choose an action
that will be performed with the objects that took part in the operations
chain to produce the selected object(s):
<ul>
<li>Keep - object(s) will be kept in the study;</li>
<li>Unpublish - object(s) will be unpublished (hidden) from the study;</li>
<li>Remove - object(s) will be removed from the study. \note Since use of
this option can lead to the broken Dump Python script, the warning message
will be shown at the operation commiting to confirm/reject removing
intermediate objects.</li>
</ul>
</li>
<li><b> Sub-objects</b> group box allows to choose the same operations for
sub-objects of selected item(s): keep, unpublish or remove.</li>
<li><b> Remove empty folders</b> - if this option is checked, then all folders,
which will become empty after removing unused objects from the study,
will be also removed; otherwise, empty folders will be kept.</li>
<li><b> Soft removal</b> - if this option is checked, operation will just
unpublish the redundant objects from the study instead of their hard delete.
\n Soft removal would keep all the data in the study to give the user a
chance to revert this operation using \ref publish_hidden_objects
"Publish Objects" dialog box.</li>
</ul>
*/

View File

@ -10,7 +10,7 @@ geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# create ExportXAO object
exportxao = geompy.MakeExportXAO([value], [value], [value], [value])
exportxao = geompy.ExportXAO([value], [value], [value], [value])
# add object in the study
id_exportxao = geompy.addToStudy(exportxao,"ExportXAO")

View File

@ -0,0 +1,6 @@
/*!
\page tui_polyline_page 2D Polyline
\tui_script{polyline.py}
*/

View File

@ -21,6 +21,7 @@ other useful options by right-clicking on the selected object.
object.</li>
<li><b>Delete</b> - irreversibly deletes the selected object from the
viewer and from the Object Browser.</li>
<li><b>Create Group</b> - allows to create group.</li>
<li>\subpage display_mode_page "Display Mode" - allows to select between
Wireframe and Shading presentation.</li>
<li>\subpage bring_to_front_page "Bring To Front" - allows to bring to
@ -63,6 +64,10 @@ geometrical object. TUI Command: <em>sg.DisplayOnly(ID)</em></li>
<li><b>Show all dimensions</b> - shows all of the persistent dimensions created for the selected geometrical object.</li>
<li><b>Hide all dimensions</b> - hides all of the persistent dimensions created for the selected geometrical object.</li>
<li>\subpage dependency_tree_page "Show dependency tree" - shows dependency tree of selected objects
in new 2D View Window.</li>
<li>\subpage reduce_study_page "Reduce study" - allows to reduce study
by automatic removing objects according to user's options.</li>
<li><b>Dump view</b> - exports an object from the viewer in bmp, png,
jpg or jpeg image format.</li>
<li><b>Change background</b> - allows to redefine the background

View File

@ -1,24 +0,0 @@
/*!
\page xao_format_page Import and export of shapes in XAO format
XAO is a file format which describes a shape with its topology, groups and fields.
To import a shape in the \b XAO format, in the <b>Main Menu</b> select <b>New Entity ->
Import / Export -> Import XAO. </b>
To export a shape in the \b XAO format, in the <b>Main Menu</b> select <b>New Entity ->
Import / Export -> Export XAO. </b>
\image html exportxao_dlg.png
In this dialog:
- Click the arrow button and select in the Object Browser or in the Viewer the <b>Shape</b> to be exported.
- Input the <b>File name</b> to create a new file or click browse button to save in an existing file.
- Select the \b Groups of the chosen shape to be exported.
- Select the \b Fields of the chosen shape to be exported.
- Press "Apply" or "Apply & Close" button to get the result.
It also possible to export a shape using the TUI Command: <em>geompy.MakeExportXAO(Shape, FileName, Groups, Fields)</em>
*/

479
idl/AdvancedGEOM.idl Normal file
View File

@ -0,0 +1,479 @@
// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : AdvancedGEOM.idl
// Author : Roman NIKOLAEV
#ifndef __AdvancedGEOM_IDL__
#define __AdvancedGEOM_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Pattern for block division of the disk
*/
enum pattern {
/*! Square */
SQUARE,
/*! Hexagon */
HEXAGON
};
/*!
* \brief Interface for advanced modeling functions.
*/
interface IAdvancedOperations : GEOM::GEOM_IOperations
{
// T-Shape WITHOUT Thickness reduction
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShape (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2,
in GEOM::GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length). A chamfer is created
* on the junction of the pipes.
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theH, in double theW, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A chamfer is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theH, in double theW, in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2,
in GEOM::GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRF, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRF, in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2,
in GEOM::GEOM_Object theP3);
// T-Shape WITH Thickness reduction
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTR (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTRWithPosition(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2, in GEOM::GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length). A chamfer is created
* on the junction of the pipes.
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTRChamfer(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theH, in double theW, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A chamfer is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTRChamferWithPosition(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theH, in double theW, in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2, in GEOM::GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTRFillet(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theRF, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
GEOM::ListOfGO MakePipeTShapeTRFilletWithPosition(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theRF, in boolean theHexMesh,
in GEOM::GEOM_Object theP1, in GEOM::GEOM_Object theP2,
in GEOM::GEOM_Object theP3);
/*!
* This function allows to create a disk already divided into blocks. It
* can be use to create divided pipes for later meshing in hexaedra.
* \param theR Radius of the disk
* \param theRatio Relative size of the central square diagonal against the disk diameter
* \param theOrientation Plane on which the disk will be built
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM::GEOM_Object MakeDividedDisk (in double theR,
in double theRatio,
in short theOrientation,
in GEOM::pattern thePattern);
/*!
* \brief Create a Disk prepared for hexa meshing with given center, normal vector and radius.
* \param thePnt disk center.
* \param theVec Vector, normal to the plane of the disk.
* \param theR Disk radius.
* \param theRatio Relative size of the central square diagonal against the disk diameter
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created disk.
*/
GEOM::GEOM_Object MakeDividedDiskPntVecR ( in GEOM::GEOM_Object thePnt,
in GEOM::GEOM_Object theVec,
in double theR,
in double theRatio,
in GEOM::pattern thePattern);
/*!
* Builds a cylinder prepared for hexa meshes
* \param theR Radius of the cylinder
* \param theH Height of the cylinder
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM::GEOM_Object MakeDividedCylinder (in double theR,
in double theH,
in GEOM::pattern thePattern );
/*!
*
* Create a smoothing surface from a set of points
* \param thelPoints list of points. Compounds of ggpoints are accepted as well.
* \param theNbMax maximum number of Bezier pieces in the resulting surface.
* \param theDegMax maximum degree of the resulting BSpline surface
* \param theDMax specifies maximum value of the GeomPlate_PlateG0Criterion criterion.
* \return New GEOM_Object, containing the created shape.
*/
GEOM::GEOM_Object MakeSmoothingSurface (in GEOM::ListOfGO thelPoints,
in long theNbMax,
in long theDegMax,
in double theDMax);
/*@@ insert new functions before this line @@ do not remove this line @@*/
};
};
#endif // __AdvancedGEOM_IDL__

51
idl/BREPPlugin.idl Normal file
View File

@ -0,0 +1,51 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __BREPPlugin_IDL__
#define __BREPPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for BREPPlugin modeling functions.
*/
interface IBREPOperations : GEOM::GEOM_IOperations
{
/*!
* \brief Export the given shape into a file with given name in BREP format.
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
*/
void ExportBREP( in GEOM::GEOM_Object theObject,
in string theFileName );
/*!
* \brief Import a shape from the BREP file.
*
* \param theFileName The file, containing the shape.
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
GEOM::ListOfGO ImportBREP( in string theFileName );
};
};
#endif // __BREPPlugin_IDL__

View File

@ -32,16 +32,83 @@ ENDIF(WIN32)
SET(SalomeIDLGEOM_IDLSOURCES
GEOM_Gen.idl
)
SET(SalomeIDLGEOMSuperv_IDLSOURCES
GEOM_Superv.idl
)
SET(SalomeIDLAdvancedGEOM_IDLSOURCES
AdvancedGEOM.idl
)
SET(SalomeIDLSTLPlugin_IDLSOURCES
STLPlugin.idl
)
SET(SalomeIDLBREPPlugin_IDLSOURCES
BREPPlugin.idl
)
SET(SalomeIDLSTEPPlugin_IDLSOURCES
STEPPlugin.idl
)
SET(SalomeIDLIGESPlugin_IDLSOURCES
IGESPlugin.idl
)
SET(SalomeIDLXAOPlugin_IDLSOURCES
XAOPlugin.idl
)
SET(SalomeIDLVTKPlugin_IDLSOURCES
VTKPlugin.idl
)
SET(IDL_INCLUDE_DIRS
${KERNEL_ROOT_DIR}/idl/salome
${CMAKE_CURRENT_SOURCE_DIR}
)
SET(IDL_LINK_FLAGS
${KERNEL_SalomeIDLKernel}
)
SET(IDL_LINK_PLUGIN_FLAGS
${KERNEL_SalomeIDLKernel}
SalomeIDLGEOM
)
SET(IDL_LINK_SUPERV_FLAGS
${KERNEL_SalomeIDLKernel}
SalomeIDLGEOM
SalomeIDLAdvancedGEOM
)
OMNIORB_ADD_MODULE(SalomeIDLGEOM "${SalomeIDLGEOM_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_FLAGS}")
INSTALL(TARGETS SalomeIDLGEOM EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLAdvancedGEOM "${SalomeIDLAdvancedGEOM_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLAdvancedGEOM EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLSTLPlugin "${SalomeIDLSTLPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLSTLPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLBREPPlugin "${SalomeIDLBREPPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLBREPPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLSTEPPlugin "${SalomeIDLSTEPPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLSTEPPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLIGESPlugin "${SalomeIDLIGESPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLIGESPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLXAOPlugin "${SalomeIDLXAOPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLXAOPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLVTKPlugin "${SalomeIDLVTKPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
INSTALL(TARGETS SalomeIDLVTKPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
OMNIORB_ADD_MODULE(SalomeIDLGEOMSuperv "${SalomeIDLGEOMSuperv_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_SUPERV_FLAGS}")
INSTALL(TARGETS SalomeIDLGEOMSuperv EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})

View File

@ -164,7 +164,8 @@ module GEOM
/*!
* \brief Kind of the curves.
*
* Used in the functions GEOM_ICurvesOperations.MakeCurveParametric(), GEOM_ICurvesOperations.MakeCurveParametricNew()
* Used in the functions GEOM_ICurvesOperations.MakeCurveParametric(), GEOM_ICurvesOperations.MakeCurveParametricNew(),
* GEOM_ICurvesOperations.MakePolyline2D, GEOM_ICurvesOperations.MakePolyline2DOnPlane.
*/
enum curve_type {
/*! Polyline curve */
@ -177,19 +178,6 @@ module GEOM
Interpolation
};
/*!
* \brief Pattern for block division of the disk
*
* Used in the functions GEOM_IAdvancedOperations.MakeDividedDisk(), GEOM_ICurvesOperations.MakeDividedDiskPntVecR()
*/
enum pattern {
/*! Square */
SQUARE,
/*! Hexagon */
HEXAGON
};
/*!
* \brief Type of field data
*/
@ -226,6 +214,7 @@ module GEOM
typedef sequence<boolean> ListOfBool;
typedef sequence<long> ListOfLong;
typedef sequence<double> ListOfDouble;
typedef sequence<ListOfDouble> ListOfListOfDouble;
interface GEOM_Object;
interface GEOM_BaseObject;
@ -1481,6 +1470,18 @@ module GEOM
*/
GEOM_Object MakeCylinderRH (in double theR, in double theH);
/*!
* \brief Create a portion of cylinder with given radius, height and angle at
* the origin of coordinate system.
*
* Axis of the cylinder will be collinear to the OZ axis of the coordinate system.
* \param theR Cylinder radius.
* \param theH Cylinder height.
* \param theA Cylinder angle.
* \return New GEOM_Object, containing the created cylinder.
*/
GEOM_Object MakeCylinderRHA (in double theR, in double theH, in double theA);
/*!
* \brief Create a cylinder with given base point, axis, radius and height.
* \param thePnt Central point of cylinder base.
@ -1493,6 +1494,20 @@ module GEOM
in GEOM_Object theAxis,
in double theR,
in double theH);
/*!
* \brief Create a portion of cylinder with given base point, axis, radius, height and angle.
* \param thePnt Central point of cylinder base.
* \param theAxis Cylinder axis.
* \param theR Cylinder radius.
* \param theH Cylinder height.
* \param theA Cylinder angle.
* \return New GEOM_Object, containing the created cylinder.
*/
GEOM_Object MakeCylinderPntVecRHA (in GEOM_Object thePnt,
in GEOM_Object theAxis,
in double theR,
in double theH,
in double theA);
/*!
* \brief Create a cone with given height and radiuses at
@ -3319,6 +3334,72 @@ module GEOM
* \return New GEOM_Object, containing the created wire.
*/
GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates);
/*!
* \brief Create a 2D polyline (wire or a compound of wires).
*
* The polyline can have several sections. Each section represents a set
* of points in the form of list of coordinates of the following order:
* x1, y1, x2, y2, ..., xN, yN
* Each section has its own name, type of curve (can be either
* GEOM::Polyline or GEOM::Interpolation) and Closed flag.
* For each section a wire is created. It represents either a polyline or
* interpolation BSpline either closed or not depending on the Closed flag.
* The result represents a wire if there is only one section is defined.
* Otherwise a compound of wires is returned.
*
* \param theCoordsList the list of coordinates list. theCoordsList[0]
* is the coordinates list of the first section. theCoordsList[1]
* is for the second section etc.
* \param theNamesList the list of names. The order corresponds to
* theCoordsList.
* \param theTypesList the list of curve types. The order corresponds to
* theCoordsList.
* \param theClosedList the list of Closed flags. The order corresponds to
* theCoordsList.
* \param theWorkingPlane 9 double values, defining origin,
* OZ and OX directions of the working plane.
* \return New GEOM_Object, containing the created wire or a compound
* of wires.
*/
GEOM_Object MakePolyline2D (in ListOfListOfDouble theCoordsList,
in string_array theNamesList,
in short_array theTypesList,
in ListOfBool theClosedList,
in ListOfDouble theWorkingPlane);
/*!
* \brief Create a 2D polyline (wire or a compound of wires).
*
* The polyline can have several sections. Each section represents a set
* of points in the form of list of coordinates of the following order:
* x1, y1, x2, y2, ..., xN, yN
* Each section has its own name, type of curve (can be either
* GEOM::Polyline or GEOM::Interpolation) and Closed flag.
* For each section a wire is created. It represents either a polyline or
* interpolation BSpline either closed or not depending on the Closed flag.
* The result represents a wire if there is only one section is defined.
* Otherwise a compound of wires is returned.
*
* \param theCoordsList the list of coordinates list. theCoordsList[0]
* is the coordinates list of the first section. theCoordsList[1]
* is for the second section etc.
* \param theNamesList the list of names. The order corresponds to
* theCoordsList.
* \param theTypesList the list of curve types. The order corresponds to
* theCoordsList.
* \param theClosedList the list of Closed flags. The order corresponds to
* theCoordsList.
* \param theWorkingPlane planar Face or LCS(Marker) of the working plane.
* \return New GEOM_Object, containing the created wire or a compound
* of wires.
*/
GEOM_Object MakePolyline2DOnPlane (in ListOfListOfDouble theCoordsList,
in string_array theNamesList,
in short_array theTypesList,
in ListOfBool theClosedList,
in GEOM_Object theWorkingPlane);
};
// # GEOM_ILocalOperations:
@ -3684,56 +3765,43 @@ module GEOM
GEOM_Object MakeCopy (in GEOM_Object theOriginal);
/*!
* \brief Deprecated method. Use Export<FormatName> (from the
* corresponding plugin) instead; here <FormatName> is a name of format.
*
* \brief Export the given shape into a file with given name.
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
* \param theFormatName Specify format for the shape storage.
* Available formats can be obtained with <VAR>ImportTranslators()</VAR> method.
*/
void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName);
/*!
* \brief Import a shape from the BRep or IGES or STEP file
* \brief Deprecated method. Use Import<FormatName> (from the
* corresponding plugin) instead; here <FormatName> is a name of format.
*
* \brief Import a shape from the STL, BREP, IGES or STEP file
* (depends on given format) with given name.
* \param theFileName The file, containing the shape.
* \param theFormatName Specify format for the file reading.
* Available formats can be obtained with <VAR>ImportTranslators()</VAR> method.
* If format 'IGES_SCALE' is used instead of 'IGES' or
* format 'STEP_SCALE' is used instead of 'STEP',
* file length unit will be ignored (set to 'meter') and result model will be scaled.
* \return List of GEOM_Object, containing the created shape and groups of materials.
*/
ListOfGO ImportFile (in string theFileName, in string theFormatName);
ListOfGBO ImportFile (in string theFileName, in string theFormatName);
/*!
* \brief Deprecated method. Use ReadValue (from the corresponding plugin) instead.
*
* \brief Read a value of parameter from a file, containing a shape.
* \param theFileName The file, containing the shape.
* \param theFormatName Specify format for the file reading.
* Available formats can be obtained with <VAR>ImportTranslators()</VAR> method.
* \param theParameterName Specify the parameter. For example, pass "LEN_UNITS"
* to obtain length units, in which the file is written.
* \return Value of requested parameter in form of text string.
*/
string ReadValue (in string theFileName, in string theFormatName, in string theParameterName);
/*!
* \brief Get the supported import formats and corresponding patterns for File dialog.
* \param theFormats Output. List of formats, available for import.
* \param thePatterns Output. List of file patterns, corresponding to available formats.
* \return Returns available formats and patterns through the arguments.
*/
void ImportTranslators (out string_array theFormats,
out string_array thePatterns);
/*!
* \brief Get the supported export formats and corresponding patterns for File dialog.
* \param theFormats Output. List of formats, available for export.
* \param thePatterns Output. List of file patterns, corresponding to available formats.
* \return Returns available formats and patterns through the arguments.
*/
void ExportTranslators (out string_array theFormats,
out string_array thePatterns);
/*!
* \brief Read a shape from the binary stream, containing its bounding representation (BRep).
* \note GEOM_Object::GetShapeStream() method can be used to obtain the shape's BRep stream.
@ -3773,30 +3841,6 @@ module GEOM
*/
ListOfLong GetAllTextures();
/*!
* Export a shape to XAO format
* \param shape The shape to export
* \param groups The list of groups to export
* \param fields The list of fields to export
* \param author The author of the export
* \param fileName The name of the file to export
* \return boolean indicating if export was successful.
*/
boolean ExportXAO(in GEOM_Object shape,
in ListOfGO groups, in ListOfFields fields,
in string author, in string fileName);
/*!
* Import a shape from XAO format
* \param fileName The name of the file to import
* \param shape The imported shape
* \param subShapes The list of imported subShapes
* \param groups The list of imported groups
* \param fields The list of imported fields
* \return boolean indicating if import was successful.
*/
boolean ImportXAO(in string fileName, out GEOM_Object shape,
out ListOfGO subShapes, out ListOfGO groups, out ListOfFields fields);
};
// # GEOM_IKindOfShape:
@ -4365,447 +4409,6 @@ module GEOM
ListOfLong GetObjects (in GEOM_Object theGroup);
};
// # GEOM_IAdvancedOperations:
/*!
* \brief Interface for advanced modeling functions.
*/
interface GEOM_IAdvancedOperations : GEOM_IOperations
{
// T-Shape WITHOUT Thickness reduction
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShape (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length). A chamfer is created
* on the junction of the pipes.
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theH, in double theW, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A chamfer is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theH, in double theW, in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRF, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRF, in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
// T-Shape WITH Thickness reduction
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTR (in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTRWithPosition
(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length). A chamfer is created
* on the junction of the pipes.
*
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTRChamfer
(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theH, in double theW, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A chamfer is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theH Height of the chamfer.
* \param theW Width of the chamfer.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTRChamferWithPosition
(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theH, in double theW, in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTRFillet
(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theRF, in boolean theHexMesh);
/*!
* \brief Create a T-shape object with specified caracteristics for the main and
* the incident pipes (radius, width, half-length).
*
* A fillet is created on the junction of the pipes.
* The extremities of the main pipe are located on junctions points P1 and P2.
* The extremity of the incident pipe is located on junction point P3.
* \param theR1 Internal radius of main pipe
* \param theW1 Width of main pipe
* \param theL1 Half-length of main pipe
* \param theR2 Internal radius of incident pipe (R2 < R1)
* \param theW2 Width of incident pipe (R2+W2 < R1+W1)
* \param theL2 Half-length of incident pipe
*
* \param theRL Internal radius of left thickness reduction
* \param theWL Width of left thickness reduction
* \param theLtransL Length of left transition part
* \param theLthinL Length of left thin part
*
* \param theRR Internal radius of right thickness reduction
* \param theWR Width of right thickness reduction
* \param theLtransR Length of right transition part
* \param theLthinR Length of right thin part
*
* \param theRI Internal radius of incident thickness reduction
* \param theWI Width of incident thickness reduction
* \param theLtransI Length of incident transition part
* \param theLthinI Length of incident thin part
*
* \param theRF Radius of curvature of fillet.
* \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
* \param theP1 1st junction point of main pipe
* \param theP2 2nd junction point of main pipe
* \param theP3 Junction point of incident pipe
* \return List of GEOM_Object, containing the created shape and propagation groups.
*/
ListOfGO MakePipeTShapeTRFilletWithPosition
(in double theR1, in double theW1, in double theL1,
in double theR2, in double theW2, in double theL2,
in double theRL, in double theWL, in double theLtransL, in double theLthinL,
in double theRR, in double theWR, in double theLtransR, in double theLthinR,
in double theRI, in double theWI, in double theLtransI, in double theLthinI,
in double theRF, in boolean theHexMesh,
in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
/*!
* This function allows to create a disk already divided into blocks. It
* can be use to create divided pipes for later meshing in hexaedra.
* \param theR Radius of the disk
* \param theRatio Relative size of the central square diagonal against the disk diameter
* \param theOrientation Plane on which the disk will be built
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM_Object MakeDividedDisk (in double theR,
in double theRatio,
in short theOrientation,
in pattern thePattern);
/*!
* \brief Create a Disk prepared for hexa meshing with given center, normal vector and radius.
* \param thePnt disk center.
* \param theVec Vector, normal to the plane of the disk.
* \param theR Disk radius.
* \param theRatio Relative size of the central square diagonal against the disk diameter
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created disk.
*/
GEOM_Object MakeDividedDiskPntVecR ( in GEOM_Object thePnt,
in GEOM_Object theVec,
in double theR,
in double theRatio,
in pattern thePattern);
/*!
* Builds a cylinder prepared for hexa meshes
* \param theR Radius of the cylinder
* \param theH Height of the cylinder
* \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM_Object MakeDividedCylinder (in double theR,
in double theH,
in pattern thePattern );
/*!
*
* Create a smoothing surface from a set of points
* \param thelPoints list of points. Compounds of points are accepted as well.
* \param theNbMax maximum number of Bezier pieces in the resulting surface.
* \param theDegMax maximum degree of the resulting BSpline surface
* \param theDMax specifies maximum value of the GeomPlate_PlateG0Criterion criterion.
* \return New GEOM_Object, containing the created shape.
*/
GEOM_Object MakeSmoothingSurface (in ListOfGO thelPoints,
in long theNbMax,
in long theDegMax,
in double theDMax);
/*@@ insert new functions before this line @@ do not remove this line @@*/
};
// # GEOM_IFieldOperations:
/*!
* \brief Interface for field operation.
@ -5089,6 +4692,35 @@ module GEOM
void Move( in object_list what,
in SALOMEDS::SObject where,
in long row );
/*!
* \brief Collects dependencies of the given objects from other ones
* \param theStudy The study in which the object is published
* \param theListOfEntries List of GEOM object entries in OCAF tree (not in study)
* \return Struct of dependent entries and its links as a byte array
* \note This method is supposed to be used by GUI only.
*/
SALOMEDS::TMPFile GetDependencyTree(in SALOMEDS::Study theStudy,
in string_array theListOfEntries);
/*!
* \brief Fills 3 lists that is used to reduce study of redundant objects:
* - dependencies of the given objects from other ones;
* - children of the given objects;
* - all other objects in study.
* \param theStudy The study in which the object was published
* \param theSelectedEntries List of GEOM object entries in OCAF tree
* \param theParentEntries List of GEOM object entries on which the given objects depend
* \param theSubEntries Children entries list of the given objects
* \param theOtherEntries List of GEOM object entries which are in the study, but not in parents and children lists
* \note This method is supposed to be used by GUI only.
*/
void GetEntriesToReduceStudy(in SALOMEDS::Study theStudy,
inout string_array theSelectedEntries,
inout string_array theParentEntries,
inout string_array theSubEntries,
inout string_array theOtherEntries);
};
};

View File

@ -26,6 +26,7 @@
#define __GEOM_SUPERV__
#include "GEOM_Gen.idl"
#include "AdvancedGEOM.idl"
module GEOM
{
@ -161,6 +162,14 @@ module GEOM
in double theHeight) ;
GEOM_Object MakeCylinderRH (in double theR,
in double theH) ;
GEOM_Object MakeCylinderPntVecRHA (in GEOM_Object thePnt,
in GEOM_Object theAxis,
in double theRadius,
in double theHeight,
in double theAngle) ;
GEOM_Object MakeCylinderRHA (in double theR,
in double theH,
in double theA) ;
GEOM_Object MakeSphere (in double theX,
in double theY,
in double theZ,
@ -264,15 +273,6 @@ module GEOM
GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
GEOM_Object ImportFile (in string theFileName, in string theFormatName) ;
void ImportTranslators (out string_array theFormats,
out string_array thePatterns) ;
void ExportTranslators (out string_array theFormats,
out string_array thePatterns) ;
boolean ExportXAO(in GEOM_Object shape,
in ListOfGO groups, in ListOfFields fields,
in string author, in string fileName);
boolean ImportXAO(in string fileName, out GEOM_Object shape,
out ListOfGO subShapes, out ListOfGO groups, out ListOfFields fields);
//-----------------------------------------------------------//
// TransformOperations //
@ -636,6 +636,46 @@ module GEOM
GEOM_Object MakeSmoothingSurface (in GEOM_List thelPoints);
//-----------------------------------------------------------//
// Import/Export Operations //
//-----------------------------------------------------------//
void ExportSTL( in GEOM::GEOM_Object theObject,
in string theFileName,
in boolean theIsASCII,
in double theDeflection,
in boolean theIsRelative );
GEOM_Object ImportSTL( in string theFileName );
void ExportBREP( in GEOM::GEOM_Object theObject,
in string theFileName );
GEOM_Object ImportBREP( in string theFileName );
void ExportSTEP( in GEOM::GEOM_Object theObject,
in string theFileName );
GEOM_Object ImportSTEP( in string theFileName,
in boolean theIsIgnoreUnits );
void ExportIGES( in GEOM::GEOM_Object theObject,
in string theFileName,
in string theVersion );
GEOM_Object ImportIGES( in string theFileName,
in boolean theIsIgnoreUnits );
boolean ExportXAO( in GEOM_Object shape,
in ListOfGO groups,
in ListOfFields fields,
in string author,
in string fileName );
boolean ImportXAO( in string fileName,
out GEOM_Object shape,
out ListOfGO subShapes,
out ListOfGO groups,
out ListOfFields fields );
void ExportVTK( in GEOM::GEOM_Object theObject,
in string theFileName,
in double theDeflection );
/*@@ insert new functions before this line @@ do not remove this line @@*/
};
};

67
idl/IGESPlugin.idl Normal file
View File

@ -0,0 +1,67 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __IGESPlugin_IDL__
#define __IGESPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for IGESPlugin modeling functions.
*/
interface IIGESOperations : GEOM::GEOM_IOperations
{
/*!
* \brief Export the given shape into a file with given name in IGES format.
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
* \param theVersion Version of IGES format which defines, whether to write
* only faces (5.1 IGES format) or shells and solids also (5.3 IGES format).
*/
void ExportIGES( in GEOM::GEOM_Object theObject,
in string theFileName,
in string theVersion );
/*!
* \brief Import a shape from the IGES file.
*
* \param theFileName The file, containing the shape.
* \param theIsIgnoreUnits If True, file length units will be ignored (set to 'meter')
* and result model will be scaled, if its units are not meters.
* If False (default), file length units will be taken into account.
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
GEOM::ListOfGO ImportIGES( in string theFileName,
in boolean theIsIgnoreUnits );
/*!
* \brief Read a value of parameter from a file, containing a shape.
* \param theFileName The file, containing the shape.
* \param theParameterName Specify the parameter. For example, pass "LEN_UNITS"
* to obtain length units, in which the file is written.
* \return Value of requested parameter in form of text string.
*/
string ReadValue( in string theFileName, in string theParameterName);
};
};
#endif // __IGESPlugin_IDL__

66
idl/STEPPlugin.idl Normal file
View File

@ -0,0 +1,66 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __STEPPlugin_IDL__
#define __STEPPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for STEPPlugin modeling functions.
*/
interface ISTEPOperations : GEOM::GEOM_IOperations
{
/*!
* \brief Export the given shape into a file with given name in STEP format.
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
*/
void ExportSTEP( in GEOM::GEOM_Object theObject,
in string theFileName );
/*!
* \brief Import a shape from the STEP file.
*
* \param theFileName The file, containing the shape.
* \param theIsIgnoreUnits If True, file length units will be ignored (set to 'meter')
* and result model will be scaled, if its units are not meters.
* If False (default), file length units will be taken into account.
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
GEOM::ListOfGO ImportSTEP( in string theFileName,
in boolean theIsIgnoreUnits );
/*!
* \brief Read a value of parameter from a file, containing a shape.
* \param theFileName The file, containing the shape.
* \param theParameterName Specify the parameter. For example, pass "LEN_UNITS"
* to obtain length units, in which the file is written.
* \return Value of requested parameter in form of text string.
*/
string ReadValue( in string theFileName,
in string theParameterName );
};
};
#endif // __STEPPlugin_IDL__

59
idl/STLPlugin.idl Normal file
View File

@ -0,0 +1,59 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __STLPlugin_IDL__
#define __STLPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for STLPlugin modeling functions.
*/
interface ISTLOperations : GEOM::GEOM_IOperations
{
/*!
* \brief Export the given shape into a file with given name in STL format.
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
* \param theIsASCII The format of the exported file (ASCII or Binary).
* \param theDeflection Deflection of the given shape.
* \param theIsRelative Mode for writing the file. If True (default value), the
* deflection is calculated from the relative size of the
* shape; if False, the user defined deflection is used.
*/
void ExportSTL( in GEOM::GEOM_Object theObject,
in string theFileName,
in boolean theIsASCII,
in double theDeflection,
in boolean theIsRelative );
/*!
* \brief Import a shape from the STL file.
*
* \param theFileName The file, containing the shape.
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
GEOM::ListOfGO ImportSTL( in string theFileName );
};
};
#endif // __STLPlugin_IDL__

45
idl/VTKPlugin.idl Normal file
View File

@ -0,0 +1,45 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __VTKPlugin_IDL__
#define __VTKPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for VTKPlugin modeling functions.
*/
interface IVTKOperations : GEOM::GEOM_IOperations
{
/*!
* \brief Export the given shape into a file with given name in VTK format.
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
* \param theDeflection Deflection of the given shape.
*/
void ExportVTK( in GEOM::GEOM_Object theObject,
in string theFileName,
in double theDeflection );
};
};
#endif // __VTKPlugin_IDL__

64
idl/XAOPlugin.idl Normal file
View File

@ -0,0 +1,64 @@
// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef __XAOPlugin_IDL__
#define __XAOPlugin_IDL__
#include "GEOM_Gen.idl"
module GEOM
{
/*!
* \brief Interface for XAOPlugin modeling functions.
*/
interface IXAOOperations : GEOM::GEOM_IOperations
{
/*!
* Export a shape to XAO format
* \param shape The shape to export
* \param groups The list of groups to export
* \param fields The list of fields to export
* \param author The author of the export
* \param fileName The name of the file to export
* \return boolean indicating if export was successful.
*/
boolean ExportXAO( in GEOM::GEOM_Object shape,
in GEOM::ListOfGO groups,
in GEOM::ListOfFields fields,
in string author,
in string fileName );
/*!
* Import a shape from XAO format
* \param fileName The name of the file to import
* \param shape The imported shape
* \param subShapes The list of imported subShapes
* \param groups The list of imported groups
* \param fields The list of imported fields
* \return boolean indicating if import was successful.
*/
boolean ImportXAO( in string fileName,
out GEOM::GEOM_Object shape,
out GEOM::ListOfGO subShapes,
out GEOM::ListOfGO groups,
out GEOM::ListOfFields fields );
};
};
#endif // __XAOPlugin_IDL__

View File

@ -28,7 +28,7 @@
<geom-plugins>
<geom-plugin name="AdvancedGUI"
<geom-plugin name="AdvancedGEOM"
server-lib="AdvancedEngine"
gui-lib="AdvancedGUI">
<actions>

45
resources/BREPPlugin.xml Normal file
View File

@ -0,0 +1,45 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="BREPPlugin"
server-lib="BREPPluginEngine"
gui-lib="BREPPluginGUI">
<actions>
<action label="Import_BREP"
menu="FILE/IMPORT:10/IMPORTBREP"
status-bar="IMPORTBREP"
accel="Ctrl+I">
</action>
<action label="Export_BREP"
menu="FILE/EXPORT:10/EXPORTBREP"
status-bar="EXPORTBREP"
accel="Ctrl+E">
</action>
</actions>
</geom-plugin>
</geom-plugins>

View File

@ -23,12 +23,17 @@
# These files are data, module or lib files
SET( _res_files
GEOMActions.xml
AdvancedGEOM.xml
STLPlugin.xml
BREPPlugin.xml
STEPPlugin.xml
IGESPlugin.xml
XAOPlugin.xml
VTKPlugin.xml
GEOM_en.xml
GEOM_fr.xml
GEOM.config
GEOMDS_Resources
ImportExport
ShHealing
3dsketch.png
isoline.png

File diff suppressed because it is too large Load Diff

43
resources/IGESPlugin.xml Normal file
View File

@ -0,0 +1,43 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="IGESPlugin"
server-lib="IGESPluginEngine"
gui-lib="IGESPluginGUI">
<actions>
<action label="Import_IGES"
menu="FILE/IMPORT:10/IMPORTIGES"
status-bar="IMPORTIGES">
</action>
<action label="Export_IGES"
menu="FILE/EXPORT:10/EXPORTIGES"
status-bar="EXPORTIGES">
</action>
</actions>
</geom-plugin>
</geom-plugins>

View File

@ -1,30 +0,0 @@
Import: BREP|IGES|STEP|STL
Export: BREP|IGES|IGES_5_3|STEP|STL_Bin|STL_ASCII|VTK
BREP.Import: BREPImport
BREP.Export: BREPExport
BREP.Pattern: BREP Files ( *.brep )
IGES.Import: IGESImport
IGES.Export: IGESExport
IGES.Pattern: IGES Files ( *.iges *.igs )
IGES.ExportPattern: IGES 5.1 Files ( *.iges *.igs )
IGES_5_3.Export: IGESExport
IGES_5_3.Pattern: IGES 5.3 Files ( *.iges *.igs )
STEP.Import: STEPImport
STEP.Export: STEPExport
STEP.Pattern: STEP Files ( *.step *.stp )
STL.Import: STLImport
STL.Pattern: STL Files ( *.stl )
STL_Bin.Export: STLExport
STL_Bin.Pattern: STL Binary Files ( *.stl )
STL_ASCII.Export: STLExport
STL_ASCII.Pattern: STL ASCII Files ( *.stl )
VTK.Export: VTKExport
VTK.Pattern: VTK Files ( *.vtk )

43
resources/STEPPlugin.xml Normal file
View File

@ -0,0 +1,43 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="STEPPlugin"
server-lib="STEPPluginEngine"
gui-lib="STEPPluginGUI">
<actions>
<action label="Import_STEP"
menu="FILE/IMPORT:10/IMPORTSTEP"
status-bar="IMPORTSTEP">
</action>
<action label="Export_STEP"
menu="FILE/EXPORT:10/EXPORTSTEP"
status-bar="EXPORTSTEP">
</action>
</actions>
</geom-plugin>
</geom-plugins>

43
resources/STLPlugin.xml Normal file
View File

@ -0,0 +1,43 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="STLPlugin"
server-lib="STLPluginEngine"
gui-lib="STLPluginGUI">
<actions>
<action label="Import_STL"
menu="FILE/IMPORT:10/IMPORTSTL"
status-bar="IMPORTSTL">
</action>
<action label="Export_STL"
menu="FILE/EXPORT:10/EXPORTSTL"
status-bar="EXPORTSTL">
</action>
</actions>
</geom-plugin>
</geom-plugins>

File diff suppressed because one or more lines are too long

39
resources/VTKPlugin.xml Normal file
View File

@ -0,0 +1,39 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="VTKPlugin"
server-lib="VTKPluginEngine"
gui-lib="VTKPluginGUI">
<actions>
<action label="Export_VTK"
menu="FILE/EXPORT:10/EXPORTVTK"
status-bar="EXPORTVTK">
</action>
</actions>
</geom-plugin>
</geom-plugins>

43
resources/XAOPlugin.xml Normal file
View File

@ -0,0 +1,43 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-->
<!-- GUI customization for GEOM component -->
<geom-plugins>
<geom-plugin name="XAOPlugin"
server-lib="XAOPluginEngine"
gui-lib="XAOPluginGUI">
<actions>
<action label="Import_XAO"
menu="FILE/IMPORT:10/IMPORTXAO"
status-bar="IMPORTXAO">
</action>
<action label="Export_XAO"
menu="FILE/EXPORT:10/EXPORTXAO"
status-bar="EXPORTXAO">
</action>
</actions>
</geom-plugin>
</geom-plugins>

View File

@ -20,25 +20,14 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include "GEOM_AdvancedEngine.hxx"
#include "AdvancedEngine_OperationsCreator.hh"
//=============================================================================
/*!
*
*/
//=============================================================================
#include "AdvancedEngine.hxx"
#include "AdvancedEngine_OperationsCreator.hxx"
extern "C"
{
ADVANCEDENGINE_EXPORT
GEOM_GenericOperationsCreator* GetOperationsCreator()
{
//MESSAGE("GetOperationsCreator");
AdvancedEngine_OperationsCreator* aCreator = new AdvancedEngine_OperationsCreator();
return aCreator;
return new AdvancedEngine_OperationsCreator();
}
}

View File

@ -22,12 +22,11 @@
#include <Standard_Stream.hxx>
#include "AdvancedEngine_DividedDiskDriver.hxx"
#include "AdvancedEngine_IDividedDisk.hxx"
#include "AdvancedEngine_Types.hxx"
#include <GEOMImpl_DividedDiskDriver.hxx>
#include <GEOMImpl_IDividedDisk.hxx>
#include <GEOMImpl_Types.hxx>
#include <GEOM_Function.hxx>
#include "GEOM_Function.hxx"
// OCCT includes
#include <gp_Pnt.hxx>
@ -56,28 +55,28 @@
#include <TopExp.hxx>
#include <utilities.h>
//@@ include required header files here @@//
enum
{
SQUARE,
HEXAGON
};
//=======================================================================
//function : GetID
//purpose :
//=======================================================================
const Standard_GUID& GEOMImpl_DividedDiskDriver::GetID()
const Standard_GUID& AdvancedEngine_DividedDiskDriver::GetID()
{
static Standard_GUID aGUID("0b01da9a-c5da-11e1-8d80-78e7d1879630");
return aGUID;
}
//=======================================================================
//function : GEOMImpl_DividedDiskDriver
//function : AdvancedEngine_DividedDiskDriver
//purpose :
//=======================================================================
GEOMImpl_DividedDiskDriver::GEOMImpl_DividedDiskDriver()
AdvancedEngine_DividedDiskDriver::AdvancedEngine_DividedDiskDriver()
{
}
@ -85,12 +84,12 @@ GEOMImpl_DividedDiskDriver::GEOMImpl_DividedDiskDriver()
//function : Execute
//purpose :
//=======================================================================
Standard_Integer GEOMImpl_DividedDiskDriver::Execute(TFunction_Logbook& log) const
Standard_Integer AdvancedEngine_DividedDiskDriver::Execute(TFunction_Logbook& log) const
{
if (Label().IsNull()) return 0;
Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label());
GEOMImpl_IDividedDisk aData (aFunction);
AdvancedEngine_IDividedDisk aData (aFunction);
Standard_Integer aType = aFunction->GetType();
TopoDS_Shape aShape;
@ -150,7 +149,7 @@ Standard_Integer GEOMImpl_DividedDiskDriver::Execute(TFunction_Logbook& log) con
//function : MakeDiskHexagon
//purpose :
//=======================================================================
TopoDS_Shell GEOMImpl_DividedDiskDriver::MakeDiskHexagon(double R, double Ratio) const
TopoDS_Shell AdvancedEngine_DividedDiskDriver::MakeDiskHexagon(double R, double Ratio) const
{
// Geometry
gp_Dir ZDir(0,0,1);
@ -312,7 +311,7 @@ TopoDS_Shell GEOMImpl_DividedDiskDriver::MakeDiskHexagon(double R, double Ratio)
//function : MakeDiskSquare
//purpose :
//=======================================================================
TopoDS_Shape GEOMImpl_DividedDiskDriver::MakeDiskSquare(double R, double Ratio) const
TopoDS_Shape AdvancedEngine_DividedDiskDriver::MakeDiskSquare(double R, double Ratio) const
{
// Geometry
gp_Dir ZDir(0,0,1);
@ -430,7 +429,7 @@ TopoDS_Shape GEOMImpl_DividedDiskDriver::MakeDiskSquare(double R, double Ratio)
//purpose : Perform shape transformation accordingly with specified
// orientation
//=======================================================================
TopoDS_Shape GEOMImpl_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, int theOrientation) const
TopoDS_Shape AdvancedEngine_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, int theOrientation) const
{
gp_Dir N, Vx;
gp_Pnt theOrigin = gp::Origin();
@ -467,7 +466,7 @@ TopoDS_Shape GEOMImpl_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, i
//purpose : Perform shape transformation accordingly with specified
// pnt and direction
//=======================================================================
TopoDS_Shape GEOMImpl_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, gp_Pnt P, gp_Dir V) const
TopoDS_Shape AdvancedEngine_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, gp_Pnt P, gp_Dir V) const
{
gp_Ax3 aWPlane( P, V );
return WPlaneTransform(theShape, aWPlane);
@ -478,7 +477,7 @@ TopoDS_Shape GEOMImpl_DividedDiskDriver::TransformShape(TopoDS_Shape theShape, g
//purpose : Perform shape transformation accordingly with the given
// Working Plane
//=======================================================================
TopoDS_Shape GEOMImpl_DividedDiskDriver::WPlaneTransform(TopoDS_Shape theShape, gp_Ax3 theWPlane) const
TopoDS_Shape AdvancedEngine_DividedDiskDriver::WPlaneTransform(TopoDS_Shape theShape, gp_Ax3 theWPlane) const
{
gp_Trsf aTrans;
aTrans.SetTransformation(theWPlane);
@ -493,14 +492,14 @@ TopoDS_Shape GEOMImpl_DividedDiskDriver::WPlaneTransform(TopoDS_Shape theShape,
*/
//================================================================================
bool GEOMImpl_DividedDiskDriver::
bool AdvancedEngine_DividedDiskDriver::
GetCreationInformation(std::string& theOperationName,
std::vector<GEOM_Param>& theParams)
{
if (Label().IsNull()) return 0;
Handle(GEOM_Function) function = GEOM_Function::GetFunction(Label());
GEOMImpl_IDividedDisk aCI( function );
AdvancedEngine_IDividedDisk aCI( function );
Standard_Integer aType = function->GetType();
theOperationName = "DIVIDEDDISK";
@ -525,5 +524,5 @@ GetCreationInformation(std::string& theOperationName,
return true;
}
IMPLEMENT_STANDARD_HANDLE (GEOMImpl_DividedDiskDriver,GEOM_BaseDriver);
IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_DividedDiskDriver,GEOM_BaseDriver);
IMPLEMENT_STANDARD_HANDLE (AdvancedEngine_DividedDiskDriver,GEOM_BaseDriver);
IMPLEMENT_STANDARD_RTTIEXT (AdvancedEngine_DividedDiskDriver,GEOM_BaseDriver);

View File

@ -20,39 +20,37 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef _GEOMImpl_DividedDiskDriver_HXX
#define _GEOMImpl_DividedDiskDriver_HXX
#ifndef _AdvancedEngine_DividedDiskDriver_HXX
#define _AdvancedEngine_DividedDiskDriver_HXX
#include "GEOM_BaseDriver.hxx"
#include <TFunction_Driver.hxx>
class Handle_Standard_Type;
class GEOMImpl_DividedDiskDriver;
class TopoDS_Shape;
class TopoDS_Shell;
class gp_Pnt;
class gp_Dir;
class gp_Ax3;
#include "GEOM_BaseDriver.hxx"
DEFINE_STANDARD_HANDLE( AdvancedEngine_DividedDiskDriver, GEOM_BaseDriver );
DEFINE_STANDARD_HANDLE( GEOMImpl_DividedDiskDriver, GEOM_BaseDriver );
class GEOMImpl_DividedDiskDriver : public GEOM_BaseDriver {
class AdvancedEngine_DividedDiskDriver : public GEOM_BaseDriver
{
public:
// Methods PUBLIC
//
Standard_EXPORT GEOMImpl_DividedDiskDriver();
Standard_EXPORT virtual Standard_Integer Execute(TFunction_Logbook& log) const;
Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {}
Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const
AdvancedEngine_DividedDiskDriver();
virtual Standard_Integer Execute(TFunction_Logbook& log) const;
virtual void Validate(TFunction_Logbook&) const {}
Standard_Boolean MustExecute(const TFunction_Logbook&) const
{
return Standard_True;
}
Standard_EXPORT static const Standard_GUID& GetID();
Standard_EXPORT ~GEOMImpl_DividedDiskDriver() {};
static const Standard_GUID& GetID();
~AdvancedEngine_DividedDiskDriver() {};
Standard_EXPORT virtual
bool GetCreationInformation(std::string& theOperationName,
virtual bool GetCreationInformation(std::string& theOperationName,
std::vector<GEOM_Param>& params);
private:
TopoDS_Shape TransformShape (TopoDS_Shape aShape, int theOrientation) const;
@ -61,7 +59,7 @@ private:
TopoDS_Shell MakeDiskHexagon (double R, double Ratio) const;
TopoDS_Shape MakeDiskSquare (double R, double Ratio) const;
DEFINE_STANDARD_RTTI( GEOMImpl_DividedDiskDriver )
DEFINE_STANDARD_RTTI( AdvancedEngine_DividedDiskDriver )
};
#endif // _GEOMImpl_DividedDiskDriver_HXX
#endif // _AdvancedEngine_DividedDiskDriver_HXX

View File

@ -20,8 +20,8 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef _GEOMImpl_IDividedDisk_HXX_
#define _GEOMImpl_IDividedDisk_HXX_
#ifndef _AdvancedEngine_IDividedDisk_HXX_
#define _AdvancedEngine_IDividedDisk_HXX_
#include "GEOM_Function.hxx"
@ -34,10 +34,10 @@
#define DIVIDEDDISK_ARG_TYPE 6
class GEOMImpl_IDividedDisk
class AdvancedEngine_IDividedDisk
{
public:
GEOMImpl_IDividedDisk(Handle(GEOM_Function) theFunction): _func(theFunction) {}
AdvancedEngine_IDividedDisk(Handle(GEOM_Function) theFunction): _func(theFunction) {}
void SetR(double theR) { _func->SetReal(DIVIDEDDISK_ARG_R, theR); }
double GetR() { return _func->GetReal(DIVIDEDDISK_ARG_R); }
@ -61,4 +61,4 @@ private:
Handle(GEOM_Function) _func;
};
#endif // _GEOMImpl_IDividedDisk_HXX_
#endif // _AdvancedEngine_IDividedDisk_HXX_

View File

@ -16,10 +16,16 @@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : GEOMImpl_IAdvancedOperations.cxx
// File : AdvancedEngine_IOperations.cxx
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
#include "GEOMImpl_IAdvancedOperations.hxx"
#include "AdvancedEngine_IOperations.hxx"
#include "AdvancedEngine_PipeTShapeDriver.hxx"
#include "AdvancedEngine_IPipeTShape.hxx"
#include "AdvancedEngine_DividedDiskDriver.hxx"
#include "AdvancedEngine_IDividedDisk.hxx"
#include "AdvancedEngine_SmoothingSurfaceDriver.hxx"
#include "AdvancedEngine_ISmoothingSurface.hxx"
#include <Basics_OCCTVersion.hxx>
@ -45,15 +51,7 @@
#include "GEOMImpl_ILocalOperations.hxx"
#include "GEOMImpl_IHealingOperations.hxx"
#include "GEOMImpl_IGroupOperations.hxx"
#include "GEOMImpl_GlueDriver.hxx"
#include "GEOMImpl_PipeTShapeDriver.hxx"
#include "GEOMImpl_IPipeTShape.hxx"
#include "GEOMImpl_DividedDiskDriver.hxx"
#include "GEOMImpl_IDividedDisk.hxx"
#include <GEOMImpl_SmoothingSurfaceDriver.hxx>
#include <GEOMImpl_ISmoothingSurface.hxx>
/*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
#include <TDF_Tool.hxx>
#include <TFunction_DriverTable.hxx>
@ -116,10 +114,10 @@
* Constructor
*/
//=============================================================================
GEOMImpl_IAdvancedOperations::GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID) :
AdvancedEngine_IOperations::AdvancedEngine_IOperations(GEOM_Engine* theEngine, int theDocID) :
GEOM_IOperations(theEngine, theDocID)
{
MESSAGE("GEOMImpl_IAdvancedOperations::GEOMImpl_IAdvancedOperations");
MESSAGE("AdvancedEngine_IOperations::AdvancedEngine_IOperations");
myBasicOperations = new GEOMImpl_IBasicOperations(GetEngine(), GetDocID());
myBooleanOperations = new GEOMImpl_IBooleanOperations(GetEngine(), GetDocID());
myShapesOperations = new GEOMImpl_IShapesOperations(GetEngine(), GetDocID());
@ -136,9 +134,9 @@ GEOMImpl_IAdvancedOperations::GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngin
* Destructor
*/
//=============================================================================
GEOMImpl_IAdvancedOperations::~GEOMImpl_IAdvancedOperations()
AdvancedEngine_IOperations::~AdvancedEngine_IOperations()
{
MESSAGE("GEOMImpl_IAdvancedOperations::~GEOMImpl_IAdvancedOperations");
MESSAGE("AdvancedEngine_IOperations::~AdvancedEngine_IOperations");
delete myBasicOperations;
delete myBooleanOperations;
delete myShapesOperations;
@ -155,7 +153,7 @@ GEOMImpl_IAdvancedOperations::~GEOMImpl_IAdvancedOperations()
* SetPosition
*/
//=============================================================================
gp_Trsf GEOMImpl_IAdvancedOperations::GetPositionTrsf(double theL1, double theL2,
gp_Trsf AdvancedEngine_IOperations::GetPositionTrsf(double theL1, double theL2,
Handle(GEOM_Object) theP1,
Handle(GEOM_Object) theP2,
Handle(GEOM_Object) theP3)
@ -196,7 +194,7 @@ gp_Trsf GEOMImpl_IAdvancedOperations::GetPositionTrsf(double theL1, double theL2
*
*/
//=============================================================================
bool GEOMImpl_IAdvancedOperations::CheckCompatiblePosition(double& theL1, double& theL2,
bool AdvancedEngine_IOperations::CheckCompatiblePosition(double& theL1, double& theL2,
Handle(GEOM_Object) theP1,
Handle(GEOM_Object) theP2,
Handle(GEOM_Object) theP3,
@ -267,7 +265,7 @@ bool GEOMImpl_IAdvancedOperations::CheckCompatiblePosition(double& theL1, double
* Generate the propagation groups of a Pipe T-Shape used for hexa mesh
*/
//=============================================================================
bool GEOMImpl_IAdvancedOperations::MakeGroups(Handle(GEOM_Object) theShape, int shapeType,
bool AdvancedEngine_IOperations::MakeGroups(Handle(GEOM_Object) theShape, int shapeType,
double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theH, double theW, double theRF,
@ -807,7 +805,7 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(Handle(GEOM_Object) theShape, int
* Return faces that are laying on surface.
*/
//=============================================================================
bool GEOMImpl_IAdvancedOperations::GetFacesOnSurf
bool AdvancedEngine_IOperations::GetFacesOnSurf
(const TopoDS_Shape &theShape,
const Handle_Geom_Surface& theSurface,
const Standard_Real theTolerance,
@ -863,7 +861,7 @@ bool GEOMImpl_IAdvancedOperations::GetFacesOnSurf
* Creates and returns conical face.
*/
//=============================================================================
TopoDS_Shape GEOMImpl_IAdvancedOperations::MakeConicalFace
TopoDS_Shape AdvancedEngine_IOperations::MakeConicalFace
(const gp_Ax2 &theAxis,
const double theRadius,
const double theRadiusThin,
@ -902,7 +900,7 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakeConicalFace
* Generate the internal group of a Pipe T-Shape
*/
//=============================================================================
bool GEOMImpl_IAdvancedOperations::MakeInternalGroup
bool AdvancedEngine_IOperations::MakeInternalGroup
(const Handle(GEOM_Object) &theShape,
const double theR1, const double theLen1,
const double theR2, const double theLen2,
@ -1074,7 +1072,7 @@ bool GEOMImpl_IAdvancedOperations::MakeInternalGroup
Handle(GEOM_Object) aCone =
GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
Handle(GEOM_Function) aFunction =
aCone->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
aCone->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
TopTools_ListIteratorOfListOfShape aFIter(aConicalFaces);
Handle(GEOM_Object) aConeFromShape;
@ -1133,7 +1131,7 @@ bool GEOMImpl_IAdvancedOperations::MakeInternalGroup
return true;
}
bool GEOMImpl_IAdvancedOperations::MakePipeTShapePartition(Handle(GEOM_Object) theShape,
bool AdvancedEngine_IOperations::MakePipeTShapePartition(Handle(GEOM_Object) theShape,
double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theH, double theW,
@ -1151,9 +1149,7 @@ bool GEOMImpl_IAdvancedOperations::MakePipeTShapePartition(Handle(GEOM_Object) t
Handle(GEOM_Object) Te3;
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
Handle(GEOM_Object) Vector_Z = myBasicOperations->MakeVectorDXDYDZ(0, 0, 1);
Vector_Z->GetLastFunction()->SetDescription("");
@ -1617,7 +1613,7 @@ bool GEOMImpl_IAdvancedOperations::MakePipeTShapePartition(Handle(GEOM_Object) t
}
// Mirror and glue faces
bool GEOMImpl_IAdvancedOperations::MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape,
bool AdvancedEngine_IOperations::MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape,
double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2)
{
@ -1726,7 +1722,7 @@ bool GEOMImpl_IAdvancedOperations::MakePipeTShapeMirrorAndGlue(Handle(GEOM_Objec
//purpose : Static method. Add thiskness reduction elements at the three
// open ends of the T-Shape.
//=======================================================================
TopoDS_Shape GEOMImpl_IAdvancedOperations::MakePipeTShapeThicknessReduction
TopoDS_Shape AdvancedEngine_IOperations::MakePipeTShapeThicknessReduction
(TopoDS_Shape theShape,
double r1, double w1, double l1,
double r2, double w2, double l2,
@ -1757,7 +1753,7 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakePipeTShapeThicknessReduction
if (rL > aTol && wL > aTol && ltransL > aTol) {
gp_Pnt aPLeft (-l1, 0, 0);
gp_Ax2 anAxesLeft (aPLeft, -aVX, aVZ);
TopoDS_Shape aReductionLeft = GEOMImpl_IAdvancedOperations::MakeThicknessReduction
TopoDS_Shape aReductionLeft = AdvancedEngine_IOperations::MakeThicknessReduction
(anAxesLeft, r1, w1, rL, wL, ltransL, lthinL, fuseReductions);
if (fuseReductions) {
@ -1780,7 +1776,7 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakePipeTShapeThicknessReduction
if (rR > aTol && wR > aTol && ltransR > aTol) {
gp_Pnt aPRight (l1, 0, 0);
gp_Ax2 anAxesRight (aPRight, aVX, aVZ);
TopoDS_Shape aReductionRight = GEOMImpl_IAdvancedOperations::MakeThicknessReduction
TopoDS_Shape aReductionRight = AdvancedEngine_IOperations::MakeThicknessReduction
(anAxesRight, r1, w1, rR, wR, ltransR, lthinR, fuseReductions);
if (fuseReductions) {
@ -1803,7 +1799,7 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakePipeTShapeThicknessReduction
if (rI > aTol && wI > aTol && ltransI > aTol) {
gp_Pnt aPInci (0, 0, l2);
gp_Ax2 anAxesInci (aPInci, aVZ, aVX);
TopoDS_Shape aReductionInci = GEOMImpl_IAdvancedOperations::MakeThicknessReduction
TopoDS_Shape aReductionInci = AdvancedEngine_IOperations::MakeThicknessReduction
(anAxesInci, r2, w2, rI, wI, ltransI, lthinI, fuseReductions);
if (fuseReductions) {
@ -1848,7 +1844,7 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakePipeTShapeThicknessReduction
//function : MakeThicknessReduction
//purpose : Static method. Create one thickness reduction element.
//=======================================================================
TopoDS_Shape GEOMImpl_IAdvancedOperations::MakeThicknessReduction (gp_Ax2 theAxes,
TopoDS_Shape AdvancedEngine_IOperations::MakeThicknessReduction (gp_Ax2 theAxes,
const double R, const double W,
const double Rthin, const double Wthin,
const double Ltrans, const double Lthin,
@ -1956,26 +1952,26 @@ TopoDS_Shape GEOMImpl_IAdvancedOperations::MakeThicknessReduction (gp_Ax2 theAxe
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShape(double theR1, double theW1, double theL1,
AdvancedEngine_IOperations::MakePipeTShape(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
double theRR, double theWR, double theLtransR, double theLthinR,
double theRI, double theWI, double theLtransI, double theLthinI,
bool theHexMesh)
{
MESSAGE("GEOMImpl_IAdvancedOperations::MakePipeTShape");
MESSAGE("AdvancedEngine_IOperations::MakePipeTShape");
SetErrorCode(KO);
//Add a new object
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
GEOMImpl_IPipeTShape aData (aFunction);
AdvancedEngine_IPipeTShape aData (aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -1991,9 +1987,7 @@ Handle(TColStd_HSequenceOfTransient)
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -2110,7 +2104,7 @@ Handle(TColStd_HSequenceOfTransient)
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShapeWithPosition
AdvancedEngine_IOperations::MakePipeTShapeWithPosition
(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -2128,18 +2122,18 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeWithPosition
// TSHAPE CODE
/////////////////
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_BASIC);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
// Check new position
if (!CheckCompatiblePosition(theL1, theL2, theP1, theP2, theP3, 0.01)) {
return NULL;
}
GEOMImpl_IPipeTShape aData(aFunction);
AdvancedEngine_IPipeTShape aData(aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -2155,9 +2149,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeWithPosition
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -2282,7 +2274,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeWithPosition
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShapeChamfer
AdvancedEngine_IOperations::MakePipeTShapeChamfer
(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -2295,13 +2287,13 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamfer
//Add a new object
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_CHAMFER);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_CHAMFER);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
GEOMImpl_IPipeTShape aData(aFunction);
AdvancedEngine_IPipeTShape aData(aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -2319,9 +2311,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamfer
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -2405,9 +2395,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamfer
// Add thickness reduction elements
// at the three extremities: Left, Right and Incident
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (isTRL || isTRR || isTRI) {
TopoDS_Shape aResShape =
MakePipeTShapeThicknessReduction(aShape->GetValue(), theR1, theW1, theL1, theR2, theW2, theL2,
@ -2513,7 +2501,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamfer
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShapeChamferWithPosition
AdvancedEngine_IOperations::MakePipeTShapeChamferWithPosition
(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -2529,18 +2517,18 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamferWithPosition
//Add a new object
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_CHAMFER);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_CHAMFER);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
// Check new position
if (!CheckCompatiblePosition(theL1, theL2, theP1, theP2, theP3, 0.01)) {
return NULL;
}
GEOMImpl_IPipeTShape aData(aFunction);
AdvancedEngine_IPipeTShape aData(aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -2558,9 +2546,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamferWithPosition
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -2642,9 +2628,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamferWithPosition
// Add thickness reduction elements
// at the three extremities: Left, Right and Incident
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (isTRL || isTRR || isTRI) {
TopoDS_Shape aResShape =
MakePipeTShapeThicknessReduction(aShape->GetValue(), theR1, theW1, theL1, theR2, theW2, theL2,
@ -2752,7 +2736,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeChamferWithPosition
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet
AdvancedEngine_IOperations::MakePipeTShapeFillet
(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -2764,13 +2748,13 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet
//Add a new object
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_FILLET);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_FILLET);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
GEOMImpl_IPipeTShape aData(aFunction);
AdvancedEngine_IPipeTShape aData(aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -2787,9 +2771,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -2887,9 +2869,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet
// Add thickness reduction elements
// at the three extremities: Left, Right and Incident
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (isTRL || isTRR || isTRI) {
TopoDS_Shape aResShape =
MakePipeTShapeThicknessReduction(aShape->GetValue(), theR1, theW1, theL1, theR2, theW2, theL2,
@ -2994,7 +2974,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet
*/
//=============================================================================
Handle(TColStd_HSequenceOfTransient)
GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition
AdvancedEngine_IOperations::MakePipeTShapeFilletWithPosition
(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -3009,18 +2989,18 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition
//Add a new object
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_TSHAPE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_PipeTShapeDriver::GetID(), TSHAPE_FILLET);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_PipeTShapeDriver::GetID(), TSHAPE_FILLET);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_PipeTShapeDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_PipeTShapeDriver::GetID()) return NULL;
// Check new position
if (!CheckCompatiblePosition(theL1, theL2, theP1, theP2, theP3, 0.01)) {
return NULL;
}
GEOMImpl_IPipeTShape aData(aFunction);
AdvancedEngine_IPipeTShape aData(aFunction);
aData.SetR1(theR1);
aData.SetW1(theW1);
@ -3037,9 +3017,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition
//Compute the resulting value
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("TShape driver failed");
return NULL;
@ -3136,9 +3114,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition
// Add thickness reduction elements
// at the three extremities: Left, Right and Incident
try {
#if OCC_VERSION_LARGE > 0x06010000
OCC_CATCH_SIGNALS;
#endif
if (isTRL || isTRR || isTRI) {
TopoDS_Shape aResShape =
MakePipeTShapeThicknessReduction(aShape->GetValue(), theR1, theW1, theL1, theR2, theW2, theL2,
@ -3238,7 +3214,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDisk (double theR, double theRatio,
Handle(GEOM_Object) AdvancedEngine_IOperations::MakeDividedDisk (double theR, double theRatio,
int theOrientation, int thePattern)
{
SetErrorCode(KO);
@ -3254,13 +3230,13 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDisk (double theR,
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_DIVIDEDDISK);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_DividedDiskDriver::GetID(), DIVIDEDDISK_R_RATIO);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_DividedDiskDriver::GetID(), DIVIDEDDISK_R_RATIO);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_DividedDiskDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_DividedDiskDriver::GetID()) return NULL;
GEOMImpl_IDividedDisk aData (aFunction);
AdvancedEngine_IDividedDisk aData (aFunction);
aData.SetR(theR);
aData.SetRatio(theRatio);
@ -3269,9 +3245,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDisk (double theR,
//Compute the resulting value
try {
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("DividedDisk driver failed");
return NULL;
@ -3312,7 +3286,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDisk (double theR,
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDiskPntVecR (Handle(GEOM_Object) thePnt,
Handle(GEOM_Object) AdvancedEngine_IOperations::MakeDividedDiskPntVecR (Handle(GEOM_Object) thePnt,
Handle(GEOM_Object) theVec,
double theR,
double theRatio,
@ -3324,13 +3298,13 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDiskPntVecR (Handle
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_DIVIDEDDISK);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_DividedDiskDriver::GetID(), DIVIDEDDISK_R_VECTOR_PNT);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_DividedDiskDriver::GetID(), DIVIDEDDISK_R_VECTOR_PNT);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_DividedDiskDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_DividedDiskDriver::GetID()) return NULL;
GEOMImpl_IDividedDisk aData (aFunction);
AdvancedEngine_IDividedDisk aData (aFunction);
Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction();
Handle(GEOM_Function) aRefVec = theVec->GetLastFunction();
@ -3346,9 +3320,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDiskPntVecR (Handle
//Compute the resulting value
try {
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("DividedDisk driver failed");
return NULL;
@ -3389,7 +3361,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDiskPntVecR (Handle
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedCylinder (double theR,
Handle(GEOM_Object) AdvancedEngine_IOperations::MakeDividedCylinder (double theR,
double theH,
int thePattern)
{
@ -3436,7 +3408,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedCylinder (double th
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeSmoothingSurface (std::list<Handle(GEOM_Object)> thelPoints,
Handle(GEOM_Object) AdvancedEngine_IOperations::MakeSmoothingSurface (std::list<Handle(GEOM_Object)> thelPoints,
int theNbMax,
int theDegMax,
double theDMax)
@ -3447,13 +3419,13 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeSmoothingSurface (std::lis
Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_SMOOTHINGSURFACE);
//Add a new shape function with parameters
Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_SmoothingSurfaceDriver::GetID(), SMOOTHINGSURFACE_LPOINTS);
Handle(GEOM_Function) aFunction = aShape->AddFunction(AdvancedEngine_SmoothingSurfaceDriver::GetID(), SMOOTHINGSURFACE_LPOINTS);
if (aFunction.IsNull()) return NULL;
//Check if the function is set correctly
if (aFunction->GetDriverGUID() != GEOMImpl_SmoothingSurfaceDriver::GetID()) return NULL;
if (aFunction->GetDriverGUID() != AdvancedEngine_SmoothingSurfaceDriver::GetID()) return NULL;
GEOMImpl_ISmoothingSurface aData (aFunction);
AdvancedEngine_ISmoothingSurface aData (aFunction);
int aLen = thelPoints.size();
aData.SetLength(aLen);
@ -3474,9 +3446,7 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeSmoothingSurface (std::lis
//Compute the resulting value
try {
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
OCC_CATCH_SIGNALS;
#endif
if (!GetSolver()->ComputeFunction(aFunction)) {
SetErrorCode("SmoothingSurface driver failed");
return NULL;
@ -3505,4 +3475,3 @@ Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeSmoothingSurface (std::lis
return aShape;
}
/*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/

View File

@ -16,13 +16,14 @@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : GEOMImpl_IAdvancedOperations.hxx
// File : AdvancedEngine_IOperations.hxx
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
#ifndef _GEOMImpl_IAdvancedOperations_HXX_
#define _GEOMImpl_IAdvancedOperations_HXX_
#ifndef _AdvancedEngine_IOperations_HXX_
#define _AdvancedEngine_IOperations_HXX_
#include "AdvancedEngine.hxx"
#include <Utils_SALOME_Exception.hxx>
#include "GEOM_IOperations.hxx"
#include "GEOM_Engine.hxx"
#include "GEOM_Object.hxx"
@ -42,7 +43,8 @@ class GEOMImpl_IGroupOperations;
class Handle_Geom_Surface;
class TopTools_ListOfShape;
class GEOMImpl_IAdvancedOperations: public GEOM_IOperations {
class ADVANCEDENGINE_EXPORT AdvancedEngine_IOperations: public GEOM_IOperations
{
private:
bool MakePipeTShapePartition(Handle(GEOM_Object) theShape,
double theR1, double theW1, double theL1,
@ -129,7 +131,7 @@ public:
* false to obtain parts, useful for hexameshing)
* \retval TopoDS_Shape - Resulting shape
*/
Standard_EXPORT static TopoDS_Shape MakePipeTShapeThicknessReduction
static TopoDS_Shape MakePipeTShapeThicknessReduction
(TopoDS_Shape theShape,
double r1, double w1, double l1,
double r2, double w2, double l2,
@ -155,17 +157,17 @@ public:
* false to obtain parts, useful for hexameshing)
* \retval TopoDS_Shape - Resulting shape
*/
Standard_EXPORT static TopoDS_Shape MakeThicknessReduction (gp_Ax2 theAxes,
static TopoDS_Shape MakeThicknessReduction (gp_Ax2 theAxes,
const double R, const double W,
const double Rthin, const double Wthin,
const double Ltrans, const double Lthin,
bool fuse);
public:
Standard_EXPORT GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID);
Standard_EXPORT ~GEOMImpl_IAdvancedOperations();
AdvancedEngine_IOperations(GEOM_Engine* theEngine, int theDocID);
~AdvancedEngine_IOperations();
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShape(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -173,7 +175,7 @@ public:
double theRI, double theWI, double theLtransI, double theLthinI,
bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -184,7 +186,7 @@ public:
Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeChamfer(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -193,7 +195,7 @@ public:
double theH, double theW,
bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theH, double theW,
@ -205,7 +207,7 @@ public:
Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeFillet(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -213,7 +215,7 @@ public:
double theRI, double theWI, double theLtransI, double theLthinI,
double theRF, bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2,
double theRL, double theWL, double theLtransL, double theLthinL,
@ -224,22 +226,22 @@ public:
Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0);
Standard_EXPORT Handle(GEOM_Object) MakeDividedDisk (double theR, double theRatio,
Handle(GEOM_Object) MakeDividedDisk (double theR, double theRatio,
int theOrientation, int thePattern);
Standard_EXPORT Handle(GEOM_Object) MakeDividedDiskPntVecR (Handle(GEOM_Object) thePnt,
Handle(GEOM_Object) MakeDividedDiskPntVecR (Handle(GEOM_Object) thePnt,
Handle(GEOM_Object) theVec,
double theR,
double theRatio,
int thePattern);
Standard_EXPORT Handle(GEOM_Object) MakeDividedCylinder (double theR,
Handle(GEOM_Object) MakeDividedCylinder (double theR,
double theH,
int thePattern);
Standard_EXPORT Handle(GEOM_Object) MakeSmoothingSurface (std::list<Handle(GEOM_Object)> thelPoints,
Handle(GEOM_Object) MakeSmoothingSurface (std::list<Handle(GEOM_Object)> thelPoints,
int theNbMax,
int theDegMax,
double theDMax);
/*@@ insert new functions before this line @@ do not remove this line @@*/
};
#endif

View File

@ -22,7 +22,8 @@
#include <Standard_Stream.hxx>
#include "GEOM_IAdvancedOperations_i.hh"
#include "AdvancedEngine_IOperations_i.hh"
#include "AdvancedEngine_IOperations.hxx"
#include <utilities.h>
#include <OpUtil.hxx>
@ -36,10 +37,10 @@
* constructor:
*/
//=============================================================================
GEOM_IAdvancedOperations_i::GEOM_IAdvancedOperations_i(PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine, ::GEOMImpl_IAdvancedOperations* theImpl)
AdvancedEngine_IOperations_i::AdvancedEngine_IOperations_i(PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine, AdvancedEngine_IOperations* theImpl)
:GEOM_IOperations_i(thePOA, theEngine, theImpl)
{
MESSAGE("GEOM_IAdvancedOperations_i::GEOM_IAdvancedOperations_i");
MESSAGE("AdvancedEngine_IOperations_i::AdvancedEngine_IOperations_i");
}
//=============================================================================
@ -47,9 +48,9 @@ GEOM_IAdvancedOperations_i::GEOM_IAdvancedOperations_i(PortableServer::POA_ptr t
* destructor
*/
//=============================================================================
GEOM_IAdvancedOperations_i::~GEOM_IAdvancedOperations_i()
AdvancedEngine_IOperations_i::~AdvancedEngine_IOperations_i()
{
MESSAGE("GEOM_IAdvancedOperations_i::~GEOM_IAdvancedOperations_i");
MESSAGE("AdvancedEngine_IOperations_i::~AdvancedEngine_IOperations_i");
}
//=============================================================================
@ -68,7 +69,7 @@ GEOM_IAdvancedOperations_i::~GEOM_IAdvancedOperations_i()
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShape
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShape
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Boolean theHexMesh)
@ -114,7 +115,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShape
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Boolean theHexMesh,
@ -166,7 +167,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeWithPosition
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamfer
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeChamfer
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh)
@ -215,7 +216,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamfer
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamferWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeChamferWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh,
@ -265,7 +266,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamferWithPosition
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFillet
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeFillet
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRF, CORBA::Boolean theHexMesh)
@ -313,7 +314,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFillet
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFilletWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeFilletWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRF, CORBA::Boolean theHexMesh,
@ -361,7 +362,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFilletWithPosition
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTR
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTR
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -412,7 +413,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTR
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTRWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -469,7 +470,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRWithPosition
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRChamfer
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTRChamfer
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -523,7 +524,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRChamfer
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRChamferWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTRChamferWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -578,7 +579,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRChamferWithPosition
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRFillet
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTRFillet
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -631,7 +632,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRFillet
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
//=============================================================================
GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRFilletWithPosition
GEOM::ListOfGO* AdvancedEngine_IOperations_i::MakePipeTShapeTRFilletWithPosition
(CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
CORBA::Double theRL, CORBA::Double theWL, CORBA::Double theLtransL, CORBA::Double theLthinL,
@ -677,7 +678,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeTRFilletWithPosition
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedDisk (CORBA::Double theR,
GEOM::GEOM_Object_ptr AdvancedEngine_IOperations_i::MakeDividedDisk (CORBA::Double theR,
CORBA::Double theRatio,
CORBA::Short theOrientation,
GEOM::pattern thePattern)
@ -700,7 +701,7 @@ GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedDisk (CORBA::Double
* MakeDividedDiskPntVecR
*/
//=============================================================================
GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedDiskPntVecR (GEOM::GEOM_Object_ptr thePnt,
GEOM::GEOM_Object_ptr AdvancedEngine_IOperations_i::MakeDividedDiskPntVecR (GEOM::GEOM_Object_ptr thePnt,
GEOM::GEOM_Object_ptr theVec,
CORBA::Double theR,
CORBA::Double theRatio,
@ -734,7 +735,7 @@ GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedDiskPntVecR (GEOM::
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedCylinder (CORBA::Double theR,
GEOM::GEOM_Object_ptr AdvancedEngine_IOperations_i::MakeDividedCylinder (CORBA::Double theR,
CORBA::Double theH,
GEOM::pattern thePattern)
{
@ -761,7 +762,7 @@ GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedCylinder (CORBA::Do
* \return New GEOM_Object, containing the created shape.
*/
//=============================================================================
GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeSmoothingSurface (const GEOM::ListOfGO& thelPoints,
GEOM::GEOM_Object_ptr AdvancedEngine_IOperations_i::MakeSmoothingSurface (const GEOM::ListOfGO& thelPoints,
CORBA::Long theNbMax,
CORBA::Long theDegMax,
CORBA::Double theDMax)
@ -789,4 +790,8 @@ GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeSmoothingSurface (const GE
return GetObject(anObject);
}
/*@@ insert new functions before this line @@ do not remove this line @@*/
AdvancedEngine_IOperations* AdvancedEngine_IOperations_i::GetOperations()
{
return (AdvancedEngine_IOperations*)GetImpl();
}

View File

@ -17,31 +17,31 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : GEOM_IAdvancedOperations.hh
// File : AdvancedEngine_IOperations_i.hh
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
#ifndef _GEOM_IAdvancedOperations_i_HeaderFile
#define _GEOM_IAdvancedOperations_i_HeaderFile
#ifndef _AdvancedEngine_IOperations_i_HeaderFile
#define _AdvancedEngine_IOperations_i_HeaderFile
#include "GEOMImpl_Gen.hxx"
#include "AdvancedEngine.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(GEOM_Gen)
#include "GEOM_IOperations_i.hh"
#include "GEOM_Object_i.hh"
#include "GEOM_AdvancedEngine.hxx"
#include "GEOMImpl_IAdvancedOperations.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(GEOM_Gen)
#include CORBA_SERVER_HEADER(AdvancedGEOM)
class ADVANCEDENGINE_EXPORT GEOM_IAdvancedOperations_i :
public virtual POA_GEOM::GEOM_IAdvancedOperations,
class AdvancedEngine_IOperations;
class ADVANCEDENGINE_EXPORT AdvancedEngine_IOperations_i :
public virtual POA_GEOM::IAdvancedOperations,
public virtual GEOM_IOperations_i
{
public:
GEOM_IAdvancedOperations_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
::GEOMImpl_IAdvancedOperations* theImpl);
~GEOM_IAdvancedOperations_i();
AdvancedEngine_IOperations_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
AdvancedEngine_IOperations* theImpl);
~AdvancedEngine_IOperations_i();
// PipeTShape without thickness reduction
GEOM::ListOfGO* MakePipeTShape (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
@ -131,10 +131,8 @@ class ADVANCEDENGINE_EXPORT GEOM_IAdvancedOperations_i :
CORBA::Long theNbMax,
CORBA::Long theDegMax,
CORBA::Double theDMax);
/*@@ insert new functions before this line @@ do not remove this line @@*/
::GEOMImpl_IAdvancedOperations* GetOperations()
{ return (::GEOMImpl_IAdvancedOperations*)GetImpl(); }
AdvancedEngine_IOperations* GetOperations();
};
#endif

View File

@ -17,17 +17,17 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef _GEOMImpl_IPipeTShape_HXX_
#define _GEOMImpl_IPipeTShape_HXX_
#ifndef _AdvancedEngine_IPipeTShape_HXX_
#define _AdvancedEngine_IPipeTShape_HXX_
#include "GEOM_Function.hxx"
#include <TColStd_HArray1OfReal.hxx>
class GEOMImpl_IPipeTShape
class AdvancedEngine_IPipeTShape
{
public:
GEOMImpl_IPipeTShape(Handle(GEOM_Function) theFunction): _func(theFunction) {}
AdvancedEngine_IPipeTShape(Handle(GEOM_Function) theFunction): _func(theFunction) {}
void SetR1(double theR1) { _func->SetReal(TSHAPE_ARG_R1, theR1); }
double GetR1() { return _func->GetReal(TSHAPE_ARG_R1); }
@ -100,4 +100,4 @@ private:
Handle(GEOM_Function) _func;
};
#endif // _GEOMImpl_IPipeTShape_HXX_
#endif // _AdvancedEngine_IPipeTShape_HXX_

View File

@ -20,8 +20,8 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef _GEOMImpl_ISmoothingSurface_HXX_
#define _GEOMImpl_ISmoothingSurface_HXX_
#ifndef _AdvancedEngine_ISmoothingSurface_HXX_
#define _AdvancedEngine_ISmoothingSurface_HXX_
#include "GEOM_Function.hxx"
@ -31,10 +31,10 @@
#define SMOOTHINGSURFACE_ARG_DEG_MAX 4
#define SMOOTHINGSURFACE_ARG_D_MAX 5
class GEOMImpl_ISmoothingSurface
class AdvancedEngine_ISmoothingSurface
{
public:
GEOMImpl_ISmoothingSurface(Handle(GEOM_Function) theFunction): _func(theFunction) {}
AdvancedEngine_ISmoothingSurface(Handle(GEOM_Function) theFunction): _func(theFunction) {}
void SetLength(int theLen) { _func->SetInteger(SMOOTHINGSURFACE_ARG_LENG, theLen); }
int GetLength() { return _func->GetInteger(SMOOTHINGSURFACE_ARG_LENG); }
@ -55,4 +55,4 @@ private:
Handle(GEOM_Function) _func;
};
#endif // _GEOMImpl_ISmoothingSurface_HXX_
#endif // _AdvancedEngine_ISmoothingSurface_HXX_

Some files were not shown because too many files have changed in this diff Show More