Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Hull and Outfitting

Example 9

  • Last UpdatedJan 20, 2023
  • 2 minute read

This macro is supposed to be started from the General Diagrams application.

All cables without interference class and component defined will be drawn red.

All cables with both interference class and component defined will be drawn green.

All cables with either interference class or component defined will be drawn blue.

The same function for Equipments with the data room and component.

MACRO, OUTF_DIAG_COLOUR;

! Declarations

DECLARE, A1, STRING;

DECLARE, COMPNAME, STRING;

DECLARE, DELIM, STRING;

DECLARE, DWG, STRING;

DECLARE, E1, EXTRACT;

DECLARE, INDEX,INTEGER;

DECLARE, INT_C, STRING;

DECLARE, LOOPMAX, INTEGER;

DECLARE, MODNAME, STRING;

DECLARE, PROJ, STRING;

DECLARE, ROOM,STRING;

DECLARE, STAT, INTEGER;

DECLARE, SUB1, STRING;

DECLARE, SUB2, STRING;

DECLARE, SUB3, STRING;

! Initiate

ASSIGN, DELIM,'-';

! Get the drawing name

DRAWING_NAME,DWG;

! Use data extraction to see which cables that are drawn in the diagram

ASSIGN,A1,'DRA(DWG).VIE(*).NCABLE';

EXTRACT,E1,A1;

GET/EXTRACT=(LOOPMAX,STAT,E1,DWG,,);

IF,STAT == 1;

LOOP,INDEX,1:LOOPMAX;

ASSIGN,A1,'DRA(DWG).VIE(*).CABLE(INDEX).NAME';

EXTRACT,E1,A1;

GET/EXTRACT=(MODNAME,STAT,E1,DWG,,INDEX,);

IF,STAT == 1;

! Get the cable data by using data extraction

SPLIT,MODNAME,DELIM,PROJ,CAB_SYS,CAB_NAM,SUB2,SUB3;

ASSIGN,CABLE_NAME,CAB_SYS&DELIM&CAB_NAM;

ASSIGN,A1,'CABLE(PROJ).CAB_M(CABLE_NAME). COMP_N';EXTRACT,E1,A1;

GET/EXTRACT=(COMPNAME,STAT,E1,PROJ,

CABLE_NAME,);

IF,STAT == 0;

ASSIGN,COMPNAME,'‘;

ENDIF;

ASSIGN,A1,

'CABLE(PROJ).CAB_M(CABLE_NAME).EL_PROP.INT_C';

EXTRACT,E1,A1;

GET/EXTRACT=(INT_C,STAT,E1,PROJ,CABLE_NAME,,);

IF,STAT == 0;

ASSIGN,INT_C,'‘;

ENDIF;

! Draw cables without any data red

IF,COMPNAME == ‘' AND INT_C == ‘';

CHANGEDRAW,'CABLE',MODNAME

/MARKINGCOLOUR='RED';

ELSE;

! Draw cables with all data green

IF,COMPNAME /= ‘' AND INT_C /= ‘';

CHANGEDRAW,'CABLE',MODNAME

/MARKINGCOLOUR='GREEN';

! Draw ca bles with some date blue

ELSE;

CHANGEDRAW,'CABLE',MODNAME

/MARKINGCOLOUR='BLUE';

ENDIF;

ENDIF;

ENDIF;

ENDLOOP;

ENDIF,

! Use data extraction to see which equipments that are drawn in the diagram

ASSIGN,A1,'DRA(DWG).VIE(*).NEQUIP';

EXTRACT,E1,A1;

GET/EXTRACT=(LOOPMAX,STAT,E1,DWG,,);

IF,STAT == 1;

LOOP,INDEX,1:LOOPMAX;

ASSIGN,A1,'DRA(DWG).VIE(*).EQUIP(INDEX).NAME';

EXTRACT,E1,A1;

GET/EXTRACT=(MODNAME,STAT,E1,DWG,,INDEX,);

IF,STAT == 1;

! Get the equipment data by using data extraction

SPLIT,MODNAME,DELIM,PROJ,EQ_NAME,SUB1,SUB2,SUB3;

ASSIGN,A1,'EQUIP(PROJ).ITEM(EQ_NAME).COMP_N';

EXTRACT,E1,A1;

GET/EXTRACT=(COMPNAME,STAT,E1,PROJ,EQ_NAME,);

IF,STAT == 0;

ASSIGN,COMPNAME,'‘;

ENDIF;

ASSIGN,A1,'EQUIP(PROJ).ITEM(EQ_NAME).ROOM';

EXTRACT,E1,A1;

GET/EXTRACT=(ROOM,STAT,E1,PROJ,EQ_NAME,);

IF,STAT == 0;

ASSIGN,ROOM,'‘;

ENDIF;

! Draw equipment items without any data red

IF,COMPNAME == ‘' AND ROOM == ‘';

CHANGEDRAW,'EQUIP',MODNAME/

MARKINGCOLOUR='RED';

ELSE;

! Draw equipment items with all data green

IF,COMPNAME /= ‘' AND ROOM /= ‘';

CHANGEDRAW,'EQUIP',MODNAME

/MARKINGCOLOUR='GREEN';

! Draw equipment items with some date blue

ELSE;

CHANGEDRAW,'EQUIP',MODNAME

/MARKINGCOLOUR='BLUE';

ENDIF;

ENDIF;

ENDIF;

ENDLOOP;

ENDIF,

ENDMACRO;

The following macro would change the colours of the equipments and cables back to be the one defined by the default file.

MACRO, OUTF_DIAG_DEFAULT;

! Declarations

DECLARE, A1, STRING;

DECLARE, DWG,STRING;

DECLARE, E1, EXTRACT;

DECLARE, INDEX, INTEGER;

DECLARE, LOOPMAX, INTEGER;

DECLARE, MODNAME, STRING;

DECLARE, STAT, INTEGER;

! Get the drawing name

DRAWING_NAME,DWG;

! Use data extraction to see which cables that are drawn in the diagram

ASSIGN,A1,'DRA(DWG).VIE(*).NCABLE';

EXTRACT,E1,A1;

GET/EXTRACT=(LOOPMAX,STAT,E1,DWG,,);

IF,STAT == 1;

LOOP,INDEX,1:LOOPMAX;

ASSIGN,A1,'DRA(DWG).VIE(*).CABLE(INDEX).NAME';

EXTRACT,E1,A1;

GET/EXTRACT=(MODNAME,STAT,E1,DWG,,INDEX,);

IF,STAT == 1;

CHANGEDRAW,'CABLE',MODNAME

/MARKINGCOLOUR='DEFAULT';

ENDIF;

ENDLOOP;

ENDIF;

! Use data extraction to see which equipments that are drawn in the diagram

ASSIGN,A1,'DRA(DWG).VIE(*).NEQUIP';

EXTRACT,E1,A1;

GET/EXTRACT=(LOOPMAX,STAT,E1,DWG,,);

IF,STAT == 1;

LOOP,INDEX,1:LOOPMAX;

ASSIGN,A1,'DRA(DWG).VIE(*).EQUIP(INDEX).NAME';

EXTRACT,E1,A1;

GET/EXTRACT=(MODNAME,STAT,E1,DWG,,INDEX,);

IF,STAT == 1;

CHANGEDRAW,'EQUIP',MODNAME

/MARKINGCOLOUR='DEFAULT';

ENDIF;

ENDLOOP;

ENDIF;

ENDMACRO;

TitleResults for “How to create a CRG?”Also Available in