HELP PROBLEM

HELP PROBLEM

arnoldiW3K8A
Contributor Contributor
636 Views
6 Replies
Message 1 of 7

HELP PROBLEM

arnoldiW3K8A
Contributor
Contributor

Hello everyone,

i have a problem with a macro 

 

FUNCTION MAIN() {
PROJECT RESET No
DELETE NCPROGRAM ALL
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\Cuori\Standard\COMPLETO TEMPLATE\BASE CUORE.ptf"
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\Cuori\Template\Moras\PP_MD.ptf"
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\UTENSILI\TOOL.ptf"
GRAPHICS LOCK
FOREACH TP IN folder("TOOLPATH") {
STRING $TPNAME = TP.NAME
ACTIVATE TOOLPATH $TPNAME
CALL ASSIGN_TOOL($TPNAME)
EDIT TOOLPATH $TPNAME REAPPLYFROMGUI Yes
DEACTIVATE TOOLPATH
DEACTIVATE TOOL
DEACTIVATE FOLDER
DEACTIVATE PATTERN
DEACTIVATE FeatureGroup
DEACTIVATE FEATURESET
DEACTIVATE WORKPLANE
DEACTIVATE BOUNDARY
}
CREATE STOCKMODEL ; FORM STOCKMODEL
RENAME STOCKMODEL # "MODELLO"
EDIT STOCKMODEL "MODELLO" REAPPLYFROMGUI
}
 
FUNCTION ASSIGN_TOOL(STRING $TPNAME) {
IF $TPNAME == "N1" {
ACTIVATE TOOL "T397 Torica D40,0 R2,0 H80,0"
} ELSEIF $TPNAME == "F.E. D12" {
ACTIVATE TOOL "T887 Torica D12 R1 H80"
} ELSEIF $TPNAME == "F.E. D16" {
ACTIVATE TOOL "T888 Torica D16 R1 H100"
} ELSEIF $TPNAME == "FIN PIANI" {
ACTIVATE TOOL "T422 Torica D16,0 R2,0 H70,0"
} ELSEIF $TPNAME == "FIN SMS" {
ACTIVATE TOOL "T422 Torica D16,0 R2,0 H70,0"
} ELSEIF $TPNAME == "CENTRINO D6" {
ACTIVATE TOOL "T219 Punta D6,0 H95,0"
} ELSEIF $TPNAME == "SCRITTA" {
ACTIVATE TOOL "T369 Conica Toroidale D13,0 H65,0"
} ELSEIF $TPNAME == "SPIANATURA D32" {
ACTIVATE TOOL "T854 Torica D32,0 R1,0 H75,0"
} ELSEIF $TPNAME == "SPIANATURA D50" {
ACTIVATE TOOL "T858 Torica D50,0 R1,0 H100,0"
} ELSEIF $TPNAME == "FIN BATTUTA 16" {
ACTIVATE TOOL "T883 Piana D16,0 H45,0"
} ELSEIF $TPNAME == "CENTRINO PUNTINA" {
ACTIVATE TOOL "T202 Punta D2,5 H52,0"
} ELSEIF $TPNAME == "PUNTINA D2" {
ACTIVATE TOOL "T211 Punta D2,0 H70,0"
} ELSEIF $TPNAME == "PUNTINA D2.5" {
ACTIVATE TOOL "T212 Punta D2,5 H70,0"
} ELSEIF $TPNAME == "PUNTINA D3" {
ACTIVATE TOOL "T213 Punta D3,0 H70,0"
} ELSEIF $TPNAME == "SCRITTA_P" {
ACTIVATE TOOL "T691 Conica Toroidale D15,0 H65,0"
} ELSEIF $TPNAME == "CHIUSURA" {
ACTIVATE TOOL "T979 Piana D10,0 H36,0 Chiusura"
} ELSE {
ACTIVATE TOOL " "
}
}
 
 
in this way it works without problem, but i want understand why with the switch/case/breack mode it gives me problem.
 
FUNCTION MAIN() {
PROJECT RESET No
DELETE NCPROGRAM ALL
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\Cuori\Standard\COMPLETO TEMPLATE\BASE CUORE.ptf"
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\Cuori\Template\Moras\PP_MD.ptf"
IMPORT TEMPLATE PROJECT FILEOPEN "V:\3D\PowerMILL\UTENSILI\TOOL.ptf"
GRAPHICS LOCK
FOREACH TP IN folder("TOOLPATH") {
STRING $TPNAME = TP.NAME
ACTIVATE TOOLPATH $TPNAME
CALL ASSIGN_TOOL($TPNAME)
EDIT TOOLPATH $TPNAME REAPPLYFROMGUI Yes
DEACTIVATE TOOLPATH
DEACTIVATE TOOL
DEACTIVATE FOLDER
DEACTIVATE PATTERN
DEACTIVATE FeatureGroup
DEACTIVATE FEATURESET
DEACTIVATE WORKPLANE
DEACTIVATE BOUNDARY
}
CREATE STOCKMODEL ; FORM STOCKMODEL
RENAME STOCKMODEL # "MODELLO"
EDIT STOCKMODEL "MODELLO" REAPPLYFROMGUI
}
FUNCTION ASSIGN_TOOL(STRING $TPNAME) {
 
SWITCH $TPNAME {
CASE "N1"
ACTIVATE TOOL "T397 Torica D40,0 R2,0 H80,0"
BREAK
CASE "F.E. D12"
ACTIVATE TOOL "T887 Torica D12 R1 H80"
BREAK
CASE "F.E. D16"
ACTIVATE TOOL "T888 Torica D16 R1 H100"
BREAK
CASE "FIN PIANI"
ACTIVATE TOOL "T422 Torica D16,0 R2,0 H70,0"
BREAK
CASE "FIN SMS"
ACTIVATE TOOL "T422 Torica D16,0 R2,0 H70,0"
BREAK
CASE "CENTRINO D6"
ACTIVATE TOOL "T219 Punta D6,0 H95,0"
BREAK
CASE "SCRITTA"
ACTIVATE TOOL "T369 Conica Toroidale D13,0 H65,0"
BREAK
CASE "SPIANATURA D32"
ACTIVATE TOOL "T854 Torica D32,0 R1,0 H75,0"
BREAK
CASE "SPIANATURA D50"
ACTIVATE TOOL "T858 Torica D50,0 R1,0 H100,0"
BREAK
CASE "FIN BATTUTA 16"
ACTIVATE TOOL "T883 Piana D16,0 H45,0"
BREAK
CASE "CENTRINO PUNTINA"
ACTIVATE TOOL "T202 Punta D2,5 H52,0"
BREAK
CASE "PUNTINA D2"
ACTIVATE TOOL "T211 Punta D2,0 H70,0"
BREAK
CASE "PUNTINA D2.5"
ACTIVATE TOOL "T212 Punta D2,5 H70,0"
BREAK
CASE "PUNTINA D3"
ACTIVATE TOOL "T213 Punta D3,0 H70,0"
BREAK
CASE "SCRITTA_P"
ACTIVATE TOOL "T691 Conica Toroidale D15,0 H65,0"
BREAK
CASE "CHIUSURA"
ACTIVATE TOOL "T979 Piana D10,0 H36,0 Chiusura"
BREAK
DEFAULT
ACTIVATE TOOL " "
BREAK
}
}
 
the second is the not working way.
 
 
 
Thanks for helping me,
Davide

 

 
0 Likes
Accepted solutions (2)
637 Views
6 Replies
Replies (6)
Message 2 of 7

kevin.hammond3WX4X
Advocate
Advocate

I have only used Switch with case as real numbers and the value is not in "" quote marks, eg

SWITCH (ROUND(block.diameter, 2)) {
CASE 8.15
$cutterType = "08"
BREAK
CASE 11.32
$cutterType = "11"
BREAK
CASE 13.60
$cutterType = "13"
BREAK
CASE 16.26
$cutterType = "16"
BREAK
CASE 19.25
$cutterType = "19"
BREAK
DEFAULT
BREAK
}

Not sure how you string would behave with out "" marks as there are gaps in the names and Pmill has been known to not like gaps in names & strings.

so try without quotes, if that does not work try editing case names to remove gaps perhaps by adding (_)underscores in gaps

0 Likes
Message 3 of 7

arnoldiW3K8A
Contributor
Contributor

hello @kevin.hammond3WX4X i need to use a string tipe as variable assign to the case 

CASE "AAAAA"

and with it it seems it doesn't works

 

0 Likes
Message 4 of 7

kevin.hammond3WX4X
Advocate
Advocate
have you tried CASE AAAAA in place of "AAAAA"?
0 Likes
Message 5 of 7

arnoldiW3K8A
Contributor
Contributor

arnoldiW3K8A_0-1686822170460.png

SAME PROBLEM

0 Likes
Message 6 of 7

kevin.hammond3WX4X
Advocate
Advocate
Accepted solution

Hi,

 

I have created a little test using your macro, as suggested in my first reply the issue is with the gaps in the name strings.

So

F.E. D12 - not permitted

F.E._D12 - permitted

You may either have to stick with your "If" version or reconsider your naming convention to remove whitespaces

Hope this helps

Kevin

0 Likes
Message 7 of 7

arnoldiW3K8A
Contributor
Contributor
Accepted solution

Hello @kevin.hammond3WX4X

i used your solution, but without modifing my already created toolpath name, but with the function "sanitize" that convert the space and the point in "_"

thanks for your help 

0 Likes