fusion360 .pp
Moderator: Moderators
fusion360 .pp
Zijn er hier ook fusion 360 mach3 4 asser postprocessor bouwers/gebruikers?
Wij van cncfrees adviseren cncfrees.
- Bjornski1976
- Berichten: 1130
- Lid geworden op: 01 feb 2013 14:10
- Locatie: Gorinchem
Re: fusion360 .pp
Ja, ennnn?
Gebruik mach3, kom van inventor.
Gebruik mach3, kom van inventor.
Kennis en wijsheid zijn relatief, gevormd door perceptie & invloed van anderen, Ik wens je veel wijsheid toe bij het toepassen van je kennis.
Re: fusion360 .pp
Ik ben op zoek naar iemand die tegen betaling dat wil doen. Het gaat om een vijf asser met een A as haaks op het YZ vlak plus een rotatieas (draaibank)
Wij van cncfrees adviseren cncfrees.
Re: fusion360 .pp
Aanpassen misschien? Dit is niet de hele postprocessor!!
Code: Selecteer alles
/**
Copyright (C) 2012-2022 by Autodesk, Inc.
All rights reserved.
5AXISMAKER post processor configuration.
$Revision: 43844 24dd7accaac0dd72bbe1be7ed986d994b45a712c $
$Date: 2022-06-17 16:48:43 $
FORKID {61167F95-13C8-423D-B5C7-A64F747AAA5E}
*/
description = "5AXISMAKER";
vendor = "5AXISWORKS";
vendorUrl = "http://www.5axismaker.com";
legal = "Copyright (C) 2012-2022 by Autodesk, Inc.";
certificationLevel = 2;
minimumRevision = 45702;
longDescription = "Generic 5-axis post for 5AXISMAKER with Mach3 control.";
extension = "tap";
setCodePage("ascii");
capabilities = CAPABILITY_MILLING;
tolerance = spatial(0.002, MM);
minimumChordLength = spatial(0.25, MM);
minimumCircularRadius = spatial(0.01, MM);
maximumCircularRadius = spatial(1000, MM);
minimumCircularSweep = toRad(0.01);
maximumCircularSweep = toRad(180);
allowHelicalMoves = true;
allowedCircularPlanes = undefined; // allow any circular motion
// user-defined properties
properties = {
writeMachine: {
title : "Write machine",
description: "Output the machine settings in the header of the code.",
group : "formats",
type : "boolean",
value : true,
scope : "post"
},
writeTools: {
title : "Write tool list",
description: "Output a tool list in the header of the code.",
group : "formats",
type : "boolean",
value : true,
scope : "post"
},
safePositionMethod: {
title : "Safe Retracts",
description: "Select your desired retract option. 'Clearance Height' retracts to the operation clearance height.",
group : "homePositions",
type : "enum",
values : [
{title:"G28", id:"G28"},
// {title:"G53", id: "G53"},
{title:"Clearance Height", id:"clearanceHeight"}
],
value: "clearanceHeight",
scope: "post"
},
useM06: {
title : "Use M6",
description: "Disable to avoid outputting M6. If disabled Preload is also disabled",
group : "preferences",
type : "boolean",
value : true,
scope : "post"
},
preloadTool: {
title : "Preload tool",
description: "Preloads the next tool at a tool change (if any).",
group : "preferences",
type : "boolean",
value : false,
scope : "post"
},
useG43: {
title : "Use G43",
description: "Use G43 tool offsets.",
group : "preferences",
type : "boolean",
value : false,
scope : "post"
},
showSequenceNumbers: {
title : "Use sequence numbers",
description: "'Yes' outputs sequence numbers on each block, 'Only on tool change' outputs sequence numbers on tool change blocks only, and 'No' disables the output of sequence numbers.",
group : "formats",
type : "enum",
values : [
{title:"Yes", id:"true"},
{title:"No", id:"false"},
{title:"Only on tool change", id:"toolChange"}
],
value: "false",
scope: "post"
},
sequenceNumberStart: {
title : "Start sequence number",
description: "The number at which to start the sequence numbers.",
group : "formats",
type : "integer",
value : 10,
scope : "post"
},
sequenceNumberIncrement: {
title : "Sequence number increment",
description: "The amount by which the sequence number is incremented by in each block.",
group : "formats",
type : "integer",
value : 5,
scope : "post"
},
optionalStop: {
title : "Optional stop",
description: "Outputs optional stop code during when necessary in the code.",
group : "preferences",
type : "boolean",
value : false,
scope : "post"
},
separateWordsWithSpace: {
title : "Separate words with space",
description: "Adds spaces between words if 'yes' is selected.",
group : "formats",
type : "boolean",
value : true,
scope : "post"
},
useRadius: {
title : "Radius arcs",
description: "If yes is selected, arcs are outputted using radius values rather than IJK.",
group : "preferences",
type : "boolean",
value : true,
scope : "post"
},
dwellInSeconds: {
title : "Dwell in seconds",
description: "Specifies the unit for dwelling, set to 'Yes' for seconds and 'No' for milliseconds.",
group : "preferences",
type : "boolean",
value : true,
scope : "post"
},
setupAtCenterOfCAxis: {
title : "Setup at center of C axis",
description: "Specifies if the machine is zeroed at the center of C-axis rotation.",
group : "multiAxis",
type : "boolean",
value : false,
scope : "post"
},
safeRetractDistance: {
title : "Safe retract distance",
description: "A set distance to add to the tool length for rewind C-axis tool retract.",
group : "multiAxis",
type : "number",
value : 0.5,
scope : "post"
},
useRigidTapping: {
title : "Use rigid tapping",
description: "Select 'Yes' to enable, 'No' to disable, or 'Without spindle direction' to enable rigid tapping without outputting the spindle direction block.",
group : "preferences",
type : "enum",
values : [
{title:"Yes", id:"yes"},
{title:"No", id:"no"},
{title:"Without spindle direction", id:"without"}
],
value: "yes",
scope: "post"
}
};
// wcs definiton
wcsDefinitions = {
useZeroOffset: false,
wcs : [
{name:"Standard", format:"G", range:[54, 59]},
{name:"Extended", format:"G59 P", range:[1, 254]}
]
};
var permittedCommentChars = " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,=_-#:";
var singleLineCoolant = false; // specifies to output multiple coolant codes in one line rather than in separate lines
// samples:
// {id: COOLANT_THROUGH_TOOL, on: 88, off: 89}
// {id: COOLANT_THROUGH_TOOL, on: [8, 88], off: [9, 89]}
// {id: COOLANT_THROUGH_TOOL, on: "M88 P3 (myComment)", off: "M89"}
var coolants = [
{id:COOLANT_FLOOD, on:8},
{id:COOLANT_MIST, on:7},
{id:COOLANT_THROUGH_TOOL},
{id:COOLANT_AIR},
{id:COOLANT_AIR_THROUGH_TOOL},
{id:COOLANT_SUCTION},
{id:COOLANT_FLOOD_MIST},
{id:COOLANT_FLOOD_THROUGH_TOOL},
{id:COOLANT_OFF, off:9}
];
var nFormat = createFormat({prefix:"N", decimals:0});
var gFormat = createFormat({prefix:"G", decimals:1});
var mFormat = createFormat({prefix:"M", decimals:0});
var hFormat = createFormat({prefix:"H", decimals:0});
var pFormat = createFormat({prefix:"P", decimals:(unit == MM ? 3 : 4), scale:0.5});
var xyzFormat = createFormat({decimals:(unit == MM ? 3 : 4), forceDecimal:true});
var rFormat = xyzFormat; // radius
var abcFormat = createFormat({decimals:3, forceDecimal:true, scale:DEG});
var feedFormat = createFormat({decimals:(unit == MM ? 0 : 1), forceDecimal:true});
var inverseFormat = createFormat({decimals:2, forceDecimal:true});
var toolFormat = createFormat({decimals:0});
var rpmFormat = createFormat({decimals:0});
var secFormat = createFormat({decimals:3, forceDecimal:true}); // seconds - range 0.001-99999.999
var milliFormat = createFormat({decimals:0}); // milliseconds // range 1-9999
var taperFormat = createFormat({decimals:1, scale:DEG});
var xOutput = createVariable({prefix:"X"}, xyzFormat);
var yOutput = createVariable({prefix:"Y"}, xyzFormat);
var zOutput = createVariable({onchange:function () {retracted = false;}, prefix:"Z"}, xyzFormat);
var aOutput = createVariable({prefix:"A"}, abcFormat);
var bOutput = createVariable({prefix:"B"}, abcFormat);
var cOutput = createVariable({prefix:"C"}, abcFormat);
var feedOutput = createVariable({prefix:"F"}, feedFormat);
var inverseTimeOutput = createVariable({prefix:"F", force:true}, inverseFormat);
var sOutput = createVariable({prefix:"S", force:true}, rpmFormat);
var pOutput = createVariable({}, pFormat);
// circular output
var iOutput = createReferenceVariable({prefix:"I", force:true}, xyzFormat);
var jOutput = createReferenceVariable({prefix:"J", force:true}, xyzFormat);
var kOutput = createReferenceVariable({prefix:"K", force:true}, xyzFormat);
var gMotionModal = createModal({}, gFormat); // modal group 1 // G0-G3, ...
var gPlaneModal = createModal({onchange:function () {gMotionModal.reset();}}, gFormat); // modal group 2 // G17-19
var gAbsIncModal = createModal({}, gFormat); // modal group 3 // G90-91
var gFeedModeModal = createModal({}, gFormat); // modal group 5 // G93-94
var gUnitModal = createModal({}, gFormat); // modal group 6 // G20-21
var gCycleModal = createModal({}, gFormat); // modal group 9 // G81, ...
var gRetractModal = createModal({}, gFormat); // modal group 10 // G98-99
// fixed settings
var pivotDistance = toPreciseUnit(27.5, MM); // distance to pivot point along B-axis
var cAxisOffset = toPreciseUnit(63.75, MM); // distance from B-axis CL to C-axis CL
var headOffset = pivotDistance; // can have the tool length added to it
var safeRetractFeed = (unit == IN) ? 40 : 1000;
var safePlungeFeed = (unit == IN) ? 25 : 625;
var WARNING_WORK_OFFSET = 0;
// collected state
var sequenceNumber;
var forceSpindleSpeed = false;
var currentWorkOffset;
var previousABC;
var retracted = false; // specifies that the tool has been retracted to the safe plane
/**
Writes the specified block.
*/
function writeBlock() {
var text = formatWords(arguments);
if (!text) {
return;
}
if (getProperty("showSequenceNumbers") == "true") {
writeWords2(nFormat.format(sequenceNumber % 100000), arguments);
sequenceNumber += getProperty("sequenceNumberIncrement");
} else {
writeWords(arguments);
}
}
/**
Writes the specified block - used for tool changes only.
*/
function writeToolBlock() {
var show = getProperty("showSequenceNumbers");
setProperty("showSequenceNumbers", (show == "true" || show == "toolChange") ? "true" : "false");
writeBlock(arguments);
setProperty("showSequenceNumbers", show);
}
/**
Output a comment.
*/
function writeComment(text) {
writeln("(" + filterText(String(text).toUpperCase(), permittedCommentChars) + ")");
}
function onOpen() {
if (getProperty("useRadius")) {
maximumCircularSweep = toRad(90); // avoid potential center calculation errors for CNC
}
if (true) {
var bAxis = createAxis({coordinate:1, table:false, axis:[1, 0, 0], range:[-180.00, 180.00]});
var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], offset:[cAxisOffset, 0, 0], range:[-360.00, 360.00], cyclic:false});
machineConfiguration = new MachineConfiguration(bAxis, cAxis);
setMachineConfiguration(machineConfiguration);
optimizeMachineAngles2(0); // map tip mode - we compensate below
}
if (!machineConfiguration.isMachineCoordinate(0)) {
aOutput.disable();
}
if (!machineConfiguration.isMachineCoordinate(1)) {
bOutput.disable();
}
if (!machineConfiguration.isMachineCoordinate(2)) {
cOutput.disable();
}
if (!getProperty("separateWordsWithSpace")) {
setWordSeparator("");
}
sequenceNumber = getProperty("sequenceNumberStart");
if (programName) {
writeComment(programName);
}
if (programComment) {
writeComment(programComment);
}
// dump machine configuration
var vendor = machineConfiguration.getVendor();
var model = machineConfiguration.getModel();
var description = machineConfiguration.getDescription();
if (getProperty("writeMachine") && (vendor || model || description)) {
writeComment(localize("Machine"));
if (vendor) {
writeComment(" " + localize("vendor") + ": " + vendor);
}
if (model) {
writeComment(" " + localize("model") + ": " + model);
}
if (description) {
writeComment(" " + localize("description") + ": " + description);
}
}
// dump tool information
if (getProperty("writeTools")) {
var zRanges = {};
if (is3D()) {
var numberOfSections = getNumberOfSections();
for (var i = 0; i < numberOfSections; ++i) {
var section = getSection(i);
var zRange = section.getGlobalZRange();
var tool = section.getTool();
if (zRanges[tool.number]) {
zRanges[tool.number].expandToRange(zRange);
} else {
zRanges[tool.number] = zRange;
}
}
}
var tools = getToolTable();
if (tools.getNumberOfTools() > 0) {
for (var i = 0; i < tools.getNumberOfTools(); ++i) {
var tool = tools.getTool(i);
var comment = "T" + toolFormat.format(tool.number) + " " +
"D=" + xyzFormat.format(tool.diameter) + " " +
localize("CR") + "=" + xyzFormat.format(tool.cornerRadius);
if ((tool.taperAngle > 0) && (tool.taperAngle < Math.PI)) {
comment += " " + localize("TAPER") + "=" + taperFormat.format(tool.taperAngle) + localize("deg");
}
if (zRanges[tool.number]) {
comment += " - " + localize("ZMIN") + "=" + xyzFormat.format(zRanges[tool.number].getMinimum());
}
comment += " - " + getToolTypeName(tool.type);
writeComment(comment);
}
}
}
_zHome = machineConfiguration.getRetractPlane() != 0 ? machineConfiguration.getRetractPlane() : toPreciseUnit(0, MM);
}
for (var i = 0; i < arguments.length; ++i) {
switch (arguments[i]) {
case X:
words.push("X" + xyzFormat.format(_xHome));
xOutput.reset();
break;
case Y:
words.push("Y" + xyzFormat.format(_yHome));
yOutput.reset();
break;
case Z:
words.push("Z" + xyzFormat.format(_zHome));
zOutput.reset();
retracted = true;
break;
default:
error(localize("Unsupported axis specified for writeRetract()."));
return;
}
}
if (words.length > 0) {
switch (method) {
case "G28":
gMotionModal.reset();
gAbsIncModal.reset();
writeBlock(gFormat.format(28), gAbsIncModal.format(91), words);
writeBlock(gAbsIncModal.format(90));
break;
case "G53":
gMotionModal.reset();
writeBlock(gAbsIncModal.format(90), gFormat.format(53), gMotionModal.format(0), words);
break;
default:
error(localize("Unsupported safe position method."));
return;
}
}
}
function onClose() {
writeln("");
if (false) {
setCoolant(COOLANT_OFF);
}
writeRetract(Z);
// setWorkPlane(new Vector(0, 0, 0)); // reset working plane
writeRetract(X, Y);
onImpliedCommand(COMMAND_END);
onCommand(COMMAND_STOP_SPINDLE);
writeBlock(mFormat.format(30)); // stop program, spindle stop, coolant off
}
function setProperty(property, value) {
properties[property].current = value;
}
Wij van cncfrees adviseren cncfrees.
Re: fusion360 .pp
2150 euro voor een 4 asser encrypted postprocessor plus 150 euro per jaar onderhoudscontract.
En 3000 voor een 5 asser.
Kijk dat zijn nog eens prijzen!
En 3000 voor een 5 asser.
Kijk dat zijn nog eens prijzen!
Wij van cncfrees adviseren cncfrees.
Re: fusion360 .pp
4 paginas leuteren, over het al dan niet koters met scherpe zakdoeken te laten spelen maar over een postprocessor een enkele reactie, het lijkt wel de Libelle zomerweek hier.
Wij van cncfrees adviseren cncfrees.
- hugo stoutjesdijk
- Donateur
- Berichten: 12055
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: fusion360 .pp
Tsja, scherpe messen en kinderen heeft iedereen wel ervaring mee.
Komt geen antwoordt op, dus blijkbaar voelt niemand zich aangesproken, en die ene die je zoekt is waarschijnlijk net vertrokken naar een zonnig zuidelijk oord om alles te vergeten en weer even op te laden voor het komende jaar.Zijn er hier ook fusion 360 mach3 4 asser postprocessor bouwers/gebruikers?
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
- hainjedaf
- Donateur
- Berichten: 2469
- Lid geworden op: 01 aug 2011 10:01
- Locatie: Amsterdam
- Contacteer:
Re: fusion360 .pp
Libelle zomerweek?! Jij woont in die polder....
Ik woon ten minste in Sodom en Gomoorrah :)
Met vriendelijke groet,
Marout Sluijter-Borms,
Amsterdam
Prusa Mini+ Wifi & X1 Carbon met X1Plus
Sparren en tinkeren met iedereen en over alles wat techniek is.
Marout Sluijter-Borms,
Amsterdam
Prusa Mini+ Wifi & X1 Carbon met X1Plus
Sparren en tinkeren met iedereen en over alles wat techniek is.