DemoStandardPath/Main.hincproj
2024-11-01 10:00:36 +08:00

581 lines
22 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<MillingCourse ApiVersion="3.1.236.0">
<MillingEquipment>
<MachiningEquipment>
<SolidMachiningChain>
<XmlSource>PmcB1s/PMC_B1.mt</XmlSource>
</SolidMachiningChain>
<SpindleCapability>
<SpindleCapability>
<Name>NoName</Name>
<Note></Note>
<EnergyEfficiency>0.4</EnergyEfficiency>
<SpindleSpeedToPower--RPM-to-kW>
<Entry SpindleSpeed-RPM="0">0</Entry>
<Entry SpindleSpeed-RPM="1500">5.5</Entry>
<Entry SpindleSpeed-RPM="4500">5.5</Entry>
<Entry SpindleSpeed-RPM="8000.000000000001">3</Entry>
</SpindleSpeedToPower--RPM-to-kW>
<SpindleSpeedToTorque--RPM-to-Nm>
<Entry SpindleSpeed-RPM="0">50</Entry>
<Entry SpindleSpeed-RPM="1500">50</Entry>
<Entry SpindleSpeed-RPM="2000.0000000000002">30</Entry>
<Entry SpindleSpeed-RPM="3000">20</Entry>
<Entry SpindleSpeed-RPM="4000.0000000000005">15</Entry>
<Entry SpindleSpeed-RPM="6000">8</Entry>
<Entry SpindleSpeed-RPM="8000.000000000001">5</Entry>
</SpindleSpeedToTorque--RPM-to-Nm>
</SpindleCapability>
</SpindleCapability>
<Fixture>
<Fixture>
<Solid>
<TransformationGeom>
<Transformer />
<Geom>
<Box3d>
<Min>(-40, -40, 0)</Min>
<Max>(40, 40, 10)</Max>
</Box3d>
</Geom>
</TransformationGeom>
</Solid>
<TableToWorkpieceTransformer>
<StaticTranslation Trans="(0, 0, 10)" />
</TableToWorkpieceTransformer>
</Fixture>
</Fixture>
<Workpiece>
<Workpiece>
<InitResolution>0.125</InitResolution>
<RawGeom>
<TransformationGeom>
<Transformer>
<StaticTranslation Trans="(0, 0, 0)" />
</Transformer>
<Geom>
<Box3d>
<Min>(2, 0, -50)</Min>
<Max>(72, 50, 0)</Max>
</Box3d>
</Geom>
</TransformationGeom>
</RawGeom>
<FixtureToGeomTransformer>
<StaticTranslation Trans="(-35, -25, 50)" />
</FixtureToGeomTransformer>
<IdealGeom>
<TransformationGeom>
<Transformer>
<StaticTranslation Trans="(2, 0, -50)" />
</Transformer>
<Geom>
<StlFile>Design/standard_force_4exp_201902_design.stl</StlFile>
</Geom>
</TransformationGeom>
</IdealGeom>
<MillingPara>
<XmlSource>Al6061T6.mp</XmlSource>
</MillingPara>
<WorkpieceMaterial>
<XmlSource>Al6061T6.WorkpieceMaterial</XmlSource>
</WorkpieceMaterial>
</Workpiece>
</Workpiece>
<TableToComp>
<NoTransform />
</TableToComp>
<BackgroundAndCoolantHeatCondition>
<BackgroundTemperature_C>25</BackgroundTemperature_C>
<CoolantHeatTransferCoefficient_Wdm2K>1000</CoolantHeatTransferCoefficient_Wdm2K>
</BackgroundAndCoolantHeatCondition>
</MachiningEquipment>
</MillingEquipment>
<MillingToolHouse>
<MachiningToolHouse>
<Entry ID="1">
<StickMachiningTool>
<Note>T1</Note>
<Holder>
<StickHolder>
<Cylindroid LongitudeNum="12">
<PairZr>(0,10)</PairZr>
<PairZr>(30,10)</PairZr>
</Cylindroid>
<Note></Note>
</StickHolder>
</Holder>
<Cutter>
<MillingCutter>
<ShaperProfile>
<AptProfile>
<Apt>
<ColumnApt>
<D>12</D>
<Rc>0.5</Rc>
<FluteH>20</FluteH>
</ColumnApt>
</Apt>
</AptProfile>
</ShaperProfile>
<InnerBeamProfile>
<FluteDependentRatioProfile>
<!--<ConstRatioProfile>
<RadiusRatio>0.56</RadiusRatio>
</ConstRatioProfile>-->
</FluteDependentRatioProfile>
</InnerBeamProfile>
<UpperBeamGeom>
<TransformationGeom>
<Transformer />
<Geom>
<Cylindroid LongitudeNum="12">
<PairZr>(20,6)</PairZr>
<PairZr>(75,6)</PairZr>
</Cylindroid>
</Geom>
</TransformationGeom>
</UpperBeamGeom>
<LinearResolution_mm>0.0625</LinearResolution_mm>
<AngleResolution_deg>15</AngleResolution_deg>
<FluteContourTray>
<UniformContourTray>
<TrackNum>3</TrackNum>
<BaselineOneContour>
<FluteContour>
<SetupAngle_deg>0</SetupAngle_deg>
<BaseSideContour>
<ConstHelixSideContour>
<Helix_deg>50</Helix_deg>
<RadialRakeAngle_deg>15</RadialRakeAngle_deg>
<RadialReliefAngle_deg>5</RadialReliefAngle_deg>
</ConstHelixSideContour>
</BaseSideContour>
<BaseBottomContour>
<SlideBottomContour>
<AxialRakeAngle_deg>50</AxialRakeAngle_deg>
<DiskAngle_deg>1.5</DiskAngle_deg>
<EccentricAngle_deg>15</EccentricAngle_deg>
<CutterLengthOnBottomProjection_mm>5</CutterLengthOnBottomProjection_mm>
<OuterRadius_mm>5.5</OuterRadius_mm>
</SlideBottomContour>
</BaseBottomContour>
</FluteContour>
</BaselineOneContour>
</UniformContourTray>
</FluteContourTray>
<BodyMaterial>
<XmlSource>WC-Co6-800nm.CutterMaterial</XmlSource>
</BodyMaterial>
<CoatingMaterial />
<CutterMass_g>7</CutterMass_g>
<HoneRadius_um>20</HoneRadius_um>
<ReliefAngle_deg>5</ReliefAngle_deg>
<MillingCutterOptLimit>
<MillingCutterOptLimit>
<EnableOpt>true</EnableOpt>
<YieldingSafetyFactor>3</YieldingSafetyFactor>
<EnableLimitByMinimumUncutChipThickness>true</EnableLimitByMinimumUncutChipThickness>
<MinFeedPerTooth_mm>0</MinFeedPerTooth_mm>
<MaxFeedPerTooth_mm>999</MaxFeedPerTooth_mm>
</MillingCutterOptLimit>
</MillingCutterOptLimit>
</MillingCutter>
</Cutter>
<PreservedDistanceBetweenFluteAndSpindleNose_mm>8</PreservedDistanceBetweenFluteAndSpindleNose_mm>
<ObservationAnchorReference>HolderAnc</ObservationAnchorReference>
<RelativeHeightFromObservationAnchor_mm>0</RelativeHeightFromObservationAnchor_mm>
<ObservationRingRadius_mm>0</ObservationRingRadius_mm>
</StickMachiningTool>
</Entry>
</MachiningToolHouse>
</MillingToolHouse>
<NcEnv>
<NcEnv>
<CncBrand>Fanuc</CncBrand>
<McHome>(0, 0, 0)</McHome>
<IsIdealOffsetDependentOnToolHouse>true</IsIdealOffsetDependentOnToolHouse>
<MillingToolOffsetTable>
<Entry ID="1">
<MillingToolOffsetTableRow>
<IdealRadius_mm>6</IdealRadius_mm>
<RadialWear_mm>0</RadialWear_mm>
<IdealHeight_mm>58</IdealHeight_mm>
<AxialWear_mm>0</AxialWear_mm>
</MillingToolOffsetTableRow>
</Entry>
</MillingToolOffsetTable>
<SetToolHeightCompensationOnFeatureNormal>false</SetToolHeightCompensationOnFeatureNormal>
<EnableShortestRotary>true</EnableShortestRotary>
<EnableArcCornerRadiusCompensation>false</EnableArcCornerRadiusCompensation>
<StrokeLimitXYZ_mm>
<Box3d>
<Min>(INF, INF, INF)</Min>
<Max>(-INF, -INF, -INF)</Max>
</Box3d>
</StrokeLimitXYZ_mm>
<StrokeLimitABC_deg>
<Box3d>
<Min>(INF, INF, INF)</Min>
<Max>(-INF, -INF, -INF)</Max>
</Box3d>
</StrokeLimitABC_deg>
<MaxRotarySpeedABC_rpm>(60, 60, 60)</MaxRotarySpeedABC_rpm>
<MaxSpindleSpeed_rpm>60000</MaxSpindleSpeed_rpm>
<RapidFeedrate_mmdmin>20000</RapidFeedrate_mmdmin>
<ToolingTime>PT0S</ToolingTime>
<ConfigurationTable>
<Entry Key="1401#1">0</Entry>
</ConfigurationTable>
<IsoCoordinateTable>
<!--The ID is G code flag multiplying 1000. For example, ID of G54 is 54000.-->
<Entry ID="54000" Offset="(37.400000000000006, -97.4, -116.44)" />
<Entry ID="55000" Offset="(0, 0, 0)" />
<Entry ID="56000" Offset="(0, 0, 0)" />
<Entry ID="57000" Offset="(0, 0, 0)" />
<Entry ID="58000" Offset="(0, 0, 0)" />
<Entry ID="59000" Offset="(0, 0, 0)" />
<Entry ID="59100" Offset="(0, 0, 0)" />
<Entry ID="59200" Offset="(0, 0, 0)" />
<Entry ID="59300" Offset="(0, 0, 0)" />
<Entry ID="59400" Offset="(0, 0, 0)" />
<Entry ID="59500" Offset="(0, 0, 0)" />
<Entry ID="59600" Offset="(0, 0, 0)" />
<Entry ID="59700" Offset="(0, 0, 0)" />
<Entry ID="59800" Offset="(0, 0, 0)" />
<Entry ID="59900" Offset="(0, 0, 0)" />
</IsoCoordinateTable>
</NcEnv>
</NcEnv>
<RootListCommand>
<ListCommand>
<CommandEntryList>
<CommandEntry IsEnabled="false">
<Command>
<ScriptCommand>
<ScriptTitle>範例 1-1 執行NC檔案</ScriptTitle>
<ScriptText>RunNcFile("NC/circle.ptp");
RunNcFile("NC/drill_slot.ptp");
RunNcFile("NC/side.ptp");
RunNcFile("NC/slide.ptp");</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
<CommandEntry IsEnabled="true">
<Command>
<ScriptCommand>
<ScriptTitle>範例 1-2 基礎設定 及 執行NC檔案</ScriptTitle>
<ScriptText>////一般設定////
DispCache_Mb = 1260; //GRAM暫存空間 (Mb)
MachiningResolution_mm = 0.125; //仿真解析度 (mm)
MachiningMotionResolution = FeedPerCycle;
EnableCollisionDetection = true; //是否啟用碰撞檢測開啟
EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
////執行NC檔案////
RunNcFile("NC/circle.ptp");
RunNcFile("NC/drill_slot.ptp");
RunNcFile("NC/side.ptp");
RunNcFile("NC/slide.ptp");</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
<CommandEntry IsEnabled="false">
<Command>
<ScriptCommand>
<ScriptTitle>範例 1-3 穿插設定於NC檔案間</ScriptTitle>
<ScriptText>////一般設定////
DispCache_Mb = 260; //GRAM暫存空間 (Mb)
MachiningResolution_mm = 1.0; //仿真解析度 (mm)
MachiningMotionResolution = FeedPerCycle;
EnableCollisionDetection = true; //是否啟用碰撞檢測開啟
EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
RunNcFile("NC/circle.ptp");
EnableCollisionDetection = false;
RunNcFile("NC/drill_slot.ptp");
MachiningResolution_mm = 1.0/8;
RunNcFile("NC/side.ptp");
RunNcFile("NC/slide.ptp");</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
<CommandEntry IsEnabled="false">
<Command>
<ScriptCommand>
<ScriptTitle>範例 2-1 優化NC</ScriptTitle>
<ScriptText>////一般設定////
DispCache_Mb = 260; //GRAM暫存空間 (Mb)
MachiningResolution_mm = 1.0; //仿真解析度 (mm)
MachiningMotionResolution = FeedPerCycle;
EnableCollisionDetection = false; //是否啟用碰撞檢測開啟
EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
////NC優化設定////
OptEnableInterpolation = true; //是否要重新插補,增加路徑線段加減速
OptRapidFeed_mmdmin = 4000; //無切削區域進給
OptMinFeedrate_mmdmin = 100; //有切削區域最小進給
OptMaxFeedrate_mmdmin = 4000; //有切削區域最大進給
OptMaxAcceleration_mmds2 = 10; //加減速限制
OptExtendedPreDistance_mm = 3; //有切削區域等效計算的前長度
OptExtendedPostDistance_mm = 2; //有切削區域等效計算的後長度
OptSpindlePowerSafetyFactor = 1.5; //主軸功率安全係數
OptSpindleTorqueSafetyFactor = 1.5; //主軸扭力安全係數
OptPreferedForce_N = double.PositiveInfinity; //優化目標力
////執行NC檔案////
RunNcFile("NC/circle.ptp");
RunNcFile("NC/drill_slot.ptp");
RunNcFile("NC/side.ptp");
RunNcFile("NC/slide.ptp");
OptimizeToFiles("Cache/Opt-[NcName]"); //優化NC檔並以路徑樣板輸出
</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
<CommandEntry IsEnabled="false">
<Command>
<ScriptCommand>
<ScriptTitle>範例 3 其他各式指令</ScriptTitle>
<ScriptText>////一般設定////
DispCache_Mb = 260; //GRAM暫存空間 (Mb)
MachiningResolution_mm = 1.0; //仿真解析度 (mm)
MachiningMotionResolution = FeedPerCycle;
EnableCollisionDetection = false; //是否啟用碰撞檢測開啟
EnablePauseOnCollision = false; //是否啟用碰撞發生時暫停
WriteRuntimeGeom("Cache/init.wct"); //寫入暫存檔
////執行NC檔案////
RunNcFile("NC/circle.ptp");
RunNcFile("NC/drill_slot.ptp");
RunNcFile("NC/side.ptp");
RunNcFile("NC/slide.ptp");
WriteRuntimeGeom("Cache/finish.wct"); //寫入暫存檔
WriteRuntimeGeomToStl("Cache/finish.stl",0)
WriteStepFiles("Cache/[NcName].step.csv");
WriteShotFiles("Cache/[NcName].shot.csv", 1);
</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
<CommandEntry IsEnabled="true">
<Command>
<ScriptCommand>
<ScriptTitle>範例 4 補充腳本</ScriptTitle>
<ScriptText>////一般設定////
DispCache_Mb = 2260; //GRAM暫存空間 (Mb)
WriteRuntimeGeom("Cache/finish-2.wct"); //寫入暫存檔
Diff(1); //執行和成品誤差比對</ScriptText>
<IsSimpleMode>true</IsSimpleMode>
</ScriptCommand>
</Command>
</CommandEntry>
</CommandEntryList>
</ListCommand>
</RootListCommand>
<TimeMapping>
<TimeMapping>
<Entrys />
</TimeMapping>
</TimeMapping>
<EnableCollisionDetection>true</EnableCollisionDetection>
<EnablePauseOnCollision>false</EnablePauseOnCollision>
<MillingActRunnerConfig>
<MillingActRunnerConfig>
<IsMillingForceEvaluationEnabled>true</IsMillingForceEvaluationEnabled>
<EnableAdvancedPhysics>true</EnableAdvancedPhysics>
<EnableExternalEvaluation>true</EnableExternalEvaluation>
<EnableDeflectionTransformation>false</EnableDeflectionTransformation>
<MachiningMotionResolution>
<FeedPerCycleMachiningMotionResolution />
</MachiningMotionResolution>
</MillingActRunnerConfig>
</MillingActRunnerConfig>
<InspectingKey>MaxTipDeflectionOnToolRunningCoordinate_um.Y</InspectingKey>
<MillingGuide>
<MillingGuide>
<DictionaryColorGuide>
<DictionaryColorGuide>
<SelectedKey>MaxTipDeflectionOnToolRunningCoordinate_um.Y</SelectedKey>
<KeyToColorGuide>
<Entry Key="Feedrate_mmdmin">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>Linear</RatioRgbFuncEnum>
<Floor>0</Floor>
<Ceiling>2000</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
<Entry Key="DeltaTipDeflectionOnToolRunningCoordinate_um.Y">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>Linear</RatioRgbFuncEnum>
<Floor>0</Floor>
<Ceiling>1</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.Y">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>NormalizedPositiveErf</RatioRgbFuncEnum>
<Floor>-0.1</Floor>
<Ceiling>0.5</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.X">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>Linear</RatioRgbFuncEnum>
<Floor>0</Floor>
<Ceiling>1</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.Z">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>Linear</RatioRgbFuncEnum>
<Floor>-0.3</Floor>
<Ceiling>0.3</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
<Entry Key="AvgAbsTorque_Nm">
<FuncRangeColorGuide>
<RangeColorRule>
<!--Available options: NormalizedPositiveErf, NormalizedErf, Linear-->
<RatioRgbFuncEnum>Linear</RatioRgbFuncEnum>
<Floor>0</Floor>
<Ceiling>1</Ceiling>
</RangeColorRule>
</FuncRangeColorGuide>
</Entry>
</KeyToColorGuide>
</DictionaryColorGuide>
</DictionaryColorGuide>
<ForceWCycleLineDivConfig>
<ForceCycleLineDivConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>-400</Min>
<Max>400</Max>
</VRange>
<MainForceCycleFlag>ForceToWorkpieceOnWorkpieceCoordinate</MainForceCycleFlag>
</ForceCycleLineDivConfig>
</ForceWCycleLineDivConfig>
<SimSpindleMomentCycleLineDivConfig>
<SpindleMomentCycleLineDivConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>-10</Min>
<Max>10</Max>
</VRange>
</TimeChartYConfig>
</SpindleMomentCycleLineDivConfig>
</SimSpindleMomentCycleLineDivConfig>
<SensorSpindleMomentCycleLineDivConfig>
<SpindleMomentCycleLineDivConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>-10</Min>
<Max>10</Max>
</VRange>
</TimeChartYConfig>
</SpindleMomentCycleLineDivConfig>
</SensorSpindleMomentCycleLineDivConfig>
<ClStripChartConfig>
<ClStripChartConfig>
<ItemConfigDictionary>
<Entry Key="Feedrate_mmdmin">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
<Entry Key="DeltaTipDeflectionOnToolRunningCoordinate_um.Y">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.Y">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.X">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
<Entry Key="MaxTipDeflectionOnToolRunningCoordinate_um.Z">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
<Entry Key="AvgAbsTorque_Nm">
<ClStripChartItemConfig>
<TimeChartYConfig>
<VRangeMode>Fit</VRangeMode>
<VRange>
<Min>0</Min>
<Max>1</Max>
</VRange>
</TimeChartYConfig>
</ClStripChartItemConfig>
</Entry>
</ItemConfigDictionary>
</ClStripChartConfig>
</ClStripChartConfig>
</MillingGuide>
</MillingGuide>
<NcOptProc />
<DispCacheMb>260</DispCacheMb>
</MillingCourse>