Advertisement
SteamGear

Untitled

Jul 4th, 2020
1,347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.26 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. [ExecuteInEditMode]
  6. public class MPCNC_Definition : MonoBehaviour
  7. {
  8.     public bool update;
  9.  
  10.     [Range(6.1f, 50)]
  11.     public float cornerHeight;
  12.     [Range(10, 250)]
  13.     public float sizeX, sizeZ;
  14.     [Range(21, 100)]
  15.     public float sizeY;
  16.  
  17.     public Vector3 ToolPosition;
  18.     public string CurrentGCode;
  19.  
  20.     [HideInInspector]
  21.     public GameObject rodX1, rodX2, rodX3, rodZ1, rodZ2, rodZ3;
  22.     [HideInInspector]
  23.     public GameObject CornerBL, CornerTL, CornerTR, CornerBR;
  24.     [HideInInspector]
  25.     public GameObject XBurly, XBurly2, ZBurly, ZBurly2;
  26.     [HideInInspector]
  27.     public GameObject rodY1, rodY2, rodY3, rodY4;
  28.     [HideInInspector]
  29.     public GameObject middleAssembly;
  30.     [HideInInspector]
  31.     public GameObject StepperMount;
  32.     [HideInInspector]
  33.     public GameObject ToolRod1, ToolRod2;
  34.     [HideInInspector]
  35.     public GameObject ToolMount;
  36.     [HideInInspector]
  37.     public GameObject Spindel;
  38.  
  39.     private float offsetCorrection;
  40.     private float heightOffsetCorrection;
  41.     private float lowerFrameRodOffset;
  42.     private float upperFrameRodOffset;
  43.     private float lowerBurlyOffset;
  44.     private float lowerBurlyRodOffset;
  45.     private float upperBurlyOffset;
  46.     private float upperBurlyRodOffset;
  47.     private float middleAssemblyYOffset;
  48.     private float middleAssemblyXOffsetCorrection;
  49.     private float middleAssemblyZOffsetCorrection;
  50.     private float StepperMountXOffset;
  51.     private float StepperMountYOffset;
  52.     private float StepperMountZOffset;
  53.     private float toolRod1XOffset;
  54.     private float toolRod1ZOffset;
  55.     private float toolRod2XOffset;
  56.     private float toolRod2ZOffset;
  57.     private float toolMountOffset;
  58.  
  59.     void Start()
  60.     {
  61.         //MPCNC Definitions
  62.         offsetCorrection = -2.35f;
  63.         heightOffsetCorrection = 0.92f;
  64.         lowerFrameRodOffset = 3.0f;
  65.         upperFrameRodOffset = 5.65f;
  66.         lowerBurlyOffset = 3f;
  67.         lowerBurlyRodOffset = 3.67f;
  68.         upperBurlyOffset = 5.8f;
  69.         upperBurlyRodOffset = 3.67f;
  70.         middleAssemblyYOffset = -4.19f;
  71.         middleAssemblyXOffsetCorrection = -12.9f;
  72.         middleAssemblyZOffsetCorrection = -14.15f;
  73.         StepperMountXOffset = 6.81f;
  74.         StepperMountYOffset = -31.06f;
  75.         StepperMountZOffset = -1.36f;
  76.         toolRod1XOffset = 5.31f;
  77.         toolRod1ZOffset = 11.54f;
  78.         toolRod2XOffset = 10.37f;
  79.         toolRod2ZOffset = 6.5f;
  80.         toolMountOffset = 5.86f;
  81.     }
  82.    
  83.     void Update()
  84.     {
  85.         if (update)
  86.         {
  87.             //Clamp to machine boundaries
  88.             ToolPosition = new Vector3(Mathf.Clamp(ToolPosition.x, 15.3f, sizeX + 2 * offsetCorrection - 6.3f),
  89.                 Mathf.Clamp(ToolPosition.y, -sizeY + 26, 5),
  90.                 Mathf.Clamp(ToolPosition.z, 15.3f, sizeZ + 2 * offsetCorrection - 6.3f));
  91.             Vector3 offset = CornerBL.transform.position;
  92.  
  93.             //Rod Resize
  94.             rodZ1.transform.localScale = new Vector3(2.5f, sizeZ / 2, 2.5f);
  95.             rodZ2.transform.localScale = new Vector3(2.5f, sizeZ / 2, 2.5f);
  96.             rodZ3.transform.localScale = new Vector3(2.5f, sizeZ / 2, 2.5f);
  97.             rodX1.transform.localScale = new Vector3(2.5f, sizeX / 2, 2.5f);
  98.             rodX2.transform.localScale = new Vector3(2.5f, sizeX / 2, 2.5f);
  99.             rodX3.transform.localScale = new Vector3(2.5f, sizeX / 2, 2.5f);
  100.             rodY1.transform.localScale = new Vector3(2.5f, cornerHeight / 2, 2.5f);
  101.             rodY2.transform.localScale = new Vector3(2.5f, cornerHeight / 2, 2.5f);
  102.             rodY3.transform.localScale = new Vector3(2.5f, cornerHeight / 2, 2.5f);
  103.             rodY4.transform.localScale = new Vector3(2.5f, cornerHeight / 2, 2.5f);
  104.             ToolRod1.transform.localScale = new Vector3(2.5f, sizeY / 2, 2.5f);
  105.             ToolRod2.transform.localScale = new Vector3(2.5f, sizeY / 2, 2.5f);
  106.             Spindel.transform.localScale = new Vector3(0.8f, sizeY / 2, 0.8f);
  107.  
  108.             //Frame Assembly
  109.             CornerTL.transform.position = offset + new Vector3(0, 0, sizeZ) + 2 * new Vector3(0, 0, offsetCorrection);
  110.             CornerBR.transform.position = offset + new Vector3(sizeX, 0, 0) + 2 * new Vector3(offsetCorrection, 0, 0);
  111.             CornerTR.transform.position = offset + new Vector3(sizeX, 0, sizeZ) + 2 * new Vector3(offsetCorrection, 0, offsetCorrection);
  112.  
  113.             //Rod Positions
  114.             rodZ1.transform.position = offset + new Vector3(0, cornerHeight + lowerFrameRodOffset, sizeZ / 2) + new Vector3(0, 0, offsetCorrection);
  115.             rodZ2.transform.position = offset + new Vector3(sizeX, cornerHeight + lowerFrameRodOffset, sizeZ / 2) + new Vector3(offsetCorrection * 2, 0, offsetCorrection);
  116.             rodZ3.transform.position = offset + new Vector3(0, upperBurlyOffset + upperBurlyRodOffset + cornerHeight, sizeZ / 2) + new Vector3(ToolPosition.x, 0, offsetCorrection);
  117.  
  118.             rodX1.transform.position = offset + new Vector3(sizeX / 2, cornerHeight + upperFrameRodOffset, 0) + new Vector3(offsetCorrection, 0, 0);
  119.             rodX2.transform.position = offset + new Vector3(sizeX / 2, cornerHeight + upperFrameRodOffset, sizeZ) + new Vector3(offsetCorrection, 0, offsetCorrection * 2);
  120.             rodX3.transform.position = offset + new Vector3(sizeX / 2, lowerBurlyOffset + lowerBurlyRodOffset + cornerHeight, 0) + new Vector3(offsetCorrection, 0, ToolPosition.z);
  121.  
  122.             rodY1.transform.position = offset + new Vector3(0, cornerHeight / 2, 0);
  123.             rodY2.transform.position = offset + new Vector3(sizeX, cornerHeight / 2, 0) + 2 * new Vector3(offsetCorrection, 0, 0);
  124.             rodY3.transform.position = offset + new Vector3(0, cornerHeight / 2, sizeZ) + 2 * new Vector3(0, 0, offsetCorrection);
  125.             rodY4.transform.position = offset + new Vector3(sizeX, cornerHeight / 2, sizeZ) + 2 * new Vector3(offsetCorrection, 0, offsetCorrection);
  126.  
  127.             //Corner Locknut Positions
  128.             CornerBL.transform.GetChild(0).transform.position = offset + new Vector3(0, cornerHeight, 0) + new Vector3(0, heightOffsetCorrection, 0);
  129.             CornerTL.transform.GetChild(0).transform.position = offset + new Vector3(0, cornerHeight, sizeZ) + new Vector3(0, heightOffsetCorrection, 0) + 2 * new Vector3(0, 0, offsetCorrection);
  130.             CornerBR.transform.GetChild(0).transform.position = offset + new Vector3(sizeX, cornerHeight, 0) + new Vector3(0, heightOffsetCorrection, 0) + 2 * new Vector3(offsetCorrection, 0, 0);
  131.             CornerTR.transform.GetChild(0).transform.position = offset + new Vector3(sizeX, cornerHeight, sizeZ) + new Vector3(0, heightOffsetCorrection, 0) + 2 * new Vector3(offsetCorrection, 0, offsetCorrection);
  132.  
  133.             //Burly Position
  134.             ZBurly.transform.position = offset + new Vector3(0, lowerBurlyOffset + cornerHeight, ToolPosition.z);
  135.             ZBurly2.transform.position = offset + new Vector3(sizeX, lowerBurlyOffset + cornerHeight, ToolPosition.z) + 2 * new Vector3(offsetCorrection, 0, 0);
  136.             XBurly.transform.position = offset + new Vector3(ToolPosition.x, upperBurlyOffset + cornerHeight, 0);
  137.             XBurly2.transform.position = offset + new Vector3(ToolPosition.x, upperBurlyOffset + cornerHeight, sizeZ) + 2 * new Vector3(0, 0, offsetCorrection);
  138.  
  139.             //Middle Assembly
  140.             middleAssembly.transform.position = offset + new Vector3(ToolPosition.x + middleAssemblyXOffsetCorrection, middleAssemblyYOffset + cornerHeight, ToolPosition.z + middleAssemblyZOffsetCorrection);
  141.             StepperMount.transform.localPosition = new Vector3(StepperMountXOffset, StepperMountYOffset + sizeY + ToolPosition.y, StepperMountZOffset);
  142.             ToolMount.transform.localPosition = new Vector3(ToolMount.transform.localPosition.x, ToolPosition.y + toolMountOffset, ToolMount.transform.localPosition.z);
  143.  
  144.             //Rod Position
  145.             ToolRod1.transform.localPosition = new Vector3(toolRod1XOffset, sizeY / 2 + ToolPosition.y, toolRod1ZOffset);
  146.             ToolRod2.transform.localPosition = new Vector3(toolRod2XOffset, sizeY / 2 + ToolPosition.y, toolRod2ZOffset);
  147.             Spindel.transform.localPosition = new Vector3(Spindel.transform.localPosition.x, sizeY / 2 + ToolPosition.y, Spindel.transform.localPosition.z);
  148.         }
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement