build hinc-blazor hincproj

This commit is contained in:
iambossTC 2024-07-15 14:18:47 +08:00
parent dd5bd46f71
commit bbfca46bd1
20 changed files with 494 additions and 168 deletions

6
.gitignore vendored
View File

@ -1 +1,5 @@
Logs/*.log
*.log
*.sqlite
*.sqlite-shm
*.sqlite-wal
Cache/*

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<WorkpieceMaterial>
<Name>Al6061T6</Name>
<ElasticModulus_GPa>68.9</ElasticModulus_GPa>
<CompressiveYieldStrength_MPa>386</CompressiveYieldStrength_MPa>
<TensileYieldStrength_MPa>276</TensileYieldStrength_MPa>
<ElogationRaioAtBreak>0.14</ElogationRaioAtBreak>
<HeatCapacity_JdgK>0.896</HeatCapacity_JdgK>
<HeatTransferCoefficient_WdmK>167</HeatTransferCoefficient_WdmK>
<Density_gdcm3>2.7</Density_gdcm3>
<FusionLatentHeat_Jdg>399.903059643855</FusionLatentHeat_Jdg>
<MeltingTemperature_C>620</MeltingTemperature_C>
</WorkpieceMaterial>

10
Al6061T6.mp Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<RakeFaceCuttingPara>
<Note></Note>
<Kse>141.27</Kse>
<Ksc>241.1</Ksc>
<Ksn>-455.54</Ksn>
<Kpe>-1.96</Kpe>
<Kpc>5.54</Kpc>
<Kpn>-21.51</Kpn>
</RakeFaceCuttingPara>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<XyzabcMachineTool>
<XyzabcChain>
<XyzabcChain>
<ChainCode>[O][Y][X][C][w];[O][Z][B][S][t]</ChainCode>
<IsVertical>true</IsVertical>
<TransformerX>
<DynamicTranslation Axis="(-1,0,0)" Len="0" />
</TransformerX>
<TransformerY>
<DynamicTranslation Axis="(0,-1,0)" Len="0" />
</TransformerY>
<TransformerZ>
<DynamicTranslation Axis="(0,0,1)" Len="0" />
</TransformerZ>
<TransformerA />
<TransformerB>
<DynamicRotation Axis="(0,1,0)" Angle_deg="0" Pivot="(0,0,0)" />
</TransformerB>
<TransformerC>
<DynamicRotation Axis="(0,0,-1)" Angle_deg="0" Pivot="(0,0,0)" />
</TransformerC>
<ToolBuckleTransformer>
<StaticTranslation Trans="(-400,400,1000)" />
</ToolBuckleTransformer>
<TableBuckleTransformer>
<StaticTranslation Trans="(0,0,0)" />
</TableBuckleTransformer>
</XyzabcChain>
</XyzabcChain>
<AnchorToSolid/>
<CollisionIndexPairs AutoGenerate="True" />
</XyzabcMachineTool>

Binary file not shown.

Binary file not shown.

365
Main.hincproj Normal file
View File

@ -0,0 +1,365 @@
<?xml version="1.0" encoding="utf-8"?>
<MillingCourse ApiVersion="1.3.428.0">
<MillingEquipment>
<MachiningEquipment>
<SolidMachiningChain>
<XmlSource>PmcB1s/PMC_B1.mt</XmlSource>
</SolidMachiningChain>
<SpindleCapability>
<SpindleCapability>
<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>
<Box3d>
<Min>(-40, -40, 0)</Min>
<Max>(40, 40, 10)</Max>
</Box3d>
</Solid>
<TableToWorkpieceTransformer>
<StaticTranslation Trans="(0, 0, 10)" />
</TableToWorkpieceTransformer>
</Fixture>
</Fixture>
<Workpiece>
<Workpiece>
<Resolution>0.5</Resolution>
<RawGeom>
<Box3d>
<Min>(2, 0, -50)</Min>
<Max>(72, 50, 0)</Max>
</Box3d>
</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>
<DetectionRadius>1</DetectionRadius>
<IsDisplayIdealGeomOnDefaultDisplay>false</IsDisplayIdealGeomOnDefaultDisplay>
<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>(50,10)</PairZr>
</Cylindroid>
<Note></Note>
</StickHolder>
</Holder>
<Cutter>
<MillingCutter>
<ShaperProfile>
<AptProfile>
<Apt>
<ColumnApt>
<D>12</D>
<Rc>0.5</Rc>
<FluteH>40</FluteH>
</ColumnApt>
</Apt>
</AptProfile>
</ShaperProfile>
<InnerBeamProfile>
<FluteDependentRatioProfile>
<!--<ConstRatioProfile>
<RadiusRatio />
</ConstRatioProfile>-->
</FluteDependentRatioProfile>
</InnerBeamProfile>
<UpperBeamGeom>
<TransformationGeom>
<Transformer />
<Geom>
<Cylindroid LongitudeNum="12">
<PairZr>(40,6)</PairZr>
<PairZr>(80,6)</PairZr>
</Cylindroid>
</Geom>
</TransformationGeom>
</UpperBeamGeom>
<LinearResolution_mm>0.1</LinearResolution_mm>
<AngleResolution_deg>5</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 />
<HoneRadius_um>20</HoneRadius_um>
<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>98</IdealHeight_mm>
<AxialWear_mm>0</AxialWear_mm>
</MillingToolOffsetTableRow>
</Entry>
</MillingToolOffsetTable>
<EnableRotaryDependentToolHeightCompensation>false</EnableRotaryDependentToolHeightCompensation>
<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>
<TimeMapping>
<TimeMapping>
<Entrys />
</TimeMapping>
</TimeMapping>
<EnableCollisionDetection>true</EnableCollisionDetection>
<EnablePauseOnCollision>true</EnablePauseOnCollision>
<MillingActRunnerConfig>
<MillingActRunnerConfig>
<IsMillingForceEvaluationEnabled>true</IsMillingForceEvaluationEnabled>
<EnableAdvancedPhysics>true</EnableAdvancedPhysics>
<EnableExternalEvaluation>true</EnableExternalEvaluation>
<EnableDeflectionTransformation>false</EnableDeflectionTransformation>
<NcResolution>
<FeedPerCycleNcResolution />
</NcResolution>
</MillingActRunnerConfig>
</MillingActRunnerConfig>
<InspectingKey>Feedrate_mmdmin</InspectingKey>
<MillingGuide>
<MillingGuide>
<DictionaryColorGuide>
<DictionaryColorGuide>
<SelectedKey>Feedrate_mmdmin</SelectedKey>
<KeyToColorGuide>
<Entry Key="Feedrate_mmdmin">
<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>
</ItemConfigDictionary>
</ClStripChartConfig>
</ClStripChartConfig>
<NcOptOption>
<EnableOpt>true</EnableOpt>
<EnableOptFeedrate>true</EnableOptFeedrate>
<EnableDepthSplition>true</EnableDepthSplition>
<ExtendedPreDistance_mm>0</ExtendedPreDistance_mm>
<ExtendedPostDistance_mm>0</ExtendedPostDistance_mm>
<EnableInterpolation>true</EnableInterpolation>
<MinFeedrate_mmdmin>1</MinFeedrate_mmdmin>
<MaxFeedrate_mmdmin>20000</MaxFeedrate_mmdmin>
<RapidFeed_mmdmin>20000</RapidFeed_mmdmin>
<MaxAcceleration_mmds2>10</MaxAcceleration_mmds2>
<PreferedForce_N>800</PreferedForce_N>
<SpindleTorqueSafetyFactor>1.5</SpindleTorqueSafetyFactor>
<SpindlePowerSafetyFactor>1.5</SpindlePowerSafetyFactor>
<CompensationMask>0</CompensationMask>
</NcOptOption>
</MillingGuide>
</MillingGuide>
<NcOptProc />
<DispCacheMb>260</DispCacheMb>
<MillingTraining>
<IsFxEnabled>true</IsFxEnabled>
<IsFyEnabled>true</IsFyEnabled>
<IsFzEnabled>true</IsFzEnabled>
<IsMxEnabled>false</IsMxEnabled>
<IsMyEnabled>false</IsMyEnabled>
<IsMzEnabled>false</IsMzEnabled>
<ForceOutlierRatio>2</ForceOutlierRatio>
<LeadParaTemplate>
<RakeFaceCuttingPara />
</LeadParaTemplate>
<ResultParaTemplate>
<RakeFaceCuttingPara />
</ResultParaTemplate>
</MillingTraining>
<CsScriptText>IEnumerable&lt;Action&gt; Run(){
foreach(var action in RunNcFile("NC/circle.ptp")) yield return action;
foreach(var action in RunNcFile("NC/drill_slot.ptp")) yield return action;
foreach(var action in RunNcFile("NC/side.ptp")) yield return action;
foreach(var action in RunNcFile("NC/slide.ptp")) yield return action;
yield return null;
}
return Run();</CsScriptText>
</MillingCourse>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ProfileMillingParaMap>
<FluteFormNum>1</FluteFormNum>
<SideYParaNum>1</SideYParaNum>
<SideZParaNum>1</SideZParaNum>
<IsUpperSideContained>true</IsUpperSideContained>
<SideShearParas>
<!--FluteFormIndex = 0-->
<FluteForm>
<!--YIndex = 0-->
<!--YxAngle = 0.00-->
<YDivision>
<!--ZIndex = 0-->
<!--ZxAngle = 非數值-->
<ZDivision>556.24,1400.07,358.56</ZDivision>
</YDivision>
</FluteForm>
</SideShearParas>
<BottomShearParas>
<!--FluteFormIndex = 0-->
<FluteForm>556.24,1400.07,358.56</FluteForm>
</BottomShearParas>
<PloughPara>7.66,7.41,1.28</PloughPara>
</ProfileMillingParaMap>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<XyzabcMachineTool>
<XyzabcMachineTool XmlUseSourceDirectoryAsBaseDirectory="true">
<XyzabcChain>
<XyzabcChain>
<ChainCode>[O][Y][X][C][w];[O][Z][B][S][t]</ChainCode>
@ -31,299 +31,299 @@
<AnchorToSolid>
<Entry Key="O">
<Solid>
<StlFile>PmcB1s/base.stl</StlFile>
<StlFile>base.stl</StlFile>
</Solid>
</Entry>
<Entry Key="Y">
<Solid>
<StlFile>PmcB1s/Y.stl</StlFile>
<StlFile>Y.stl</StlFile>
</Solid>
</Entry>
<Entry Key="X">
<Solid>
<StlFile>PmcB1s/X.stl</StlFile>
<StlFile>X.stl</StlFile>
</Solid>
</Entry>
<Entry Key="C">
<Solid>
<StlFile>PmcB1s/C.stl</StlFile>
<StlFile>C.stl</StlFile>
</Solid>
</Entry>
<Entry Key="Z">
<Solid>
<StlFile>PmcB1s/Z.stl</StlFile>
<StlFile>Z.stl</StlFile>
</Solid>
</Entry>
<Entry Key="B">
<Solid>
<StlFile>PmcB1s/B.stl</StlFile>
<StlFile>B.stl</StlFile>
</Solid>
</Entry>
<Entry Key="S">
<Solid>
<StlFile>PmcB1s/S.stl</StlFile>
<StlFile>S.stl</StlFile>
</Solid>
</Entry>
</AnchorToSolid>
<CollisionIndexPairs>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>Z</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Z</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>B</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>B</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>S</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>S</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>ToolHolder</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>ToolHolder</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterShank</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterShank</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Y</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Y</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterFlute</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterFlute</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>Z</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Z</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>B</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>B</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>S</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>S</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>ToolHolder</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>ToolHolder</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterShank</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterShank</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>X</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>X</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterFlute</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterFlute</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>Z</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Z</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>B</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>B</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>S</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>S</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>ToolHolder</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>ToolHolder</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterShank</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterShank</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>C</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>C</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterFlute</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterFlute</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>Z</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Z</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>B</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>B</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>S</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>S</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>ToolHolder</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>ToolHolder</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterShank</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterShank</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Fixture</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Fixture</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterFlute</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterFlute</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Workpiece</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Workpiece</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>Z</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Z</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Workpiece</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Workpiece</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>B</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>B</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Workpiece</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Workpiece</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>S</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>S</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Workpiece</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Workpiece</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>ToolHolder</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>ToolHolder</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>
<CollisionIndexPair>
<IndexA>
<MillingEquipmentCollisionIndex>Workpiece</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>Workpiece</MachiningEquipmentCollisionIndex>
</IndexA>
<IndexB>
<MillingEquipmentCollisionIndex>CutterShank</MillingEquipmentCollisionIndex>
<MachiningEquipmentCollisionIndex>CutterShank</MachiningEquipmentCollisionIndex>
</IndexB>
<SafeDistance>0</SafeDistance>
</CollisionIndexPair>

8
Script/Run.cs Normal file
View File

@ -0,0 +1,8 @@
IEnumerable<Action> Run(){
// foreach(var action in RunNcFile("NC/circle.ptp")) yield return action;
// foreach(var action in RunNcFile("NC/drill_slot.ptp")) yield return action;
foreach(var action in RunNcFile("NC/side.ptp")) yield return action;
// foreach(var action in RunNcFile("NC/slide.ptp")) yield return action;
yield return null;
}
return Run();

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<CutterMaterial>
<Name></Name>
<ElasticModulus_GPa>600</ElasticModulus_GPa>
<TensileStrength_MPa>1440</TensileStrength_MPa>
<ThermalExpansionCoefficient_dMK>6.7</ThermalExpansionCoefficient_dMK>
<HeatTransferCoefficient_WdmK>70</HeatTransferCoefficient_WdmK>
<HeatCapacity_JdgK>0.34</HeatCapacity_JdgK>
<Density_gdcm3>14.95</Density_gdcm3>
<CutterMass_g>7</CutterMass_g>
<CutterDermis_mm>0.01</CutterDermis_mm>
<MeltingTemperature_K>3143.16</MeltingTemperature_K>
<FusionLatentHeat_Jdg>400</FusionLatentHeat_Jdg>
<FrictionCoefficient>0.44</FrictionCoefficient>
<TemperatureVsHardnessCurve>
<Entry Temperature_K="298.16">17500</Entry>
<Entry Temperature_K="873.16">14800</Entry>
<Entry Temperature_K="1013.16">12500</Entry>
<Entry Temperature_K="1173.16">10000</Entry>
</TemperatureVsHardnessCurve>
<TemperatureVsWearCoefficientCurve>
<Entry Temperature_K="298.16">1.19</Entry>
<Entry Temperature_K="473.16">1.86</Entry>
<Entry Temperature_K="673.1600000000001">7.1</Entry>
<Entry Temperature_K="873.1600000000001">25.7</Entry>
</TemperatureVsWearCoefficientCurve>
</CutterMaterial>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<MillingProcViewModel>
<ClStripViewModel>
<ClStripPosViewModel>
<StateViewModelDictionary>
<Entry Type="HiNc.TraditionalNc.TraditionalNcStep,HiNc">
<TraditionalNcStepViewModel>
<MillingForceChartViewModel>
<IsToolRunningCoordinateChecked>false</IsToolRunningCoordinateChecked>
<MinYOnForcePlot>-100</MinYOnForcePlot>
<MaxYOnForcePlot>100</MaxYOnForcePlot>
</MillingForceChartViewModel>
</TraditionalNcStepViewModel>
</Entry>
</StateViewModelDictionary>
</ClStripPosViewModel>
</ClStripViewModel>
<ForceMappingChartViewModel>
<MinYOnForcePlot>-1000</MinYOnForcePlot>
<MaxYOnForcePlot>1000</MaxYOnForcePlot>
</ForceMappingChartViewModel>
</MillingProcViewModel>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<MillingProcViewModel>
<ClStripViewModel>
<ClStripPosViewModel>
<StateViewModelDictionary>
<Entry Type="HiNc.TraditionalNc.TraditionalNcStep,HiNc">
<TraditionalNcStepViewModel>
<MillingForceChartViewModel>
<IsToolRunningCoordinateChecked>true</IsToolRunningCoordinateChecked>
<MinYOnForcePlot>-1000</MinYOnForcePlot>
<MaxYOnForcePlot>1000</MaxYOnForcePlot>
</MillingForceChartViewModel>
</TraditionalNcStepViewModel>
</Entry>
</StateViewModelDictionary>
</ClStripPosViewModel>
</ClStripViewModel>
<ForceMappingChartViewModel>
<MinYOnForcePlot>-1000</MinYOnForcePlot>
<MaxYOnForcePlot>1000</MaxYOnForcePlot>
</ForceMappingChartViewModel>
</MillingProcViewModel>