private void btnOk_Click(object sender, EventArgs e) { string patternName = tbPatternName.Text.Trim(); if (!tbOriginX.IsValid || !tbOriginY.IsValid) { //MessageBox.Show("Please input valid origin values."); MessageBox.Show("请输入正确的原点坐标."); return; } if (pattern is Workpiece) { Workpiece w = pattern as Workpiece; w.OriginPos.X = tbOriginX.Value; w.OriginPos.Y = tbOriginY.Value; FluidProgram.Current.GetWorkPieceCmdLine().Origin.X = tbOriginX.Value; FluidProgram.Current.GetWorkPieceCmdLine().Origin.Y = tbOriginY.Value; CompareObj.CompareField(w.OriginPos, workPieceOrgBackUp, null, this.GetType().Name, true); } else { //机械坐标->系统坐标 PointD p = this.workpiece.SystemRel(tbOriginX.Value, tbOriginY.Value); pattern.Origin.X = p.X; pattern.Origin.Y = p.Y; CompareObj.CompareField(p, patternOrgBackUp, null, this.GetType().Name, true); } MsgCenter.Broadcast(Constants.MSG_FINISH_EDITING_PATTREN_ORIGIN, null, null); DialogResult = DialogResult.OK; Close(); }
public AddPattern1(Workpiece workpiece) : base(workpiece.GetOriginPos()) { InitializeComponent(); this.Activated += AddPattern1_Activated; this.ReadLanguageResources(); this.workpiece = workpiece; }
public GraphQLRequest CreateWorkpiece(Workpiece workpiece) { Dictionary <string, object> data = new Dictionary <string, object> { { "id", null }, { "externalWorkpieceId", workpiece.ExternalWorkpieceId }, { "name", workpiece.Name }, { "orderId", workpiece.OrderId }, { "deliveryDate", workpiece.DeliveryDate.ToString("yyyy-MM-dd") }, { "quantity", workpiece.Quantity } }; var request = new GraphQLRequest { OperationName = null, Variables = new { _v0_workpiece = data }, Query = @"mutation ($_v0_workpiece: WorkpieceInputType!) {createWorkpiece(workpiece: $_v0_workpiece) { id __typename } }" }; return(request); }
public NewPatternMetro(Workpiece workpiece) { InitializeComponent(); //this.Activated += AddPattern1_Activated; //this.ReadLanguageResources(); this.workpiece = workpiece; }
public int CreateWorkpiece(Workpiece workpiece) { var request = ProjectManagerRequests.Order.CreateWorkpiece(workpiece); var result = this.Client.PostAsync(request).Result; return(result.Data["createWorkpiece"]["id"]); }
public OWorkpieceVM() { ObjectManager.Instance.update(PDCore.Database.DBWorkpieces.Table); ObjectManager.Instance.update(PDCore.Database.DBMAterial.Table); m_workpiece = new Workpiece(); m_workieces = new ObservableCollection <Workpiece>(ObjectManager.Instance.Workpieces); SaveWorkpiece = new RelayCommand(Save, CanSave); }
private void LV_Workpiece_DoubleClick(object sender, MouseButtonEventArgs e) { if ((sender as ListView).SelectedIndex != -1) { m_workpice = ((sender as ListView).SelectedItem as Workpiece); this.Close(); } }
private void EditPattern_Load(object sender, EventArgs e) { if (pattern is Workpiece) { Workpiece w = pattern as Workpiece; workPieceOrgBackUp = (PointD)w.OriginPos.Clone(); } else { patternOrgBackUp = (PointD)pattern.Origin.Clone(); } }
public int CreateWorkpiece(int orderId) { var testWorkpiece = new Faker <Workpiece>().Rules( (f, o) => { o.Name = f.Hacker.Noun() + "_" + f.Hacker.Adjective(); o.DeliveryDate = f.Date.Future(1); o.ExternalWorkpieceId = f.Hacker.Noun() + "_" + f.Hacker.Abbreviation() + "_" + f.Finance.Amount(); o.OrderId = orderId; o.Quantity = f.Random.Int(2, 10000); }); Workpiece workpiece = testWorkpiece; var workpieceId = this.App.GraphApi.ProjectManager.CreateWorkpiece(workpiece); return(workpieceId); }
public Workpiece GetWorkpieceData() { Workpiece workpiece = new Workpiece(); var workpieceDetailsParentElements = this.Driver.Finds(this.workpieceInfoField); Dictionary <string, string> workpieceDetails = new Dictionary <string, string>(); foreach (var element in workpieceDetailsParentElements) { var data = element.FindElements(By.CssSelector("span")); workpieceDetails.Add(data[0].Text.Trim(), data[1].Text.Trim()); } workpiece.ExternalWorkpieceId = workpieceDetails["Workpiece ID"]; workpiece.Name = workpieceDetails["Name"]; workpiece.Quantity = int.Parse(workpieceDetails["Ordered q-ty"]); workpiece.DeliveryDate = DateTime.ParseExact(workpieceDetails["Delivery date"], "M/d/yyyy", CultureInfo.InvariantCulture); return(workpiece); }
public void AddWorkpieceToOrder(Workpiece workpiece, bool populateOnly = false) { var materials = App.GraphApi.ToolManager.GetUsageMaterials(); var material = materials.First(m => int.Parse(m.Id).Equals(workpiece.RawMaterialId)); if (!App.Pages.OrdersPages.CreateWorkpiecePopup.IsOpened()) { App.Pages.OrdersPages.OrderDetails.ClickCreateNewWorkpieceButton(); } App.Pages.OrdersPages.CreateWorkpiecePopup.PopulateField(CreateWorkpiecePopup.WorkpieceFields.WorkpieceId, workpiece.ExternalWorkpieceId); App.Pages.OrdersPages.CreateWorkpiecePopup.PopulateField(CreateWorkpiecePopup.WorkpieceFields.WorkpieceName, workpiece.Name); string deliveryDate = workpiece.DeliveryDate.ToString("yyyy-MM-dd").Equals("0001-01-01") ? string.Empty : workpiece.DeliveryDate.ToString("MM/dd/yyy"); App.Pages.OrdersPages.CreateWorkpiecePopup.PopulateField(CreateWorkpiecePopup.WorkpieceFields.WorkpieceDeliveryDate, deliveryDate); App.Pages.OrdersPages.CreateWorkpiecePopup.PopulateField( CreateWorkpiecePopup.WorkpieceFields.WorkpieceMaterial, material.Name); App.Pages.OrdersPages.CreateWorkpiecePopup.PopulateField(CreateWorkpiecePopup.WorkpieceFields.WorkpieceQuantity, workpiece.Quantity.ToString()); if (!populateOnly) { int counter = 0; while (!App.Pages.OrdersPages.CreateWorkpiecePopup.IsSaveButtonEnabled() && counter++ < 5) { Thread.Sleep(500); } if (counter >= 5) { throw new Exception("'Add workpiece' button is disabled"); } App.Pages.OrdersPages.CreateWorkpiecePopup.ClickSaveButton(); ServiceMethods.WaitForOperationPositive(() => !App.Pages.OrdersPages.CreateWorkpiecePopup.IsOpened(), 20); } }
private string FormWorkpieceErrorMessage(Workpiece workpiece, Workpiece workpieceDb) { List <string> errorMessage = new List <string>(); if (!workpiece.Name.Equals(workpieceDb.Name)) { errorMessage.Add($"WorkpieceName: expected '{workpiece.Name}', actual in DB '{workpieceDb.Name}'"); } if (!workpiece.DeliveryDate.ToString("yyyy-MM-dd").Equals(workpieceDb.DeliveryDate.ToString("yyyy-MM-dd"))) { errorMessage.Add( $"Workpiece Delivery Date: expected '{workpiece.DeliveryDate:yyyy-MM-dd}', actual in DB '{workpieceDb.DeliveryDate:yyyy-MM-dd}'"); } if (!workpiece.ExternalWorkpieceId.Equals(workpieceDb.ExternalWorkpieceId)) { errorMessage.Add( $"External Workpiece Id: expected '{workpiece.ExternalWorkpieceId}', actual in DB '{workpieceDb.ExternalWorkpieceId}'"); } if (!workpiece.OrderId.Equals(workpieceDb.OrderId)) { errorMessage.Add($"Order Id: expected '{workpiece.OrderId}', actual in DB '{workpieceDb.OrderId}'"); } if (!workpiece.Quantity.Equals(workpieceDb.Quantity)) { errorMessage.Add( $"Workpiece Quantity: expected '{workpiece.Quantity}', actual in DB '{workpieceDb.Quantity}'"); } if (!workpieceDb.CreatedDate.ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd"))) { errorMessage.Add( $"Workpiece CreatedDate: expected '{workpiece.Quantity}', actual in DB '{workpieceDb.CreatedDate:yyyy-MM-dd}"); } return(ServiceMethods.ListToString(errorMessage)); }
public EditPattern(Pattern pattern, Workpiece workpiece) : base(workpiece.GetOriginPos()) { InitializeComponent(); this.ReadLanguageResources(); this.pattern = pattern; this.workpiece = workpiece; tbPatternName.Text = this.pattern.Name; tbPatternName.Enabled = false; if (pattern is Workpiece) { tbOriginX.Text = this.pattern.GetOriginPos().X.ToString("0.000"); tbOriginY.Text = this.pattern.GetOriginPos().Y.ToString("0.000"); } else { //系统坐标->机械坐标 PointD p = workpiece.MachineRel(this.pattern.Origin); tbOriginX.Text = p.X.ToString("0.000"); tbOriginY.Text = p.Y.ToString("0.000"); } }
private void btnOk_Click(object sender, EventArgs e) { string patternName = tbPatternName.Text.Trim(); if (!tbOriginX.IsValid || !tbOriginY.IsValid) { //MessageBox.Show("Please input valid origin values."); MetroSetMessageBox.Show(this, "请输入正确的原点坐标."); return; } if (pattern is Workpiece) { Workpiece w = pattern as Workpiece; w.OriginPos.X = tbOriginX.Value; w.OriginPos.Y = tbOriginY.Value; FluidProgram.Current.GetWorkPieceCmdLine().Origin.X = tbOriginX.Value; FluidProgram.Current.GetWorkPieceCmdLine().Origin.Y = tbOriginY.Value; CompareObj.CompareField(w.OriginPos, workPieceOrgBackUp, null, this.GetType().Name, true); } else { //机械坐标->系统坐标 PointD p = this.workpiece.SystemRel(tbOriginX.Value, tbOriginY.Value); pattern.Origin.X = p.X; pattern.Origin.Y = p.Y; CompareObj.CompareField(p, patternOrgBackUp, null, this.GetType().Name, true); } MsgCenter.Broadcast(Constants.MSG_FINISH_EDITING_PATTREN_ORIGIN, null, null); MsgCenter.Broadcast(MsgDef.MSG_PARAMPAGE_CLEAR, null); Log.Print("change pattern origin to : " + pattern.Origin); // 移动到新原点位置 Machine.Instance.Robot.MoveSafeZ(); Machine.Instance.Robot.ManualMovePosXY(pattern.GetOriginPos()); }
private void CreateWorkpieces(int count, params Capability[] capabilities) { if (capabilities.Length > MaxProductionSteps) { throw new InvalidOperationException($"Too many production steps; increase '{MaxProductionSteps}'."); } var task = new Task(capabilities); Tasks.Add(task); for (var i = 0; i < count; ++i) { var workpiece = new Workpiece(capabilities.OfType <ProcessCapability>().Select(c => c.ProductionAction).ToArray()) { Name = $"W{Workpieces.Count}", IncorrectlyPositionedFault = { Name = $"W{Workpieces.Count}.IncorrectlyPositioned" }, ToolApplicationFailed = { Name = $"W{Workpieces.Count}.ToolApplicationFailed" }, }; Workpieces.Add(workpiece); Resources.Add(new Resource(task, workpiece)); } }
/// <summary> /// Load程序后,第一次加载显示Pattern内容后,拍摄Mark点校正Pattern原点及轨迹命令坐标 /// </summary> /// <param name="pattern"></param> /// <param name="onStart"></param> /// <param name="onFinished"></param> /// <param name="onError"></param> /// <param name="mustCorrect">必须校正,即使NeedMarkCorrect为false</param> /// <returns>-1:执行失败,1:不需要校正,0:校正成功</returns> public int Correct(Pattern pattern) { if (pattern == null) { Log.Print(TAG, "pattern is null."); return(-1); } //if (!pattern.NeedMarkCorrect) //{ // Log.Print(TAG, "pattern NeedMarkCorrect : false"); // return 1; //} var tuple = this.getMarksRecursive(pattern); var markCmdLines = tuple.Item2; if (markCmdLines.Count <= 0) { return(1); } //if (pattern.GetMarkCmdLines().Count <= 0) //{ // Log.Print(TAG, "pattern marks count : 0"); // return 1; //} // 拍摄Mark点 Result ret = Result.OK; foreach (MarkCmdLine markCmdLine in markCmdLines) { ret = executeMark(tuple.Item1, markCmdLine); if (!ret.IsOk) { return(-1); } } // 生成坐标校正器 CoordinateTransformer coordinateTransformer = new CoordinateTransformer(); if (markCmdLines.Count == 1) { if (markCmdLines[0].ModelFindPrm.IsUnStandard) { PointD p = new PointD(markCmdLines[0].ModelFindPrm.ReferenceX, markCmdLines[0].ModelFindPrm.ReferenceY); PointD refXY = (p + tuple.Item1.GetOriginSys()).ToMachine(); if (markCmdLines[0].ModelFindPrm.UnStandardType == 0) { coordinateTransformer.SetMarkPoint(refXY, markCmdLines[0].ModelFindPrm.ReferenceA, markCmdLines[0].ModelFindPrm.TargetInMachine, markCmdLines[0].ModelFindPrm.Angle); } else { PointD p2 = new PointD(markCmdLines[0].ModelFindPrm.ReferenceX2, markCmdLines[0].ModelFindPrm.ReferenceY2); PointD refXY2 = (p2 + tuple.Item1.GetOriginSys()).ToMachine(); coordinateTransformer.SetMarkPoint(refXY, refXY2, markCmdLines[0].ModelFindPrm.TargetInMachine, markCmdLines[0].ModelFindPrm.TargetInMachine2); } } else { coordinateTransformer.SetMarkPoint( markCmdLines[0].ModelFindPrm.PosInMachine, markCmdLines[0].ModelFindPrm.TargetInMachine); } } else if (markCmdLines.Count == 2) { coordinateTransformer.SetMarkPoint( markCmdLines[0].ModelFindPrm.PosInMachine, markCmdLines[1].ModelFindPrm.PosInMachine, markCmdLines[0].ModelFindPrm.TargetInMachine, markCmdLines[1].ModelFindPrm.TargetInMachine); } // 校正Pattern原点 PointD patternOldOrigin = new PointD(pattern.GetOriginPos()); PointD patternNewOrigin = coordinateTransformer.Transform(patternOldOrigin); if (pattern is Workpiece) {//workpiece原点为机械坐标 Workpiece w = pattern as Workpiece; w.OriginPos.X = patternNewOrigin.X; w.OriginPos.Y = patternNewOrigin.Y; FluidProgram.Current.GetWorkPieceCmdLine().Origin.X = w.OriginPos.X; FluidProgram.Current.GetWorkPieceCmdLine().Origin.Y = w.OriginPos.Y; } else {//Pattern原点为相对workpiece的系统坐标 VectorD v = patternNewOrigin.ToSystem() - pattern.Program.Workpiece.GetOriginPos().ToSystem(); pattern.Origin.X = v.X; pattern.Origin.Y = v.Y; } //// 校正轨迹命令坐标 //foreach (CmdLine cmdLine in pattern.CmdLineList) //{ // cmdLine.Correct(patternOldOrigin, coordinateTransformer, patternNewOrigin); //} //// 校正子Pattern的原点 //foreach (var item in pattern.Children) //{ // PointD newOriginPos = coordinateTransformer.Transform(item.GetOriginPos()); // // Pattern原点为相对Workpiece的系统坐标 // item.Origin.X = (newOriginPos.ToSystem() - pattern.Program.Workpiece.GetOriginSys()).X; // item.Origin.Y = (newOriginPos.ToSystem() - pattern.Program.Workpiece.GetOriginSys()).Y; //} correctPatternRecursive(pattern, patternOldOrigin, patternNewOrigin, coordinateTransformer); //pattern.NeedMarkCorrect = false; return(0); }
public int CreateWorkpiece(Workpiece workpiece) { var workpieceId = this.App.GraphApi.ProjectManager.CreateWorkpiece(workpiece); return(workpieceId); }
public void CheckOrderWorkpieceWorkplanMutations() { var testOrder = new Faker <Order>() .RuleFor(o => o.ExternalOrderId, f => "AutoOrder " + f.Company.CompanyName() + "_" + f.Finance.Amount(1, 10000)) .RuleFor(o => o.CustomerId, f => f.PickRandom(OrdersData.Customers.Values.ToList())) .RuleFor(o => o.Comments, f => f.Hacker.Phrase()).RuleFor(o => o.DeliveryDate, f => f.Date.Future(1)); Order orderToCreate = testOrder; var orderId = this.App.GraphApi.ProjectManager.CreateOrder(orderToCreate); var orderDb = this.App.Db.ProjectManager.GetOrder(orderId); Assert.That( orderToCreate.ExternalOrderId.Equals(orderDb.ExternalOrderId) && orderToCreate.CustomerId.Equals(orderDb.CustomerId) && orderToCreate.Comments.Equals(orderDb.Comments) && orderDb.CreatedDate.ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd")), "Order wasn't created correctly. Some data is wrong"); var orders = this.App.Db.ProjectManager.GetOrders().Where(o => o.ExternalOrderId.Equals(orderToCreate.ExternalOrderId)) .ToList(); Assert.That(orders.Count == 1, $"Only 1 order should have been created. But was {orders.Count}"); var testWorkpiece = new Faker <Workpiece>().Rules( (f, o) => { o.Name = f.Hacker.Noun() + "_" + f.Hacker.Adjective(); o.DeliveryDate = f.Date.Future(1); o.ExternalWorkpieceId = f.Hacker.Noun() + "_" + f.Hacker.Abbreviation() + "_" + f.Finance.Amount(); o.OrderId = orderId; o.Quantity = f.Random.Int(2, 10000); }); Workpiece workpiece = testWorkpiece; var workpieceId = this.App.GraphApi.ProjectManager.CreateWorkpiece(workpiece); var workpieceDb = this.App.Db.ProjectManager.GetWorkpiece(workpieceId); bool workpieceIsCorrect = workpiece.Name.Equals(workpieceDb.Name) && workpiece.DeliveryDate.ToString("yyyy-MM-dd").Equals( workpieceDb.DeliveryDate.ToString("yyyy-MM-dd")) && workpiece.ExternalWorkpieceId.Equals(workpieceDb.ExternalWorkpieceId) && workpiece.OrderId.Equals(workpieceDb.OrderId) && workpiece.Quantity.Equals(workpieceDb.Quantity) && workpieceDb.CreatedDate .ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd")); string errorMessage = string.Empty; if (!workpieceIsCorrect) { errorMessage = this.FormWorkpieceErrorMessage(workpiece, workpieceDb); } Assert.That( workpieceIsCorrect, $"Workpiece wasn't created correctly. Some data is wrong. Workpiece Id - {workpiece.ExternalWorkpieceId}. {errorMessage}"); var workpieces = this.App.Db.ProjectManager.GetWorkpieces() .Where(w => w.ExternalWorkpieceId.Equals(workpiece.ExternalWorkpieceId)).ToList(); Assert.That(workpieces.Count == 1, $"Only 1 workpiece should have been created. But was {workpieces.Count}. ExternalWorkpieceId is '{workpiece.ExternalWorkpieceId}'"); Workplan workplan = new Workplan(); workplan.WorkpieceId = workpieceId; var workplanId = this.App.GraphApi.ProjectManager.CreateWorkPlan(workplan); var workplanDb = this.App.Db.ProjectManager.GetWorkplan(workplanId); Assert.That( workplan.WorkpieceId.Equals(workplanDb.WorkpieceId) && workplanDb.CreatedDate.ToString("yyyy-MM-dd") .Equals(DateTime.Now.ToString("yyyy-MM-dd")), "Workplan wasn't created correctly. Some data is wrong"); var workplans = this.App.Db.ProjectManager.GetWorkplans().Where(w => w.WorkpieceId.Equals(workpieceId)) .ToList(); Assert.That(workplans.Count == 1, $"Only 1 workplan should have been created. But was {workplans.Count}"); }
protected KeyValuePair <bool, string> CompareWorkpieceWithWorkpieceFromGrid(WorkpieceGridRecord workpieceToCheck, Workpiece wpExpected) { if (workpieceToCheck != null && wpExpected != null) { string errorMessage = string.Empty; List <string> errorLines = new List <string>(); bool valid = workpieceToCheck.Id.Equals(wpExpected.ExternalWorkpieceId) && workpieceToCheck.Name.Equals(wpExpected.Name) && workpieceToCheck.Quantity.Equals(wpExpected.Quantity.ToString()); if (!Parameters.Parameters.Browser.Equals("MicrosoftEdge")) { valid = valid && workpieceToCheck.DeliveryDate.Equals( wpExpected.DeliveryDate.ToString("MM/dd/yyyy")); } if (!valid) { if (!workpieceToCheck.Id.Equals(wpExpected.ExternalWorkpieceId)) { errorLines.Add($"Workpiece Id: expected '{wpExpected.ExternalWorkpieceId}', actual '{workpieceToCheck.Id}'"); } if (!workpieceToCheck.DeliveryDate.Equals(wpExpected.DeliveryDate.ToString("MM/dd/yyyy"))) { errorLines.Add($"Workpiece Delivery date: expected '{ wpExpected.DeliveryDate.ToString("MM/dd/yyyy")}', actual '{workpieceToCheck.DeliveryDate}'"); } if (!workpieceToCheck.Name.Equals(wpExpected.Name)) { errorLines.Add($"Name: expected '{wpExpected.Name}', actual '{workpieceToCheck.Name}'"); } if (!workpieceToCheck.Quantity.Equals(wpExpected.Quantity.ToString())) { errorLines.Add($"Quantity: expected '{wpExpected.Quantity}', actual '{workpieceToCheck.Quantity}'"); } } if (errorLines.Count > 0) { errorMessage = ServiceMethods.ListToString(errorLines); } return(new KeyValuePair <bool, string>(valid, errorMessage)); } return(new KeyValuePair <bool, string>(false, "One of the workpieces is null")); }
public OWorkpieceVM(int WPID) { m_update = true; m_workpiece = ObjectManager.Instance.getWorkpiece(WPID); SaveWorkpiece = new RelayCommand(Save, CanSave); }
public Resource(Task task, Workpiece workpiece) { Task = task; Workpiece = workpiece; }
public WorkpieceQualityVM(Workpiece wp) { m_wp = wp; }
public Resource(Task task, Workpiece workpiece) { Task = task; Workpiece = workpiece; }
public CQuality(Workpiece wp) { InitializeComponent(); m_vm = new ViewModels.WorkpieceQualityVM(wp); DataContext = m_vm; }