NCPROGRAM Management

NCPROGRAM Management

Felipe_Callegario
Advocate Advocate
1,081 Views
9 Replies
Message 1 of 10

NCPROGRAM Management

Felipe_Callegario
Advocate
Advocate

I would like some help with my macro, I want to make it activate the work plane according to its respective NC program.

 

 

ENTITY LIST $Selected_ncprogram = INPUT ENTITY MULTIPLE ncprogram "Selecione Programa"
EXPLORER SELECT NCPROGRAM root
FOREACH $nc in $Selected_ncprogram {
STRING $full_path = pathname('ncprogram',$nc.name)
EXPLORER SELECT NCProgram $full_path TOGGLE
}

FOREACH ent IN explorer_selected_entities() {
STRING $SNAP_ncp = project_pathname(0) + "\SetupSheets_files\snapshots\ncp-x" + $entity("ncprogram", $ent.Name).id + ".png"
IF file_exists($SNAP_ncp) {
DELETE FILE $SNAP_ncp
}
DIALOGS MESSAGE OFF
//DEACTIVATE WORKPLANE
//ACTIVATE WORKPLANE FROMENTITY NCPROGRAM $ent.Name
DIALOGS MESSAGE ON
EDIT MODEL ALL DESELECT ALL
DEACTIVATE NCPROGRAM
ROTATE TRANSFORM TOP
UNDRAW NCPROGRAM ALL
DEACTIVATE TOOLPATH
UNDRAW TOOLPATH ALL
DEACTIVATE TOOL
UNDRAW TOOL ALL
DEACTIVATE BOUNDARY
UNDRAW BOUNDARY ALL
DEACTIVATE PATTERN
UNDRAW PATTERN ALL
DEACTIVATE FEATURESET
UNDRAW FEATURESET ALL
UNDRAW AXES
UNDRAW BLOCK



IF entity_exists("Workplane",'$ent.Name')>1 {

ACTIVATE WORKPLANE FROMENTITY NCPROGRAM $ent.Name
ROTATE TRANSFORM TOP
MACRO PAUSE "Posicione a vista"
//DRAW NCPROGRAM_PATHS $ent.Name
STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
DOCOMMAND $cmd
UNDRAW NCPROGRAM_PATHS $ent.Name
GRAPHICS UNLOCK
} ELSE {

ROTATE TRANSFORM TOP
MACRO PAUSE "Posicione a vista"
DRAW NCPROGRAM_PATHS $ent.Name
STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
DOCOMMAND $cmd
UNDRAW NCPROGRAM_PATHS $ent.Name
}
}

0 Likes
Accepted solutions (1)
1,082 Views
9 Replies
Replies (9)
Message 2 of 10

LasseFred
Collaborator
Collaborator

Use this:

 

$entity('NCProgram','$Nc.name').OutputWorkplane.Name

 

______________________
Lasse F.
Message 3 of 10

Felipe_Callegario
Advocate
Advocate

Thanks for your reply but could you help me where should I put it
because I'm replacing and it's giving this error.

 

This one :

IF entity_exists("Workplane",'$ent.Name')>1 {

 

$entity('NCProgram','$Nc.name').OutputWorkplane.Name

 

 

0 Likes
Message 4 of 10

nguyenthinhvt95
Advocate
Advocate

Hi @Felipe_Callegario 

It think you should try:

IF entity_exists("Workplane",'$ent.Name') {

Instead of:

IF entity_exists("Workplane",'$ent.Name')>1  {

 

 

 

0 Likes
Message 5 of 10

LasseFred
Collaborator
Collaborator

Try this:

there might be some errors. i made it on my phone

	ENTITY LIST $Selected_ncprogram = INPUT ENTITY MULTIPLE ncprogram "Selecione Programa"
	EXPLORER SELECT NCPROGRAM root
	
		FOREACH $nc in $Selected_ncprogram {
		STRING $full_path = pathname('ncprogram',$nc.name)
		EXPLORER SELECT NCProgram $full_path TOGGLE
		}

			FOREACH ent IN explorer_selected_entities() {
			STRING $SNAP_ncp = project_pathname(0) + "\SetupSheets_files\snapshots\ncp-x" + $entity("ncprogram", $ent.Name).id + ".png"
			IF file_exists($SNAP_ncp) {
			DELETE FILE $SNAP_ncp
			}
			
			DIALOGS MESSAGE OFF
			//DEACTIVATE WORKPLANE
			//ACTIVATE WORKPLANE FROMENTITY NCPROGRAM $ent.Name
			DIALOGS MESSAGE ON
			EDIT MODEL ALL DESELECT ALL
			DEACTIVATE NCPROGRAM
			ROTATE TRANSFORM TOP
			UNDRAW NCPROGRAM ALL
			DEACTIVATE TOOLPATH
			UNDRAW TOOLPATH ALL
			DEACTIVATE TOOL
			UNDRAW TOOL ALL
			DEACTIVATE BOUNDARY
			UNDRAW BOUNDARY ALL
			DEACTIVATE PATTERN
			UNDRAW PATTERN ALL
			DEACTIVATE FEATURESET
			UNDRAW FEATURESET ALL
			UNDRAW AXES
			UNDRAW BLOCK

		STRING $NCWORKPLANE = $entity('NCProgram','$ent.name').OutputWorkplane.Name
		IF $NCWORKPLANE > "" {
		//IF entity_exists("Workplane",'$ent.Name')>1 {
		//ACTIVATE WORKPLANE FROMENTITY NCPROGRAM $ent.Name
		ACTIVATE WORKPLANE $NCWORKPLANE
		ROTATE TRANSFORM TOP
		MACRO PAUSE "Posicione a vista"
		//DRAW NCPROGRAM_PATHS $ent.Name
		STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
		DOCOMMAND $cmd
		UNDRAW NCPROGRAM_PATHS $ent.Name
		GRAPHICS UNLOCK
		
		} ELSE {

		ROTATE TRANSFORM TOP
		MACRO PAUSE "Posicione a vista"
		DRAW NCPROGRAM_PATHS $ent.Name
		STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
		DOCOMMAND $cmd
		UNDRAW NCPROGRAM_PATHS $ent.Name
		}
	}

 

______________________
Lasse F.
0 Likes
Message 6 of 10

Felipe_Callegario
Advocate
Advocate

Thanks for the answers, but it is still not activating the corresponding workplane.

0 Likes
Message 7 of 10

LasseFred
Collaborator
Collaborator

It works fine here.

 

Do you have a NC-Workplane in your NC-Program?

______________________
Lasse F.
0 Likes
Message 8 of 10

rafael.sansao
Advisor
Advisor
Accepted solution
ENTITY LIST $Selected_ncprogram = INPUT ENTITY MULTIPLE ncprogram "Selecione Programa"
EXPLORER SELECT NCPROGRAM root
FOREACH $nc in $Selected_ncprogram {
	STRING $full_path = pathname('ncprogram',$nc.name)
	EXPLORER SELECT NCProgram $full_path TOGGLE
}

FOREACH ent IN $Selected_ncprogram {
	STRING $SNAP_ncp = project_pathname(0) + "\SetupSheets_files\snapshots\ncp-x" + $entity("ncprogram", $ent.Name).id + ".png"
	IF file_exists($SNAP_ncp) {
		DELETE FILE $SNAP_ncp
	}
	DIALOGS MESSAGE OFF
	//DEACTIVATE WORKPLANE
	//ACTIVATE WORKPLANE FROMENTITY NCPROGRAM $ent.Name
	DIALOGS MESSAGE ON
	EDIT MODEL ALL DESELECT ALL
	DEACTIVATE NCPROGRAM
	ROTATE TRANSFORM TOP
	UNDRAW NCPROGRAM ALL
	DEACTIVATE TOOLPATH
	UNDRAW TOOLPATH ALL
	DEACTIVATE TOOL
	UNDRAW TOOL ALL
	DEACTIVATE BOUNDARY
	UNDRAW BOUNDARY ALL
	DEACTIVATE PATTERN
	UNDRAW PATTERN ALL
	DEACTIVATE FEATURESET
	UNDRAW FEATURESET ALL
	UNDRAW AXES
	UNDRAW BLOCK
	FOREACH item IN components($ent) {
		IF lcase(item.RootType) == "nctoolpath" {
			IF NOT ERROR($entity("Toolpath", $item.Name).Workplane) {
				STRING $wpName = $entity("Toolpath", $item.Name).Workplane.Name
				ACTIVATE WORKPLANE $wpName
				ROTATE TRANSFORM TOP
				MACRO PAUSE "Posicione a vista"
				//DRAW NCPROGRAM_PATHS $ent.Name
				STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
				DOCOMMAND $cmd
				UNDRAW NCPROGRAM_PATHS $ent.Name
				GRAPHICS UNLOCK
			} ELSE {
				DEACTIVATE WORKPLANE
				ROTATE TRANSFORM TOP
				MACRO PAUSE "Posicione a vista"
				DRAW NCPROGRAM_PATHS $ent.Name
				STRING $cmd = 'KEEP SNAPSHOT NCPROGRAM "' + $ent.Name + '" CURRENT'
				DOCOMMAND $cmd
				UNDRAW NCPROGRAM_PATHS $ent.Name
			}
			BREAK
		}
	}
}

Rafael Sansão

OptiNC - www.optinc.tech

EESignature

Message 9 of 10

Felipe_Callegario
Advocate
Advocate

Thanks a lot @LasseFred , @nguyenthinhvt95 , who took the time to help me, thanks @rafael.sansao , for your solution, now it's doing what I wanted

 

0 Likes
Message 10 of 10

ramaprasad_narayan
Enthusiast
Enthusiast

Hello,

 

i need a help with this macro to pause each toolpath. 

could you please help me

 

FOREACH pg IN folder('NCProgram') {
ACTIVATE NCProgram $pg.Name
KEEP SNAPSHOT NCPROGRAM ; ALL CURRENT_VIEW
TEXTINFO ACCEPT
}

 

at the moment it is running continually. i want to pause(MACRO PAUSE " VIEW OF THE TOOLPATHS IS OK?") 

 

snapshot required including toolpath with custom view.

 

thank you.

Ramaprasad

 

0 Likes