Open CASCADE Technology 7.8.2.dev
XSDRAW Class Reference

Basic package to work functions of X-STEP (IFSelect & Co) under control of DRAW. More...

#include <XSDRAW.hxx>

Static Public Member Functions

static void ChangeCommand (const Standard_CString oldname, const Standard_CString newname)
 Takes variables to/from the DRAW session Implements ProgressIndicator for DRAW Changes the name under which a command of xstep is known by Draw. This allows to avoid collisions To be called before LoadDraw or any other xstep initialisation.
 
static void RemoveCommand (const Standard_CString oldname)
 Removes a command from the interpretation list of Draw To be called before LoadDraw or any other xstep initialisation.
 
static Standard_Boolean LoadSession ()
 Defines the basic context to work with a X-STEP Session : it performs the basic inits, also records the Controller If the Controller is not yet set, it must be set after (call to SetController) LoadSession is called by LoadDraw Returns True the first time, False if already called.
 
static void LoadDraw (Draw_Interpretor &theCommands)
 Defines the context for using a X-STEP Session under DRAW Once the various INITs have been done, a call to LoadDraw records the defined commands for the X-STEP SessionPilot, into the DRAW interpretation list. "Set" commands are accessed under command xset SDS>xset name command ... Other commands can be accessed directly or under command xstep SDS>command ... and SDS>xstep command ... are equivalent.
 
static Standard_Integer Execute (const Standard_CString command, const Standard_CString var="")
 Allows to execute a xstep-draw command from C++ program Fixed form : Execute("command args..."); Form with a variable text part : add s for the variable : Execute ("command args %s args..",var) [var is a CString] Returns the same value as returned by call from DRAW.
 
static Handle< IFSelect_SessionPilotPilot ()
 Returns the SessionPilot (can be used for direct call)
 
static void SetSession (const Handle< XSControl_WorkSession > &theSession)
 Updates the WorkSession defined in AddDraw (through Pilot) It is from XSControl, it brings functionalities for Transfers.
 
static const Handle< XSControl_WorkSessionSession ()
 Returns the WorkSession defined in AddDraw (through Pilot) It is from XSControl, it brings functionalities for Transfers.
 
static void SetController (const Handle< XSControl_Controller > &control)
 Defines a Controller for the command "xinit" and applies it (i.e. calls its method Customise)
 
static Handle< XSControl_ControllerController ()
 Returns the Controller, a Null Handle if not yet defined.
 
static Standard_Boolean SetNorm (const Standard_CString normname)
 Sets a norm by its name (controller recorded as <normname> ) Returns True if done, False if this norm is unknown.
 
static Handle< Interface_ProtocolProtocol ()
 Returns the actually defined Protocol.
 
static Handle< Interface_InterfaceModelModel ()
 Returns the Model of the Session (it is Session()->Model() )
 
static void SetModel (const Handle< Interface_InterfaceModel > &model, const Standard_CString file="")
 Sets a Model in session (it is Session()->SetModel(model) ) If <file> is defined, SetLoadedFile is also done.
 
static Handle< Interface_InterfaceModelNewModel ()
 Produces a new model (from the Controller), can be Null Does not set it in the session.
 
static Handle< Standard_TransientEntity (const Standard_Integer num)
 Returns the entity n0 <num> of the Model of the Session (it is StartingEntity) Null Handle if <num> is not suitable.
 
static Standard_Integer Number (const Handle< Standard_Transient > &ent)
 Returns the number of an entity in the Model (StartingNumber) 0 if <ent> unknown in the model, or null.
 
static void SetTransferProcess (const Handle< Standard_Transient > &TP)
 Sets a TransferProcess in order to analyse it (see Activator) It can be either a FinderProcess or a TransientProcess, in that case a new TransferReader is created on it.
 
static Handle< Transfer_TransientProcessTransientProcess ()
 Returns the TransferProcess : TransientProcess detained by the TransferReader.
 
static Handle< Transfer_FinderProcessFinderProcess ()
 Returns the FinderProcess, detained by the TransferWriter.
 
static void InitTransferReader (const Standard_Integer mode)
 Initialises a TransferReader, according to mode : 0 nullifies it, 1 clears it (not nullify) 2 sets it with TransientProcess & Model 3 idem plus roots of TransientProcess Remark : called with 0 at least at each SetModel/NewModel.
 
static Handle< XSControl_TransferReaderTransferReader ()
 Returns the current TransferReader, can be null It detains the TransientProcess.
 
static Handle< Standard_TransientGetEntity (const Standard_CString name="")
 Takes the name of an entity, either as argument, or (if <name> is empty) on keyboard, and returns the entity name can be a label or a number (in alphanumeric), it is searched by NumberFromLabel from WorkSession. If <name> doesn't match en entity, a Null Handle is returned.
 
static Standard_Integer GetEntityNumber (const Standard_CString name="")
 Same as GetEntity, but returns the number in the model of the entity. Returns 0 for null handle.
 
static Handle< TColStd_HSequenceOfTransient > GetList (const Standard_CString first="", const Standard_CString second="")
 Evaluates and returns a list of entity, from : keyboard if <first> and <second> are empty, see below first if second is empty : can be a number/label of an entity or the name of a selection to be evaluated (standard) first : name of a selection, evaluated from a list defined by second In case of failure, returns a Null Handle.
 
static Standard_Boolean FileAndVar (const Standard_CString file, const Standard_CString var, const Standard_CString def, TCollection_AsciiString &resfile, TCollection_AsciiString &resvar)
 Analyses given file name and variable name, with a default name for variables. Returns resulting file name and variable name plus status "file to read"(True) or "already read"(False) In the latter case, empty resfile means no file available.
 
static Standard_Integer MoreShapes (Handle< TopTools_HSequenceOfShape > &list, const Standard_CString name)
 Analyses a name as designating Shapes from DRAW variables or XSTEP transfer (last Transfer on Reading). <name> can be : "*" : all the root shapes produced by last Transfer (Read) i.e. considers roots of the TransientProcess a name : a name of a variable DRAW.
 
static Standard_Real GetLengthUnit (const Handle< TDocStd_Document > &theDoc=nullptr)
 Extracts length unit from the static interface or document. Document unit has the highest priority.
 
static XSControl_WorkSessionMapWorkSessionList ()
 Returns avaliable work sessions with their associated files.
 
static void CollectActiveWorkSessions (const Handle< XSControl_WorkSession > &theWS, const TCollection_AsciiString &theName, XSControl_WorkSessionMap &theMap)
 Binds session and name into map recursively. Recursively means extract sub-sessions from main session.
 
static void CollectActiveWorkSessions (const TCollection_AsciiString &theName)
 Binds current session with input name.
 
static void Factory (Draw_Interpretor &theDI)
 Loads all Draw commands of XSDRAW. Used for plugin.
 

Detailed Description

Basic package to work functions of X-STEP (IFSelect & Co) under control of DRAW.

Works with some "static" data : a SessionPilot (used to run) with its WorkSession and Model and TransferReader, a FinderProcess

Member Function Documentation

◆ ChangeCommand()

static void XSDRAW::ChangeCommand ( const Standard_CString oldname,
const Standard_CString newname )
static

Takes variables to/from the DRAW session Implements ProgressIndicator for DRAW Changes the name under which a command of xstep is known by Draw. This allows to avoid collisions To be called before LoadDraw or any other xstep initialisation.

◆ CollectActiveWorkSessions() [1/2]

static void XSDRAW::CollectActiveWorkSessions ( const Handle< XSControl_WorkSession > & theWS,
const TCollection_AsciiString & theName,
XSControl_WorkSessionMap & theMap )
static

Binds session and name into map recursively. Recursively means extract sub-sessions from main session.

Parameters
[in]theWSthe session object
[in]theNamethe session file name
[out]theMapcollection to keep session info

◆ CollectActiveWorkSessions() [2/2]

static void XSDRAW::CollectActiveWorkSessions ( const TCollection_AsciiString & theName)
static

Binds current session with input name.

Parameters
[in]theNamethe session file name

◆ Controller()

static Handle< XSControl_Controller > XSDRAW::Controller ( )
static

Returns the Controller, a Null Handle if not yet defined.

◆ Entity()

static Handle< Standard_Transient > XSDRAW::Entity ( const Standard_Integer num)
static

Returns the entity n0 <num> of the Model of the Session (it is StartingEntity) Null Handle if <num> is not suitable.

◆ Execute()

static Standard_Integer XSDRAW::Execute ( const Standard_CString command,
const Standard_CString var = "" )
static

Allows to execute a xstep-draw command from C++ program Fixed form : Execute("command args..."); Form with a variable text part : add s for the variable : Execute ("command args %s args..",var) [var is a CString] Returns the same value as returned by call from DRAW.

◆ Factory()

static void XSDRAW::Factory ( Draw_Interpretor & theDI)
static

Loads all Draw commands of XSDRAW. Used for plugin.

◆ FileAndVar()

static Standard_Boolean XSDRAW::FileAndVar ( const Standard_CString file,
const Standard_CString var,
const Standard_CString def,
TCollection_AsciiString & resfile,
TCollection_AsciiString & resvar )
static

Analyses given file name and variable name, with a default name for variables. Returns resulting file name and variable name plus status "file to read"(True) or "already read"(False) In the latter case, empty resfile means no file available.

If <file> is null or empty or equates ".", considers Session and returned status is False Else, returns resfile = file and status is True If is neither null nor empty, resvar = var Else, the root part of <resfile> is considered, if defined Else, <def> is taken

◆ FinderProcess()

static Handle< Transfer_FinderProcess > XSDRAW::FinderProcess ( )
static

Returns the FinderProcess, detained by the TransferWriter.

◆ GetEntity()

static Handle< Standard_Transient > XSDRAW::GetEntity ( const Standard_CString name = "")
static

Takes the name of an entity, either as argument, or (if <name> is empty) on keyboard, and returns the entity name can be a label or a number (in alphanumeric), it is searched by NumberFromLabel from WorkSession. If <name> doesn't match en entity, a Null Handle is returned.

◆ GetEntityNumber()

static Standard_Integer XSDRAW::GetEntityNumber ( const Standard_CString name = "")
static

Same as GetEntity, but returns the number in the model of the entity. Returns 0 for null handle.

◆ GetLengthUnit()

static Standard_Real XSDRAW::GetLengthUnit ( const Handle< TDocStd_Document > & theDoc = nullptr)
static

Extracts length unit from the static interface or document. Document unit has the highest priority.

Returns
length unit in MM. 1.0 by default

◆ GetList()

static Handle< TColStd_HSequenceOfTransient > XSDRAW::GetList ( const Standard_CString first = "",
const Standard_CString second = "" )
static

Evaluates and returns a list of entity, from : keyboard if <first> and <second> are empty, see below first if second is empty : can be a number/label of an entity or the name of a selection to be evaluated (standard) first : name of a selection, evaluated from a list defined by second In case of failure, returns a Null Handle.

◆ InitTransferReader()

static void XSDRAW::InitTransferReader ( const Standard_Integer mode)
static

Initialises a TransferReader, according to mode : 0 nullifies it, 1 clears it (not nullify) 2 sets it with TransientProcess & Model 3 idem plus roots of TransientProcess Remark : called with 0 at least at each SetModel/NewModel.

◆ LoadDraw()

static void XSDRAW::LoadDraw ( Draw_Interpretor & theCommands)
static

Defines the context for using a X-STEP Session under DRAW Once the various INITs have been done, a call to LoadDraw records the defined commands for the X-STEP SessionPilot, into the DRAW interpretation list. "Set" commands are accessed under command xset SDS>xset name command ... Other commands can be accessed directly or under command xstep SDS>command ... and SDS>xstep command ... are equivalent.

Only the command xinit is accessed directly only : SDS>xinit (from the already defined Controller) SDS>xinit iges (first defines the Controller as for "iges")

It also records the function to be called by DRAW (not declared because specific). And it defines the context variables, i.e. a WorkSession, then it calls SetController with the currently defined Controller Remark : at least, the standard commands are recorded

See also Controller : it is part of the Context, but it must be precised separately

◆ LoadSession()

static Standard_Boolean XSDRAW::LoadSession ( )
static

Defines the basic context to work with a X-STEP Session : it performs the basic inits, also records the Controller If the Controller is not yet set, it must be set after (call to SetController) LoadSession is called by LoadDraw Returns True the first time, False if already called.

◆ Model()

static Handle< Interface_InterfaceModel > XSDRAW::Model ( )
static

Returns the Model of the Session (it is Session()->Model() )

◆ MoreShapes()

static Standard_Integer XSDRAW::MoreShapes ( Handle< TopTools_HSequenceOfShape > & list,
const Standard_CString name )
static

Analyses a name as designating Shapes from DRAW variables or XSTEP transfer (last Transfer on Reading). <name> can be : "*" : all the root shapes produced by last Transfer (Read) i.e. considers roots of the TransientProcess a name : a name of a variable DRAW.

Returns the count of designated Shapes. Their list is put in

If

null, it is firstly created. Then it is completed (Append without Clear) by the Shapes found Returns 0 if no Shape could be found

◆ NewModel()

static Handle< Interface_InterfaceModel > XSDRAW::NewModel ( )
static

Produces a new model (from the Controller), can be Null Does not set it in the session.

◆ Number()

static Standard_Integer XSDRAW::Number ( const Handle< Standard_Transient > & ent)
static

Returns the number of an entity in the Model (StartingNumber) 0 if <ent> unknown in the model, or null.

◆ Pilot()

static Handle< IFSelect_SessionPilot > XSDRAW::Pilot ( )
static

Returns the SessionPilot (can be used for direct call)

◆ Protocol()

static Handle< Interface_Protocol > XSDRAW::Protocol ( )
static

Returns the actually defined Protocol.

◆ RemoveCommand()

static void XSDRAW::RemoveCommand ( const Standard_CString oldname)
static

Removes a command from the interpretation list of Draw To be called before LoadDraw or any other xstep initialisation.

◆ Session()

static const Handle< XSControl_WorkSession > XSDRAW::Session ( )
static

Returns the WorkSession defined in AddDraw (through Pilot) It is from XSControl, it brings functionalities for Transfers.

◆ SetController()

static void XSDRAW::SetController ( const Handle< XSControl_Controller > & control)
static

Defines a Controller for the command "xinit" and applies it (i.e. calls its method Customise)

◆ SetModel()

static void XSDRAW::SetModel ( const Handle< Interface_InterfaceModel > & model,
const Standard_CString file = "" )
static

Sets a Model in session (it is Session()->SetModel(model) ) If <file> is defined, SetLoadedFile is also done.

◆ SetNorm()

static Standard_Boolean XSDRAW::SetNorm ( const Standard_CString normname)
static

Sets a norm by its name (controller recorded as <normname> ) Returns True if done, False if this norm is unknown.

◆ SetSession()

static void XSDRAW::SetSession ( const Handle< XSControl_WorkSession > & theSession)
static

Updates the WorkSession defined in AddDraw (through Pilot) It is from XSControl, it brings functionalities for Transfers.

◆ SetTransferProcess()

static void XSDRAW::SetTransferProcess ( const Handle< Standard_Transient > & TP)
static

Sets a TransferProcess in order to analyse it (see Activator) It can be either a FinderProcess or a TransientProcess, in that case a new TransferReader is created on it.

◆ TransferReader()

static Handle< XSControl_TransferReader > XSDRAW::TransferReader ( )
static

Returns the current TransferReader, can be null It detains the TransientProcess.

◆ TransientProcess()

static Handle< Transfer_TransientProcess > XSDRAW::TransientProcess ( )
static

Returns the TransferProcess : TransientProcess detained by the TransferReader.

◆ WorkSessionList()

static XSControl_WorkSessionMap & XSDRAW::WorkSessionList ( )
static

Returns avaliable work sessions with their associated files.


The documentation for this class was generated from the following file: