Commit 47cbb42e83023f45bf92cdcf5dbeaf03bc2aff57
1 parent
55679355
Exists in
master
and in
2 other branches
Update SW1
Modifications to BUNDLEBLDR.cpp. Fixed issues is some Linux versions affecting drawing of cable schematic.
Showing
4 changed files
with
861 additions
and
849 deletions
Show diff stats
GUI/SW1/SRC/BUNDLEBLDR.cpp
@@ -325,6 +325,27 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w | @@ -325,6 +325,27 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w | ||
325 | //PopulateTheDirectoryTree(PathToMOD); | 325 | //PopulateTheDirectoryTree(PathToMOD); |
326 | } | 326 | } |
327 | 327 | ||
328 | + | ||
329 | +BUNDLEBLDR::~BUNDLEBLDR() | ||
330 | +{ | ||
331 | + //(*Destroy(BUNDLEBLDR) | ||
332 | + //*) | ||
333 | +} | ||
334 | + | ||
335 | +void BUNDLEBLDR::SetPathForDir(wxString Path, wxString Name) | ||
336 | +{ | ||
337 | + PathToMOD << Path; | ||
338 | + MODname << Name; | ||
339 | + | ||
340 | + PopulateTheDirectoryTree(PathToMOD); | ||
341 | +} | ||
342 | + | ||
343 | + | ||
344 | +//========================================================================================================= | ||
345 | +// Build bundle from components selected from MOD | ||
346 | + | ||
347 | + | ||
348 | +//Select cable component for removal | ||
328 | void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) | 349 | void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) |
329 | { | 350 | { |
330 | int item = ListBox1->HitTest(event.GetPosition()); | 351 | int item = ListBox1->HitTest(event.GetPosition()); |
@@ -334,9 +355,10 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) | @@ -334,9 +355,10 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) | ||
334 | wxString strMessage; | 355 | wxString strMessage; |
335 | wxString strItem = ListBox1->GetString(item); | 356 | wxString strItem = ListBox1->GetString(item); |
336 | 357 | ||
337 | - strMessage = "Are you sure you w DrawBundleCsection();ish to delete: "; | 358 | + strMessage = "Are you sure you wish to delete: "; |
338 | strMessage = strMessage << strItem; | 359 | strMessage = strMessage << strItem; |
339 | - // Confirm cable component deletion? | 360 | + |
361 | + // Confirm cable component deletion | ||
340 | wxMessageDialog bb_ConfirmDelete (this, strMessage, _("Please confirm delete") ,wxYES_NO|wxCENTRE,wxDefaultPosition ); | 362 | wxMessageDialog bb_ConfirmDelete (this, strMessage, _("Please confirm delete") ,wxYES_NO|wxCENTRE,wxDefaultPosition ); |
341 | 363 | ||
342 | bb_ConfirmDelete.ShowModal(); | 364 | bb_ConfirmDelete.ShowModal(); |
@@ -351,11 +373,13 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) | @@ -351,11 +373,13 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) | ||
351 | event.Skip(); | 373 | event.Skip(); |
352 | } | 374 | } |
353 | 375 | ||
376 | + | ||
377 | +//Add cable component to component list | ||
354 | void BUNDLEBLDR::PopulateListControl(void) | 378 | void BUNDLEBLDR::PopulateListControl(void) |
355 | { | 379 | { |
356 | ListBox1->Clear(); | 380 | ListBox1->Clear(); |
357 | 381 | ||
358 | - Button1->Enable(); DrawBundleCsection(); | 382 | + Button1->Enable(); |
359 | 383 | ||
360 | Bundle *Current = bundle_root; | 384 | Bundle *Current = bundle_root; |
361 | 385 | ||
@@ -364,10 +388,10 @@ void BUNDLEBLDR::PopulateListControl(void) | @@ -364,10 +388,10 @@ void BUNDLEBLDR::PopulateListControl(void) | ||
364 | ListBox1->Append(Current->CableType); | 388 | ListBox1->Append(Current->CableType); |
365 | Current = Current->next; | 389 | Current = Current->next; |
366 | } | 390 | } |
367 | - DrawPanel(); | ||
368 | - DrawBundleCsection(); | ||
369 | } | 391 | } |
370 | 392 | ||
393 | + | ||
394 | +//Delete cable component from component list | ||
371 | void BUNDLEBLDR::removeElement(int ItemIndex) | 395 | void BUNDLEBLDR::removeElement(int ItemIndex) |
372 | { | 396 | { |
373 | 397 | ||
@@ -399,13 +423,7 @@ void BUNDLEBLDR::removeElement(int ItemIndex) | @@ -399,13 +423,7 @@ void BUNDLEBLDR::removeElement(int ItemIndex) | ||
399 | } | 423 | } |
400 | 424 | ||
401 | 425 | ||
402 | - | ||
403 | -BUNDLEBLDR::~BUNDLEBLDR() | ||
404 | -{ | ||
405 | - //(*Destroy(BUNDLEBLDR) | ||
406 | - //*) | ||
407 | -} | ||
408 | - | 426 | +// Display MOD |
409 | void BUNDLEBLDR::PopulateTheDirectoryTree (wxString Path) | 427 | void BUNDLEBLDR::PopulateTheDirectoryTree (wxString Path) |
410 | { | 428 | { |
411 | int size_h, size_v; | 429 | int size_h, size_v; |
@@ -426,8 +444,10 @@ void BUNDLEBLDR::PopulateTheDirectoryTree (wxString Path) | @@ -426,8 +444,10 @@ void BUNDLEBLDR::PopulateTheDirectoryTree (wxString Path) | ||
426 | 444 | ||
427 | //SetButtonState_FolderSelected(); | 445 | //SetButtonState_FolderSelected(); |
428 | } | 446 | } |
447 | +//========================================================================================================= | ||
429 | 448 | ||
430 | 449 | ||
450 | +//Capture component selection from MOD, position and display | ||
431 | void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent& evt) | 451 | void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent& evt) |
432 | { | 452 | { |
433 | // A few file functions | 453 | // A few file functions |
@@ -464,32 +484,10 @@ void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent& evt) | @@ -464,32 +484,10 @@ void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent& evt) | ||
464 | 484 | ||
465 | } | 485 | } |
466 | 486 | ||
467 | - | ||
468 | -void BUNDLEBLDR::OnPanel2Paint(wxPaintEvent& event) | ||
469 | -{ | ||
470 | - | ||
471 | -} | ||
472 | - | ||
473 | - | ||
474 | -void BUNDLEBLDR::SetPathForDir(wxString Path, wxString Name) | ||
475 | -{ | ||
476 | - PathToMOD << Path; | ||
477 | - MODname << Name; | ||
478 | - | ||
479 | - PopulateTheDirectoryTree(PathToMOD); | ||
480 | -} | ||
481 | - | ||
482 | -void BUNDLEBLDR::OnCheckListBox1Toggled(wxCommandEvent& event) | ||
483 | -{ | ||
484 | -} | ||
485 | - | 487 | +// Initialise Draw Panel |
486 | void BUNDLEBLDR::OnPanel1Paint(wxPaintEvent& event) | 488 | void BUNDLEBLDR::OnPanel1Paint(wxPaintEvent& event) |
487 | { | 489 | { |
488 | - | ||
489 | DrawPanel(); | 490 | DrawPanel(); |
490 | - //DrawBundleCsection(); | ||
491 | - | ||
492 | - | ||
493 | } | 491 | } |
494 | 492 | ||
495 | void BUNDLEBLDR::DrawPanel() | 493 | void BUNDLEBLDR::DrawPanel() |
@@ -503,27 +501,7 @@ void BUNDLEBLDR::DrawPanel() | @@ -503,27 +501,7 @@ void BUNDLEBLDR::DrawPanel() | ||
503 | FormatPanel(maxDimension); | 501 | FormatPanel(maxDimension); |
504 | } | 502 | } |
505 | 503 | ||
506 | -void BUNDLEBLDR::DrawBundleCsection() | ||
507 | -{ | ||
508 | - bundle_list = bundle_root; | ||
509 | - | ||
510 | - wxString x, y, rot, cable; | ||
511 | - | ||
512 | - while ( bundle_list->next != NULL ) | ||
513 | - { | ||
514 | - cable = bundle_list->CableType; | ||
515 | - x = bundle_list->x_offset; | ||
516 | - y = bundle_list->y_offset; | ||
517 | - rot = bundle_list->rot_theta; | ||
518 | - | ||
519 | - DrawBundleCable(cable, x, y, rot); | ||
520 | - | ||
521 | - bundle_list = bundle_list->next; | ||
522 | - } | ||
523 | -} | ||
524 | - | ||
525 | - | ||
526 | -// BUNDLE GRAPHICAL SCHEMATIC - SET UP PANEL | 504 | +// Set Default Panel |
527 | void BUNDLEBLDR::FormatPanel(double maxDimension) | 505 | void BUNDLEBLDR::FormatPanel(double maxDimension) |
528 | 506 | ||
529 | { | 507 | { |
@@ -566,711 +544,733 @@ void BUNDLEBLDR::FormatPanel(double maxDimension) | @@ -566,711 +544,733 @@ void BUNDLEBLDR::FormatPanel(double maxDimension) | ||
566 | 544 | ||
567 | } | 545 | } |
568 | 546 | ||
569 | -void BUNDLEBLDR::DrawBundleCable(wxString cable, wxString x, wxString y, wxString rot) | 547 | +// Draw Bundle for Selected Components |
548 | +void BUNDLEBLDR::DrawBundleCsection() | ||
570 | { | 549 | { |
571 | - wxString separator(wxFileName::GetPathSeparator()); | ||
572 | - | ||
573 | - double xCoord, yCoord, rotation, maxDimension; | 550 | + bundle_list = bundle_root; |
574 | 551 | ||
575 | - x.ToDouble(&xCoord); | ||
576 | - y.ToDouble(&yCoord); | ||
577 | - rot.ToDouble(&rotation); | 552 | + wxString x, y, rot, cable; |
578 | 553 | ||
579 | - yCoord = -1.0 * yCoord; | 554 | + double maxDimension; |
580 | 555 | ||
581 | - int size_h, size_v; | ||
582 | - Panel1->GetSize(&size_h, &size_v ); | 556 | + wxString maxXY = TextCtrl8->GetValue(); |
583 | 557 | ||
584 | - wxClientDC dc(Panel1); | 558 | + maxXY.ToDouble(&maxDimension); |
585 | 559 | ||
586 | - std::stringstream stream; | ||
587 | - stream << PathToMOD << separator << "CABLE"<< separator << cable; | 560 | + FormatPanel(maxDimension); |
588 | 561 | ||
589 | - cable = (stream.str().c_str()); | ||
590 | 562 | ||
591 | - std::ifstream cableFile; | ||
592 | - cableFile.open (cable); | 563 | + while ( bundle_list->next != NULL ) |
564 | + { | ||
565 | + cable = bundle_list->CableType; | ||
566 | + x = bundle_list->x_offset; | ||
567 | + y = bundle_list->y_offset; | ||
568 | + rot = bundle_list->rot_theta; | ||
593 | 569 | ||
594 | - std::string str; | 570 | + DrawBundleCable(cable, x, y, rot); |
595 | 571 | ||
596 | - std::getline(cableFile, str); | ||
597 | - std::getline(cableFile, str); | ||
598 | - std::getline(cableFile, str); | 572 | + bundle_list = bundle_list->next; |
573 | + } | ||
574 | +} | ||
599 | 575 | ||
600 | - float scaleFactor = (size_h/2 * 1.0); | ||
601 | 576 | ||
602 | - wxString maxXY = TextCtrl8->GetValue(); | ||
603 | 577 | ||
604 | - maxXY.ToDouble(&maxDimension); | 578 | +// Save bundle |
579 | +void BUNDLEBLDR::OnButton1Click(wxCommandEvent& event) | ||
580 | +{ | ||
581 | + int IsError = 0; | ||
605 | 582 | ||
606 | - if (str.compare("Cylindrical") == 0 ){ | 583 | + wxString fileName = TextCtrl1->GetValue(); |
607 | 584 | ||
608 | - std::getline(cableFile, str); | ||
609 | - std::getline(cableFile, str); | 585 | + TextCtrl1->SetBackgroundColour(wxColor(255,255,255)); |
610 | 586 | ||
611 | - float conductor_radius, dielectric_radius; | 587 | + if (fileName == "") |
588 | + { | ||
589 | + wxMessageBox("Please Specify a Cable Name" , _("Missing Cable Name")); | ||
590 | + return; | ||
591 | + } | ||
612 | 592 | ||
613 | - cableFile >> conductor_radius; | ||
614 | - std::getline(cableFile, str); //Read to end of line | ||
615 | - cableFile >> dielectric_radius; | 593 | + WriteBundleFile(fileName); |
616 | 594 | ||
617 | - float dielectric_Scaledradius,conductor_Scaledradius, scaledxCoord, scaledyCoord; | 595 | + Button1->Disable(); |
596 | +} | ||
618 | 597 | ||
619 | - dielectric_Scaledradius = (dielectric_radius/maxDimension)*scaleFactor; | ||
620 | - conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; | ||
621 | - scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
622 | - scaledyCoord = (yCoord/maxDimension)*scaleFactor; | 598 | +void BUNDLEBLDR::WriteBundleFile(wxString fileName) |
599 | +{ | ||
600 | + ofstream cableFile; | ||
601 | + wxString separator(wxFileName::GetPathSeparator()); | ||
623 | 602 | ||
624 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
625 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
626 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), dielectric_Scaledradius ); | ||
627 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
628 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
629 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), conductor_Scaledradius ); | 603 | + wxString fullFileName = PathToMOD + separator + "BUNDLE" + separator + fileName + ".bundle_spec"; |
630 | 604 | ||
631 | - } | 605 | + cableFile.open (fullFileName); |
632 | 606 | ||
633 | - if (str.compare("Coax") == 0 ){ | 607 | + if (cableFile.is_open()) |
608 | + { | ||
609 | + cableFile << "#MOD_cable_lib_dir" << "\n"; | ||
634 | 610 | ||
635 | - std::getline(cableFile, str); | ||
636 | - std::getline(cableFile, str); | 611 | + cableFile <<".." << separator << MODname << separator << "CABLE" << separator <<"\n"; |
637 | 612 | ||
638 | - float inner_conductor_radius, shield_radius, outer_insulation, shield_thickness; | 613 | + cableFile << "#MOD_cable_lib_dir" << "\n"; |
639 | 614 | ||
640 | - cableFile >> inner_conductor_radius; | ||
641 | - std::getline(cableFile, str); //Read to end of line | ||
642 | - cableFile >> shield_radius; | ||
643 | - std::getline(cableFile, str); //Read to end of line | ||
644 | - cableFile >> outer_insulation; | ||
645 | - std::getline(cableFile, str); //Read to end of line | ||
646 | - std::getline(cableFile, str); //Read to end of line | ||
647 | - cableFile >> shield_thickness; | 615 | + cableFile <<".." << separator << MODname << separator << "BUNDLE" << separator <<"\n"; |
648 | 616 | ||
649 | - float inner_conductor_Scaledradius, shield_Scaledradius, outer_Scaledinsulation, shield_Scaledthickness, scaledxCoord, scaledyCoord; | 617 | + cableFile << ListBox1->GetCount() << " #Number of cables in bundle, cable list follows\n"; |
650 | 618 | ||
651 | - outer_Scaledinsulation = (outer_insulation/maxDimension)*scaleFactor; | ||
652 | - shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
653 | - shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
654 | - inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
655 | - scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
656 | - scaledyCoord = (yCoord/maxDimension)*scaleFactor; | 619 | + bundle_list = bundle_root; |
657 | 620 | ||
658 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
659 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
660 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), outer_Scaledinsulation ); | 621 | + wxString x, y, rot, cable; |
661 | 622 | ||
662 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
663 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
664 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), shield_Scaledthickness+shield_Scaledradius ); | 623 | + while ( bundle_list->next != NULL ) |
624 | + { | ||
665 | 625 | ||
666 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
667 | - dc.SetBrush(wxBrush(*wxLIGHT_GREY, wxSOLID)); | ||
668 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), shield_Scaledradius ); | 626 | + cable = bundle_list->CableType; |
669 | 627 | ||
670 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
671 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
672 | - dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), inner_conductor_Scaledradius ); | 628 | + //Remove file extension |
629 | + size_t lastindex = cable.find_last_of("."); | ||
630 | + wxString cable_name = cable.substr(0, lastindex); //at the moment here requires full path to file | ||
673 | 631 | ||
674 | - } | 632 | + x = bundle_list->x_offset; |
633 | + y = bundle_list->y_offset; | ||
634 | + rot = bundle_list->rot_theta; | ||
675 | 635 | ||
676 | - if (str.compare("Twinax") == 0 ){ | 636 | + cableFile << cable_name <<"\n"; |
637 | + cableFile << x << "\t" << y << "\t" << rot << "\n"; | ||
677 | 638 | ||
678 | - std::getline(cableFile, str); | ||
679 | - std::getline(cableFile, str); | 639 | + bundle_list = bundle_list->next; |
640 | + } | ||
680 | 641 | ||
681 | - float inner_conductor_radius, inner_dielectric_radius, conductor_separation, shield_radius, shield_thickness, outer_dielectric_radius; | 642 | + if (CheckBox1->GetValue()) |
643 | + { | ||
644 | + cableFile << "ground_plane\n"; | ||
645 | + } | ||
646 | + else | ||
647 | + { | ||
648 | + cableFile <<"no_ground_plane\n"; | ||
649 | + } | ||
682 | 650 | ||
683 | - cableFile >> inner_conductor_radius; | ||
684 | - std::getline(cableFile, str); //Read to end of line | ||
685 | - cableFile >> inner_dielectric_radius; | ||
686 | - std::getline(cableFile, str); //Read to end of line | ||
687 | - cableFile >> conductor_separation; | ||
688 | - std::getline(cableFile, str); //Read to end of line | ||
689 | - cableFile >> shield_radius; | ||
690 | - std::getline(cableFile, str); //Read to end of line | ||
691 | - cableFile >> shield_thickness; | ||
692 | - std::getline(cableFile, str); //Read to end of line | ||
693 | - cableFile >> outer_dielectric_radius; | ||
694 | 651 | ||
695 | - float outer_dielectric_Scaledradius, | ||
696 | - shield_Scaledthickness, | ||
697 | - shield_Scaledradius, | ||
698 | - inner_dielectric_Scaledradius, | ||
699 | - inner_conductor_Scaledradius, | ||
700 | - conductor_Scaledseparation, | ||
701 | - scaledxCoord, | ||
702 | - scaledyCoord; | 652 | + if (CheckBox4->GetValue()) |
653 | + { | ||
654 | + cableFile << TextCtrl2->GetValue() <<"\t # order for filter fitting\n"; | ||
655 | + if (RadioButton1) | ||
656 | + { | ||
657 | + cableFile << "lin # frequency range type for filter fitting type (lin or dB)"; | ||
658 | + } | ||
659 | + else | ||
660 | + { | ||
661 | + cableFile << "log # frequency range type for filter fitting type (lin or dB)"; | ||
662 | + } | ||
663 | + cableFile << TextCtrl3->GetValue() <<" "<< TextCtrl6->GetValue() <<" "<< TextCtrl7->GetValue() <<"\t # fmin fmax number_of_frequencies for filter fitting"; | ||
703 | 664 | ||
704 | - outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; | ||
705 | - shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
706 | - shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
707 | - inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
708 | - inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
709 | - conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
710 | - scaledxCoord = 2*(xCoord/maxDimension)*scaleFactor; | ||
711 | - scaledyCoord = 2*(yCoord/maxDimension)*scaleFactor; | 665 | + } |
712 | 666 | ||
713 | - size_h = size_h + scaledxCoord; | ||
714 | - size_v = size_v + scaledyCoord; | 667 | + if (CheckBox2->GetValue()) |
668 | + { | ||
669 | + cableFile << "use_laplace\n"; | ||
670 | + } | ||
671 | + else | ||
672 | + { | ||
673 | + cableFile << "no_laplace\n"; | ||
674 | + } | ||
715 | 675 | ||
716 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
717 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
718 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | 676 | + if (CheckBox3->GetValue()) |
677 | + { | ||
678 | + cableFile << "Laplace_boundary_constant\n"; | ||
679 | + cableFile << TextCtrl4->GetValue() <<"\n"; | ||
680 | + cableFile << "Laplace_surface_mesh_constant\n"; | ||
681 | + cableFile << TextCtrl5->GetValue() <<"\n"; | ||
682 | + cableFile << "max_mesh_edge_length\n"; | ||
683 | + cableFile << TextCtrl9->GetValue() <<"\n"; | ||
719 | 684 | ||
720 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
721 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
722 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledthickness+shield_Scaledradius ); | 685 | + if (CheckBox1->GetValue()) |
686 | + { | ||
687 | + cableFile << "gp_edge_length\n"; | ||
688 | + cableFile << TextCtrl10->GetValue() <<"\n"; | ||
689 | + } | ||
690 | + //CheckBox3 ->SetValue(false); | ||
691 | + } | ||
692 | + } | ||
693 | + cableFile.close(); | ||
723 | 694 | ||
724 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
725 | - dc.SetBrush(wxBrush(*wxLIGHT_GREY, wxSOLID)); | ||
726 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledradius ); | 695 | +} |
727 | 696 | ||
728 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
729 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
730 | - dc.DrawCircle( wxPoint((size_h/2)+(conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | 697 | +// Build Bundle Model |
698 | +void BUNDLEBLDR::OnButton2Click(wxCommandEvent& event) | ||
699 | +{ | ||
700 | + //clean up directory | ||
701 | + clean_temp_files(); | ||
731 | 702 | ||
732 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
733 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
734 | - dc.DrawCircle( wxPoint((size_h/2)-(conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | 703 | + wxString fileName = TextCtrl1->GetValue(); |
735 | 704 | ||
736 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
737 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
738 | - dc.DrawCircle( wxPoint((size_h/2)+(conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | 705 | + wxString command_line; |
739 | 706 | ||
740 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
741 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
742 | - dc.DrawCircle( wxPoint((size_h/2)-(conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
743 | - } | 707 | + wxString separator(wxFileName::GetPathSeparator()); |
744 | 708 | ||
745 | - if (str.compare("Twisted_pair") == 0 ){ | 709 | + WriteBundleFile (TextCtrl1->GetValue()); |
746 | 710 | ||
747 | - std::getline(cableFile, str); | ||
748 | - std::getline(cableFile, str); | 711 | + std::stringstream stream; |
712 | + stream <<"." + separator | ||
713 | + << "cable_bundle_model_builder" | ||
714 | + << " " | ||
715 | + << ".." + separator + MODname + separator + "BUNDLE" + separator | ||
716 | + << fileName ; | ||
749 | 717 | ||
750 | - float conductor_radius, conductor_separation, dielectric_radius; | 718 | + command_line << stream.str().c_str(); |
751 | 719 | ||
752 | - cableFile >> conductor_radius; | ||
753 | - std::getline(cableFile, str); //Read to end of line | ||
754 | - cableFile >> conductor_separation; | ||
755 | - std::getline(cableFile, str); //Read to end of line | ||
756 | - cableFile >> dielectric_radius; | 720 | + wxExecute (command_line,wxEXEC_SYNC); |
757 | 721 | ||
758 | - float conductor_Scaledradius, conductor_Scaledseparation, dielectric_Scaledradius, scaledxCoord, scaledyCoord; | 722 | + // Display Run Status |
723 | + RUN_STATUS *run_status_bundle = new RUN_STATUS(this); | ||
724 | + run_status_bundle->ShowModal(); | ||
759 | 725 | ||
760 | - conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; | ||
761 | - conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
762 | - dielectric_Scaledradius = (dielectric_radius/maxDimension)*scaleFactor; | ||
763 | - scaledxCoord = 2*(xCoord/maxDimension)*scaleFactor; | ||
764 | - scaledyCoord = 2*(yCoord/maxDimension)*scaleFactor; | 726 | + DrawBundleCsection(); |
765 | 727 | ||
766 | - size_h = size_h + scaledxCoord; | ||
767 | - size_v = size_v + scaledyCoord; | 728 | + Button1->Enable(); |
768 | 729 | ||
769 | - float wire_pos = (conductor_Scaledseparation/2)*0.707; | 730 | + if (CheckBox2->GetValue()) |
731 | + { | ||
732 | + wxString pattern(("*.msh.vtk")); | ||
733 | + wxString file; | ||
770 | 734 | ||
771 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
772 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
773 | - dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), conductor_Scaledradius ); | 735 | + ComboBox1->Clear(); |
774 | 736 | ||
737 | + file = wxFindFirstFile(pattern); | ||
775 | 738 | ||
776 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
777 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
778 | - dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), dielectric_Scaledradius ); | 739 | + while ( !file.empty()) |
740 | + { | ||
741 | + wxString meshfile = file; | ||
779 | 742 | ||
780 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
781 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
782 | - dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), conductor_Scaledradius ); | 743 | + size_t extindex = meshfile.find_last_of ("."); |
783 | 744 | ||
784 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
785 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
786 | - dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), dielectric_Scaledradius ); | 745 | + meshfile = meshfile.substr(0, extindex); |
746 | + | ||
747 | + extindex = meshfile.find_last_of ("."); | ||
748 | + | ||
749 | + meshfile = meshfile.substr(0, extindex); | ||
750 | + | ||
751 | + meshfile = meshfile.substr(2,meshfile.length()); | ||
752 | + | ||
753 | + ComboBox1->Append(meshfile); | ||
754 | + | ||
755 | + file = wxFindNextFile(); | ||
756 | + } | ||
757 | + CheckBox3->Enable(); | ||
787 | } | 758 | } |
759 | + | ||
788 | 760 | ||
789 | - if (str.compare("Shielded_twisted_pair") == 0 ){ | ||
790 | 761 | ||
791 | - std::getline(cableFile, str); | ||
792 | - std::getline(cableFile, str); | 762 | +} |
793 | 763 | ||
794 | - float inner_conductor_radius, inner_conductor_separation, inner_dielectric_radius, shield_radius, shield_thickness, outer_dielectric_radius; | 764 | +void BUNDLEBLDR::OnButton3Click(wxCommandEvent& event) |
765 | +{ | ||
766 | + //clean up directory | ||
767 | + clean_temp_files(); | ||
768 | + Close(); | ||
769 | +} | ||
795 | 770 | ||
796 | - cableFile >> inner_conductor_radius; | ||
797 | - std::getline(cableFile, str); //Read to end of line | ||
798 | - cableFile >> inner_dielectric_radius; | ||
799 | - std::getline(cableFile, str); //Read to end of line | ||
800 | - cableFile >> inner_conductor_separation; | ||
801 | - std::getline(cableFile, str); //Read to end of line | ||
802 | - cableFile >> shield_radius; | ||
803 | - std::getline(cableFile, str); //Read to end of line | ||
804 | - cableFile >> shield_thickness; | ||
805 | - std::getline(cableFile, str); //Read to end of line | ||
806 | - cableFile >> outer_dielectric_radius; | 771 | +void BUNDLEBLDR::OnCheckBox1Click(wxCommandEvent& event) |
772 | +{ | ||
773 | + int size_h, size_v; | ||
774 | + Panel1->GetSize(&size_h, &size_v ); | ||
807 | 775 | ||
808 | - float inner_conductor_Scaledradius, | ||
809 | - inner_conductor_Scaledseparation, | ||
810 | - inner_dielectric_Scaledradius, | ||
811 | - shield_Scaledradius, | ||
812 | - shield_Scaledthickness, | ||
813 | - outer_dielectric_Scaledradius, | ||
814 | - scaledxCoord, | ||
815 | - scaledyCoord; | 776 | + DrawBundleCsection(); |
816 | 777 | ||
817 | - inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
818 | - inner_conductor_Scaledseparation = (inner_conductor_separation/maxDimension)*scaleFactor; | ||
819 | - inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
820 | - shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
821 | - shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
822 | - outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; | ||
823 | - scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
824 | - scaledyCoord = (yCoord/maxDimension)*scaleFactor; | ||
825 | 778 | ||
826 | - size_h = size_h + scaledxCoord; | ||
827 | - size_v = size_v + scaledyCoord; | 779 | + TextCtrl10->Enable(); |
780 | +} | ||
828 | 781 | ||
829 | - float wire_pos = (inner_conductor_Scaledseparation/2)*0.707; | 782 | +void BUNDLEBLDR::OnCheckBox3Click(wxCommandEvent& event) |
783 | +{ | ||
784 | + if (CheckBox3->GetValue()) | ||
785 | + { | ||
786 | + TextCtrl4->Enable(); | ||
787 | + TextCtrl5->Enable(); | ||
788 | + TextCtrl9->Enable(); | ||
789 | + } | ||
830 | 790 | ||
831 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
832 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
833 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | 791 | + //WriteBundleFile (TextCtrl1->GetValue()); |
792 | +} | ||
834 | 793 | ||
835 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
836 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
837 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledthickness+shield_Scaledradius ); | 794 | +void BUNDLEBLDR::OnComboBox1Selected(wxCommandEvent& event) |
795 | +{ | ||
796 | + wxString meshToView; | ||
797 | + meshToView<<ComboBox1->GetValue(); | ||
798 | + draw_mesh(Panel1,meshToView, scale); | ||
838 | 799 | ||
839 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
840 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
841 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledradius ); | 800 | + MeshSelected = 1; |
842 | 801 | ||
843 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
844 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
845 | - dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), inner_dielectric_Scaledradius ); | 802 | + TextCtrl8->Disable(); |
803 | +} | ||
846 | 804 | ||
847 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
848 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
849 | - dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), inner_conductor_Scaledradius ); | 805 | +void BUNDLEBLDR::OnTextCtrl4Text(wxCommandEvent& event) |
806 | +{ | ||
807 | + TextCtrl4->SetForegroundColour(*wxBLACK); | ||
808 | + int IsError = 0; | ||
809 | + check_is_numeric(TextCtrl4, &IsError); | ||
810 | +} | ||
850 | 811 | ||
851 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
852 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
853 | - dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), inner_dielectric_Scaledradius ); | 812 | +void BUNDLEBLDR::OnInit(wxInitDialogEvent& event) |
813 | +{ | ||
814 | + TextCtrl4->SetForegroundColour(*wxLIGHT_GREY); | ||
815 | + TextCtrl5->SetForegroundColour(*wxLIGHT_GREY); | ||
816 | +} | ||
854 | 817 | ||
855 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
856 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
857 | - dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), inner_conductor_Scaledradius ); | 818 | +void BUNDLEBLDR::OnTextCtrl5Text(wxCommandEvent& event) |
819 | +{ | ||
820 | + TextCtrl5->SetForegroundColour(*wxBLACK); | ||
821 | + int IsError = 0; | ||
822 | + check_is_numeric(TextCtrl5, &IsError); | ||
823 | +} | ||
824 | + | ||
825 | +void BUNDLEBLDR::OnSpinButton1Change(wxSpinEvent& event) | ||
826 | +{ | ||
827 | + | ||
828 | +} | ||
829 | + | ||
830 | +void BUNDLEBLDR::OnTextCtrl8TextEnter(wxCommandEvent& event) | ||
831 | +{ | ||
832 | + double maxDimension; | ||
833 | + | ||
834 | + wxString maxXY = TextCtrl8->GetValue(); | ||
835 | + | ||
836 | + maxXY.ToDouble(&maxDimension); | ||
837 | + | ||
838 | + | ||
839 | + if (MeshSelected == 1) | ||
840 | + { | ||
841 | + scale = scale + 0.1; | ||
842 | + | ||
843 | + wxString meshToView; | ||
844 | + meshToView<<ComboBox1->GetValue(); | ||
845 | + draw_mesh(Panel1,meshToView, scale); | ||
858 | } | 846 | } |
859 | 847 | ||
860 | - if (str.compare("Spacewire") == 0 ){ | 848 | + else |
849 | + { | ||
850 | + DrawBundleCsection(); | ||
851 | + } | ||
861 | 852 | ||
862 | - std::getline(cableFile, str); | ||
863 | - std::getline(cableFile, str); | 853 | +} |
864 | 854 | ||
865 | - float inner_conductor_radius, inner_conductor_separation, inner_dielectric_radius, inner_shield_radius, inner_shield_thickness, | ||
866 | - inner_shield_jacket_radius, shielded_twisted_pair_radius, outer_shield_radius, outer_shield_thickness, outer_dielectric_radius; | 855 | +void BUNDLEBLDR::OnSpinButton1ChangeUp(wxSpinEvent& event) |
856 | +{ | ||
857 | + double maxDimension; | ||
867 | 858 | ||
868 | - cableFile >> inner_conductor_radius; | ||
869 | - std::getline(cableFile, str); //Read to end of line | ||
870 | - cableFile >> inner_dielectric_radius; | ||
871 | - std::getline(cableFile, str); //Read to end of line | ||
872 | - cableFile >> inner_conductor_separation; | ||
873 | - std::getline(cableFile, str); //Read to end of line | ||
874 | - cableFile >> inner_shield_radius; | ||
875 | - std::getline(cableFile, str); //Read to end of line | ||
876 | - cableFile >> inner_shield_thickness; | ||
877 | - std::getline(cableFile, str); //Read to end of line | ||
878 | - cableFile >> inner_shield_jacket_radius; | ||
879 | - std::getline(cableFile, str); //Read to end of line | ||
880 | - cableFile >> shielded_twisted_pair_radius; | ||
881 | - std::getline(cableFile, str); //Read to end of line | ||
882 | - cableFile >> outer_shield_radius; | ||
883 | - std::getline(cableFile, str); //Read to end of line | ||
884 | - cableFile >> outer_shield_thickness; | ||
885 | - std::getline(cableFile, str); //Read to end of line | ||
886 | - cableFile >> outer_dielectric_radius; | 859 | + wxString maxXY = TextCtrl8->GetValue(); |
887 | 860 | ||
888 | - float inner_conductor_Scaledradius, | ||
889 | - inner_dielectric_Scaledradius, | ||
890 | - inner_conductor_Scaledseparation, | ||
891 | - inner_shield_Scaledradius, | ||
892 | - inner_shield_Scaledthickness, | ||
893 | - inner_shield_jacket_Scaledradius, | ||
894 | - shielded_twisted_pair_Scaledradius, | ||
895 | - outer_shield_Scaledradius, | ||
896 | - outer_shield_Scaledthickness, | ||
897 | - outer_dielectric_Scaledradius, | ||
898 | - scaledxCoord, | ||
899 | - scaledyCoord; | 861 | + maxXY.ToDouble(&maxDimension); |
900 | 862 | ||
901 | - inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
902 | - inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
903 | - inner_conductor_Scaledseparation = (inner_conductor_separation/maxDimension)*scaleFactor; | ||
904 | - inner_shield_Scaledradius = (inner_shield_radius/maxDimension)*scaleFactor; | ||
905 | - inner_shield_Scaledthickness = (inner_shield_thickness/maxDimension)*scaleFactor; | ||
906 | - inner_shield_jacket_Scaledradius = (inner_shield_jacket_radius/maxDimension)*scaleFactor; | ||
907 | - shielded_twisted_pair_Scaledradius = (shielded_twisted_pair_radius/maxDimension)*scaleFactor; | ||
908 | - outer_shield_Scaledradius = (outer_shield_radius/maxDimension)*scaleFactor; | ||
909 | - outer_shield_Scaledthickness = (outer_shield_thickness/maxDimension)*scaleFactor; | ||
910 | - outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; | ||
911 | - scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
912 | - scaledyCoord = (yCoord/maxDimension)*scaleFactor; | 863 | + maxDimension = maxDimension + 0.001; |
913 | 864 | ||
914 | - size_h = size_h + scaledxCoord; | ||
915 | - size_v = size_v + scaledyCoord; | 865 | + maxXY = ""; |
916 | 866 | ||
917 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
918 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
919 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | 867 | + maxXY << maxDimension; |
920 | 868 | ||
921 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
922 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
923 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_shield_Scaledthickness+outer_shield_Scaledradius ); | 869 | + TextCtrl8 ->SetValue(maxXY); |
924 | 870 | ||
925 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
926 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
927 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_shield_Scaledradius ); | ||
928 | 871 | ||
929 | - //TP Top | ||
930 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
931 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
932 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_jacket_Scaledradius ); | 872 | + if (MeshSelected == 1) |
873 | + { | ||
874 | + scale = scale + 0.05; | ||
933 | 875 | ||
934 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
935 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
936 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | 876 | + wxString meshToView; |
877 | + meshToView<<ComboBox1->GetValue(); | ||
878 | + draw_mesh(Panel1,meshToView, scale); | ||
879 | + } | ||
937 | 880 | ||
938 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
939 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
940 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_Scaledradius ); | 881 | + else |
882 | + { | ||
883 | + DrawBundleCsection(); | ||
884 | + } | ||
941 | 885 | ||
942 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
943 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
944 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | 886 | +} |
945 | 887 | ||
946 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
947 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
948 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | 888 | +void BUNDLEBLDR::OnSpinButton1ChangeDown(wxSpinEvent& event) |
889 | +{ | ||
890 | + double maxDimension; | ||
949 | 891 | ||
950 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
951 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
952 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | 892 | + wxString maxXY = TextCtrl8->GetValue(); |
953 | 893 | ||
954 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
955 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
956 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | 894 | + maxXY.ToDouble(&maxDimension); |
957 | 895 | ||
896 | + maxDimension = maxDimension - 0.001; | ||
958 | 897 | ||
959 | - //TP Left | ||
960 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
961 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
962 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_jacket_Scaledradius ); | 898 | + if (maxDimension <=0) maxDimension = 0; |
899 | + | ||
900 | + maxXY = ""; | ||
901 | + | ||
902 | + maxXY << maxDimension; | ||
903 | + | ||
904 | + TextCtrl8 ->SetValue(maxXY); | ||
905 | + | ||
906 | + | ||
907 | + if (MeshSelected == 1) | ||
908 | + { | ||
909 | + scale = scale - 0.05; | ||
910 | + | ||
911 | + if (scale <= 0.05) scale = 0.05; | ||
912 | + | ||
913 | + wxString meshToView; | ||
914 | + meshToView<<ComboBox1->GetValue(); | ||
915 | + draw_mesh(Panel1,meshToView, scale); | ||
916 | + } | ||
917 | + | ||
918 | + else | ||
919 | + { | ||
920 | + DrawBundleCsection(); | ||
921 | + } | ||
922 | +} | ||
963 | 923 | ||
964 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
965 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
966 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | ||
967 | 924 | ||
968 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
969 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
970 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledradius ); | ||
971 | 925 | ||
972 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
973 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
974 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
975 | 926 | ||
976 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
977 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
978 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
979 | 927 | ||
980 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
981 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
982 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
983 | 928 | ||
984 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
985 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
986 | - dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | 929 | +//===================================================================================== |
930 | +// Draw routines | ||
987 | 931 | ||
988 | - //TP Bottom | ||
989 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
990 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
991 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_jacket_Scaledradius ); | 932 | +void BUNDLEBLDR::DrawBundleCable(wxString cable, wxString x, wxString y, wxString rot) |
933 | +{ | ||
934 | + wxString separator(wxFileName::GetPathSeparator()); | ||
992 | 935 | ||
993 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
994 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
995 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | 936 | + double xCoord, yCoord, rotation, maxDimension; |
996 | 937 | ||
997 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
998 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
999 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_Scaledradius ); | 938 | + x.ToDouble(&xCoord); |
939 | + y.ToDouble(&yCoord); | ||
940 | + rot.ToDouble(&rotation); | ||
1000 | 941 | ||
1001 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1002 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1003 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | 942 | + yCoord = -1.0 * yCoord; |
1004 | 943 | ||
1005 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1006 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1007 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | 944 | + int size_h, size_v; |
945 | + Panel1->GetSize(&size_h, &size_v ); | ||
1008 | 946 | ||
1009 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1010 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1011 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | 947 | + wxClientDC dc(Panel1); |
1012 | 948 | ||
1013 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1014 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1015 | - dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | 949 | + std::stringstream stream; |
950 | + stream << PathToMOD << separator << "CABLE"<< separator << cable; | ||
1016 | 951 | ||
1017 | - //TP Right | ||
1018 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1019 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1020 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_jacket_Scaledradius ); | 952 | + cable = (stream.str().c_str()); |
1021 | 953 | ||
1022 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1023 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1024 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | 954 | + std::ifstream cableFile; |
955 | + cableFile.open (cable); | ||
1025 | 956 | ||
1026 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1027 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1028 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledradius ); | 957 | + std::string str; |
1029 | 958 | ||
1030 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1031 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1032 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | 959 | + std::getline(cableFile, str); |
960 | + std::getline(cableFile, str); | ||
961 | + std::getline(cableFile, str); | ||
1033 | 962 | ||
1034 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1035 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1036 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | 963 | + float scaleFactor = (size_h/2 * 1.0); |
1037 | 964 | ||
1038 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1039 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1040 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | 965 | + wxString maxXY = TextCtrl8->GetValue(); |
1041 | 966 | ||
1042 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1043 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1044 | - dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1045 | - } | 967 | + maxXY.ToDouble(&maxDimension); |
1046 | 968 | ||
1047 | - if (str.compare("Overshield") == 0 ){ | 969 | + if (str.compare("Cylindrical") == 0 ){ |
1048 | 970 | ||
1049 | std::getline(cableFile, str); | 971 | std::getline(cableFile, str); |
1050 | std::getline(cableFile, str); | 972 | std::getline(cableFile, str); |
1051 | 973 | ||
1052 | - float overshield_radius, overshield_thickness; | 974 | + float conductor_radius, dielectric_radius; |
1053 | 975 | ||
1054 | - cableFile >> overshield_radius; | 976 | + cableFile >> conductor_radius; |
1055 | std::getline(cableFile, str); //Read to end of line | 977 | std::getline(cableFile, str); //Read to end of line |
1056 | - cableFile >> overshield_thickness; | ||
1057 | - | 978 | + cableFile >> dielectric_radius; |
1058 | 979 | ||
1059 | - float overshield_Scaledradius, overshield_Scaledthickness, scaledxCoord, scaledyCoord; | 980 | + float dielectric_Scaledradius,conductor_Scaledradius, scaledxCoord, scaledyCoord; |
1060 | 981 | ||
1061 | - overshield_Scaledradius = (overshield_radius/maxDimension)*scaleFactor; | ||
1062 | - overshield_Scaledthickness = (overshield_thickness/maxDimension)*scaleFactor; | 982 | + dielectric_Scaledradius = (dielectric_radius/maxDimension)*scaleFactor; |
983 | + conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; | ||
1063 | scaledxCoord = (xCoord/maxDimension)*scaleFactor; | 984 | scaledxCoord = (xCoord/maxDimension)*scaleFactor; |
1064 | scaledyCoord = (yCoord/maxDimension)*scaleFactor; | 985 | scaledyCoord = (yCoord/maxDimension)*scaleFactor; |
1065 | 986 | ||
1066 | - size_h = size_h + scaledxCoord; | ||
1067 | - size_v = size_v + scaledyCoord; | ||
1068 | - | 987 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
988 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
989 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), dielectric_Scaledradius ); | ||
1069 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | 990 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1070 | dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | 991 | dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); |
1071 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), overshield_Scaledthickness+overshield_Scaledradius ); | 992 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), conductor_Scaledradius ); |
1072 | 993 | ||
1073 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1074 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1075 | - dc.DrawCircle( wxPoint(size_h/2,size_v/2), overshield_Scaledradius ); | ||
1076 | } | 994 | } |
1077 | 995 | ||
1078 | - if (str.compare("flex_cable") == 0 ){ | 996 | + if (str.compare("Coax") == 0 ){ |
1079 | 997 | ||
1080 | - float dielectric_width, dielectric_height, conductor_rows; | 998 | + std::getline(cableFile, str); |
999 | + std::getline(cableFile, str); | ||
1081 | 1000 | ||
1001 | + float inner_conductor_radius, shield_radius, outer_insulation, shield_thickness; | ||
1002 | + | ||
1003 | + cableFile >> inner_conductor_radius; | ||
1082 | std::getline(cableFile, str); //Read to end of line | 1004 | std::getline(cableFile, str); //Read to end of line |
1005 | + cableFile >> shield_radius; | ||
1083 | std::getline(cableFile, str); //Read to end of line | 1006 | std::getline(cableFile, str); //Read to end of line |
1084 | - cableFile >> dielectric_width; | ||
1085 | - std::getline(cableFile, str); //Read to end of line | ||
1086 | - cableFile >> dielectric_height; | 1007 | + cableFile >> outer_insulation; |
1087 | std::getline(cableFile, str); //Read to end of line | 1008 | std::getline(cableFile, str); //Read to end of line |
1088 | - cableFile >> conductor_rows; | ||
1089 | std::getline(cableFile, str); //Read to end of line | 1009 | std::getline(cableFile, str); //Read to end of line |
1010 | + cableFile >> shield_thickness; | ||
1090 | 1011 | ||
1091 | - float scaled_dielectric_width, scaled_dielectric_height, scaledxCoord, scaledyCoord; | 1012 | + float inner_conductor_Scaledradius, shield_Scaledradius, outer_Scaledinsulation, shield_Scaledthickness, scaledxCoord, scaledyCoord; |
1092 | 1013 | ||
1093 | - float dx1,dy1,dx2,dy2,dx3,dy3,dx4,dy4, tempx, tempy, rotation_rad; | 1014 | + outer_Scaledinsulation = (outer_insulation/maxDimension)*scaleFactor; |
1015 | + shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
1016 | + shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
1017 | + inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
1018 | + scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
1019 | + scaledyCoord = (yCoord/maxDimension)*scaleFactor; | ||
1094 | 1020 | ||
1095 | - scaled_dielectric_width = (dielectric_width/maxDimension) * scaleFactor; | ||
1096 | - scaled_dielectric_height = (dielectric_height/maxDimension) * scaleFactor; | 1021 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1022 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1023 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), outer_Scaledinsulation ); | ||
1097 | 1024 | ||
1098 | - scaledxCoord = xCoord/maxDimension * scaleFactor; | ||
1099 | - scaledyCoord = yCoord/maxDimension * scaleFactor; | 1025 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1026 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1027 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), shield_Scaledthickness+shield_Scaledradius ); | ||
1100 | 1028 | ||
1101 | - rotation_rad = rotation * (PI/180.0); | 1029 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1030 | + dc.SetBrush(wxBrush(*wxLIGHT_GREY, wxSOLID)); | ||
1031 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), shield_Scaledradius ); | ||
1102 | 1032 | ||
1103 | - float s = sin(rotation_rad); | ||
1104 | - float c = cos(rotation_rad); | 1033 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1034 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1035 | + dc.DrawCircle( wxPoint(size_h/2+scaledxCoord,size_v/2+scaledyCoord), inner_conductor_Scaledradius ); | ||
1105 | 1036 | ||
1106 | - dx1 = -scaled_dielectric_width/2; | ||
1107 | - dy1 = scaled_dielectric_height/2; | 1037 | + } |
1108 | 1038 | ||
1109 | - tempx = dx1*c - dy1*s; | ||
1110 | - tempy = dx1*s + dy1*c; | 1039 | + if (str.compare("Twinax") == 0 ){ |
1111 | 1040 | ||
1112 | - dx1 = size_h/2 + tempx + scaledxCoord; | ||
1113 | - dy1 = size_v/2 + tempy + scaledyCoord ; | 1041 | + std::getline(cableFile, str); |
1042 | + std::getline(cableFile, str); | ||
1114 | 1043 | ||
1115 | - //point 3 | ||
1116 | - dx2 = -scaled_dielectric_width/2; | ||
1117 | - dy2 = -scaled_dielectric_height/2; | 1044 | + float inner_conductor_radius, inner_dielectric_radius, conductor_separation, shield_radius, shield_thickness, outer_dielectric_radius; |
1118 | 1045 | ||
1119 | - tempx = dx2*c - dy2*s; | ||
1120 | - tempy = dx2*s + dy2*c; | 1046 | + cableFile >> inner_conductor_radius; |
1047 | + std::getline(cableFile, str); //Read to end of line | ||
1048 | + cableFile >> inner_dielectric_radius; | ||
1049 | + std::getline(cableFile, str); //Read to end of line | ||
1050 | + cableFile >> conductor_separation; | ||
1051 | + std::getline(cableFile, str); //Read to end of line | ||
1052 | + cableFile >> shield_radius; | ||
1053 | + std::getline(cableFile, str); //Read to end of line | ||
1054 | + cableFile >> shield_thickness; | ||
1055 | + std::getline(cableFile, str); //Read to end of line | ||
1056 | + cableFile >> outer_dielectric_radius; | ||
1121 | 1057 | ||
1122 | - dx2 = size_h/2 + tempx + scaledxCoord; | ||
1123 | - dy2 = size_v/2 + tempy + scaledyCoord; | 1058 | + float outer_dielectric_Scaledradius, |
1059 | + shield_Scaledthickness, | ||
1060 | + shield_Scaledradius, | ||
1061 | + inner_dielectric_Scaledradius, | ||
1062 | + inner_conductor_Scaledradius, | ||
1063 | + conductor_Scaledseparation, | ||
1064 | + scaledxCoord, | ||
1065 | + scaledyCoord; | ||
1124 | 1066 | ||
1125 | - //point 3 | ||
1126 | - dx3 = scaled_dielectric_width/2; | ||
1127 | - dy3 = -scaled_dielectric_height/2; | 1067 | + outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; |
1068 | + shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
1069 | + shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
1070 | + inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
1071 | + inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; | ||
1072 | + conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
1073 | + scaledxCoord = 2*(xCoord/maxDimension)*scaleFactor; | ||
1074 | + scaledyCoord = 2*(yCoord/maxDimension)*scaleFactor; | ||
1128 | 1075 | ||
1129 | - tempx = dx3*c - dy3*s; | ||
1130 | - tempy = dx3*s + dy3*c; | 1076 | + size_h = size_h + scaledxCoord; |
1077 | + size_v = size_v + scaledyCoord; | ||
1131 | 1078 | ||
1132 | - dx3 = size_h/2 + tempx + scaledxCoord; | ||
1133 | - dy3 = size_v/2 + tempy + scaledyCoord; | 1079 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1080 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1081 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | ||
1134 | 1082 | ||
1135 | - //point 4 | ||
1136 | - dx4 = scaled_dielectric_width/2; | ||
1137 | - dy4 = scaled_dielectric_height/2; | 1083 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1084 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1085 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledthickness+shield_Scaledradius ); | ||
1138 | 1086 | ||
1139 | - tempx = dx4*c - dy4*s; | ||
1140 | - tempy = dx4*s + dy4*c; | 1087 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1088 | + dc.SetBrush(wxBrush(*wxLIGHT_GREY, wxSOLID)); | ||
1089 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledradius ); | ||
1141 | 1090 | ||
1142 | - dx4 = size_h/2 + tempx + scaledxCoord; | ||
1143 | - dy4 = size_v/2 + tempy + scaledyCoord; | 1091 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1092 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1093 | + dc.DrawCircle( wxPoint((size_h/2)+(conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1144 | 1094 | ||
1095 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1096 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1097 | + dc.DrawCircle( wxPoint((size_h/2)-(conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1145 | 1098 | ||
1146 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | 1099 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1147 | - dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | 1100 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); |
1101 | + dc.DrawCircle( wxPoint((size_h/2)+(conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1148 | 1102 | ||
1149 | - dc.DrawLine(dx1, dy1, dx2, dy2); | ||
1150 | - dc.DrawLine(dx2, dy2, dx3, dy3); | ||
1151 | - dc.DrawLine(dx3, dy3, dx4, dy4); | ||
1152 | - dc.DrawLine(dx4, dy4, dx1, dy1); | 1103 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1104 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1105 | + dc.DrawCircle( wxPoint((size_h/2)-(conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1106 | + } | ||
1153 | 1107 | ||
1154 | - float offset_x, offset_y, width, height,separation, conductors; | 1108 | + if (str.compare("Twisted_pair") == 0 ){ |
1155 | 1109 | ||
1156 | - for (int i = 0; i < conductor_rows;i++){ | ||
1157 | - cableFile >> offset_x; | ||
1158 | - std::getline(cableFile, str); //Read to end of line | 1110 | + std::getline(cableFile, str); |
1111 | + std::getline(cableFile, str); | ||
1159 | 1112 | ||
1160 | - cableFile >> offset_y; | ||
1161 | - std::getline(cableFile, str); //Read to end of line | 1113 | + float conductor_radius, conductor_separation, dielectric_radius; |
1114 | + | ||
1115 | + cableFile >> conductor_radius; | ||
1116 | + std::getline(cableFile, str); //Read to end of line | ||
1117 | + cableFile >> conductor_separation; | ||
1118 | + std::getline(cableFile, str); //Read to end of line | ||
1119 | + cableFile >> dielectric_radius; | ||
1162 | 1120 | ||
1163 | - cableFile >> width; | ||
1164 | - std::getline(cableFile, str); //Read to end of line | 1121 | + float conductor_Scaledradius, conductor_Scaledseparation, dielectric_Scaledradius, scaledxCoord, scaledyCoord; |
1165 | 1122 | ||
1166 | - cableFile >> height; | ||
1167 | - std::getline(cableFile, str); //Read to end of line | 1123 | + conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; |
1124 | + conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
1125 | + dielectric_Scaledradius = (dielectric_radius/maxDimension)*scaleFactor; | ||
1126 | + scaledxCoord = 2*(xCoord/maxDimension)*scaleFactor; | ||
1127 | + scaledyCoord = 2*(yCoord/maxDimension)*scaleFactor; | ||
1168 | 1128 | ||
1169 | - cableFile >> separation; | ||
1170 | - std::getline(cableFile, str); //Read to end of line | 1129 | + size_h = size_h + scaledxCoord; |
1130 | + size_v = size_v + scaledyCoord; | ||
1171 | 1131 | ||
1172 | - cableFile >> conductors; | ||
1173 | - std::getline(cableFile, str); //Read to end of line | 1132 | + float wire_pos = (conductor_Scaledseparation/2)*0.707; |
1174 | 1133 | ||
1134 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1135 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1136 | + dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), conductor_Scaledradius ); | ||
1175 | 1137 | ||
1176 | - float scaled_conductor_width = width/maxDimension * scaleFactor; | ||
1177 | - float scaled_conductor_height = height/maxDimension * scaleFactor; | ||
1178 | - float scaled_conductor_separation = separation/maxDimension * scaleFactor; | ||
1179 | - float scaled_offset_x = offset_x/maxDimension * scaleFactor; | ||
1180 | - float scaled_offset_y = offset_y/maxDimension * scaleFactor; | ||
1181 | 1138 | ||
1182 | - //calculate conductor origin, top left corner: start at no.1 | ||
1183 | - float x_origin = 0 - (scaled_conductor_width * conductors/2) - scaled_conductor_separation*(conductors - 1)/2 + scaled_offset_x; | ||
1184 | - float y_origin = scaled_conductor_height/2 + scaled_offset_y; | 1139 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1140 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1141 | + dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), dielectric_Scaledradius ); | ||
1185 | 1142 | ||
1186 | - float cx1,cy1,cx2,cy2,cx3,cy3,cx4,cy4; | 1143 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1144 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1145 | + dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), conductor_Scaledradius ); | ||
1187 | 1146 | ||
1188 | - dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1189 | - dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | 1147 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1148 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1149 | + dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), dielectric_Scaledradius ); | ||
1150 | + } | ||
1190 | 1151 | ||
1191 | - for (int j = 0; j<conductors; j++){ | 1152 | + if (str.compare("Shielded_twisted_pair") == 0 ){ |
1192 | 1153 | ||
1193 | - //point 1 | ||
1194 | - cx1 = x_origin + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1195 | - cy1 = y_origin; | 1154 | + std::getline(cableFile, str); |
1155 | + std::getline(cableFile, str); | ||
1196 | 1156 | ||
1197 | - tempx = cx1*c - cy1*s; | ||
1198 | - tempy = cx1*s + cy1*c; | 1157 | + float inner_conductor_radius, inner_conductor_separation, inner_dielectric_radius, shield_radius, shield_thickness, outer_dielectric_radius; |
1199 | 1158 | ||
1200 | - cx1 = tempx + scaledxCoord + size_h/2; | ||
1201 | - cy1 = tempy + scaledyCoord + size_v/2; | 1159 | + cableFile >> inner_conductor_radius; |
1160 | + std::getline(cableFile, str); //Read to end of line | ||
1161 | + cableFile >> inner_dielectric_radius; | ||
1162 | + std::getline(cableFile, str); //Read to end of line | ||
1163 | + cableFile >> inner_conductor_separation; | ||
1164 | + std::getline(cableFile, str); //Read to end of line | ||
1165 | + cableFile >> shield_radius; | ||
1166 | + std::getline(cableFile, str); //Read to end of line | ||
1167 | + cableFile >> shield_thickness; | ||
1168 | + std::getline(cableFile, str); //Read to end of line | ||
1169 | + cableFile >> outer_dielectric_radius; | ||
1202 | 1170 | ||
1203 | - //point 3 | ||
1204 | - cx2 = x_origin + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1205 | - cy2 = y_origin - scaled_conductor_height; | 1171 | + float inner_conductor_Scaledradius, |
1172 | + inner_conductor_Scaledseparation, | ||
1173 | + inner_dielectric_Scaledradius, | ||
1174 | + shield_Scaledradius, | ||
1175 | + shield_Scaledthickness, | ||
1176 | + outer_dielectric_Scaledradius, | ||
1177 | + scaledxCoord, | ||
1178 | + scaledyCoord; | ||
1206 | 1179 | ||
1207 | - tempx = cx2*c - cy2*s; | ||
1208 | - tempy = cx2*s + cy2*c; | 1180 | + inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; |
1181 | + inner_conductor_Scaledseparation = (inner_conductor_separation/maxDimension)*scaleFactor; | ||
1182 | + inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
1183 | + shield_Scaledradius = (shield_radius/maxDimension)*scaleFactor; | ||
1184 | + shield_Scaledthickness = (shield_thickness/maxDimension)*scaleFactor; | ||
1185 | + outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; | ||
1186 | + scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
1187 | + scaledyCoord = (yCoord/maxDimension)*scaleFactor; | ||
1209 | 1188 | ||
1210 | - cx2 = tempx + scaledxCoord + size_h/2; | ||
1211 | - cy2 = tempy + scaledyCoord + size_v/2; | 1189 | + size_h = size_h + scaledxCoord; |
1190 | + size_v = size_v + scaledyCoord; | ||
1212 | 1191 | ||
1213 | - //point 3 | ||
1214 | - cx3 = x_origin + scaled_conductor_width + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1215 | - cy3 = y_origin - scaled_conductor_height; | 1192 | + float wire_pos = (inner_conductor_Scaledseparation/2)*0.707; |
1216 | 1193 | ||
1217 | - tempx = cx3*c - cy3*s; | ||
1218 | - tempy = cx3*s + cy3*c; | 1194 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1195 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1196 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | ||
1219 | 1197 | ||
1220 | - cx3 = tempx + scaledxCoord + size_h/2; | ||
1221 | - cy3 = tempy + scaledyCoord + size_v/2; | 1198 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1199 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1200 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledthickness+shield_Scaledradius ); | ||
1222 | 1201 | ||
1223 | - //point 4 | ||
1224 | - cx4 = x_origin + scaled_conductor_width + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1225 | - cy4 = y_origin; | 1202 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1203 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1204 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), shield_Scaledradius ); | ||
1226 | 1205 | ||
1227 | - tempx = cx4*c - cy4*s; | ||
1228 | - tempy = cx4*s + cy4*c; | 1206 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1207 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1208 | + dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), inner_dielectric_Scaledradius ); | ||
1229 | 1209 | ||
1230 | - cx4 = tempx + scaledxCoord + size_h/2; | ||
1231 | - cy4 = tempy + scaledyCoord + size_v/2; | 1210 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1211 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1212 | + dc.DrawCircle( wxPoint(size_h/2-wire_pos,size_v/2-wire_pos), inner_conductor_Scaledradius ); | ||
1232 | 1213 | ||
1233 | - dc.DrawLine(cx1, cy1, cx2, cy2); | ||
1234 | - dc.DrawLine(cx2, cy2, cx3, cy3); | ||
1235 | - dc.DrawLine(cx3, cy3, cx4, cy4); | ||
1236 | - dc.DrawLine(cx4, cy4, cx1, cy1); | ||
1237 | - } | ||
1238 | - } | 1214 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1215 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1216 | + dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), inner_dielectric_Scaledradius ); | ||
1239 | 1217 | ||
1218 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1219 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1220 | + dc.DrawCircle( wxPoint(size_h/2+wire_pos,size_v/2+wire_pos), inner_conductor_Scaledradius ); | ||
1240 | } | 1221 | } |
1241 | 1222 | ||
1242 | - if (str.compare("Dconnector") == 0 ){ | 1223 | + if (str.compare("Spacewire") == 0 ){ |
1243 | 1224 | ||
1244 | - float conductors, conductor_radius, conductor_pitch, conductor_separation, shell_offset; | 1225 | + std::getline(cableFile, str); |
1226 | + std::getline(cableFile, str); | ||
1245 | 1227 | ||
1246 | - cableFile >> conductors; | 1228 | + float inner_conductor_radius, inner_conductor_separation, inner_dielectric_radius, inner_shield_radius, inner_shield_thickness, |
1229 | + inner_shield_jacket_radius, shielded_twisted_pair_radius, outer_shield_radius, outer_shield_thickness, outer_dielectric_radius; | ||
1230 | + | ||
1231 | + cableFile >> inner_conductor_radius; | ||
1232 | + std::getline(cableFile, str); //Read to end of line | ||
1233 | + cableFile >> inner_dielectric_radius; | ||
1247 | std::getline(cableFile, str); //Read to end of line | 1234 | std::getline(cableFile, str); //Read to end of line |
1235 | + cableFile >> inner_conductor_separation; | ||
1248 | std::getline(cableFile, str); //Read to end of line | 1236 | std::getline(cableFile, str); //Read to end of line |
1249 | - cableFile >> conductor_radius; | 1237 | + cableFile >> inner_shield_radius; |
1250 | std::getline(cableFile, str); //Read to end of line | 1238 | std::getline(cableFile, str); //Read to end of line |
1251 | - cableFile >> conductor_pitch; | 1239 | + cableFile >> inner_shield_thickness; |
1252 | std::getline(cableFile, str); //Read to end of line | 1240 | std::getline(cableFile, str); //Read to end of line |
1253 | - cableFile >> conductor_separation; | 1241 | + cableFile >> inner_shield_jacket_radius; |
1254 | std::getline(cableFile, str); //Read to end of line | 1242 | std::getline(cableFile, str); //Read to end of line |
1255 | - cableFile >> shell_offset; | ||
1256 | - | ||
1257 | -// float totalWidth = (conductors/2 * conductor_separation) + (2 * shell_offset) + (2 * conductor_radius); | 1243 | + cableFile >> shielded_twisted_pair_radius; |
1244 | + std::getline(cableFile, str); //Read to end of line | ||
1245 | + cableFile >> outer_shield_radius; | ||
1246 | + std::getline(cableFile, str); //Read to end of line | ||
1247 | + cableFile >> outer_shield_thickness; | ||
1248 | + std::getline(cableFile, str); //Read to end of line | ||
1249 | + cableFile >> outer_dielectric_radius; | ||
1258 | 1250 | ||
1259 | - float conductor_Scaledradius, | ||
1260 | - conductor_Scaledpitch, | ||
1261 | - conductor_Scaledseparation, | 1251 | + float inner_conductor_Scaledradius, |
1252 | + inner_dielectric_Scaledradius, | ||
1253 | + inner_conductor_Scaledseparation, | ||
1254 | + inner_shield_Scaledradius, | ||
1255 | + inner_shield_Scaledthickness, | ||
1256 | + inner_shield_jacket_Scaledradius, | ||
1257 | + shielded_twisted_pair_Scaledradius, | ||
1258 | + outer_shield_Scaledradius, | ||
1259 | + outer_shield_Scaledthickness, | ||
1260 | + outer_dielectric_Scaledradius, | ||
1262 | scaledxCoord, | 1261 | scaledxCoord, |
1263 | scaledyCoord; | 1262 | scaledyCoord; |
1264 | 1263 | ||
1265 | - | ||
1266 | - float x_origin, y_origin; | ||
1267 | - | ||
1268 | - scaleFactor = (size_h * 0.25); | ||
1269 | - | ||
1270 | - conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; | ||
1271 | - conductor_Scaledpitch = (conductor_pitch/maxDimension)*scaleFactor; | ||
1272 | - conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
1273 | - | 1264 | + inner_conductor_Scaledradius = (inner_conductor_radius/maxDimension)*scaleFactor; |
1265 | + inner_dielectric_Scaledradius = (inner_dielectric_radius/maxDimension)*scaleFactor; | ||
1266 | + inner_conductor_Scaledseparation = (inner_conductor_separation/maxDimension)*scaleFactor; | ||
1267 | + inner_shield_Scaledradius = (inner_shield_radius/maxDimension)*scaleFactor; | ||
1268 | + inner_shield_Scaledthickness = (inner_shield_thickness/maxDimension)*scaleFactor; | ||
1269 | + inner_shield_jacket_Scaledradius = (inner_shield_jacket_radius/maxDimension)*scaleFactor; | ||
1270 | + shielded_twisted_pair_Scaledradius = (shielded_twisted_pair_radius/maxDimension)*scaleFactor; | ||
1271 | + outer_shield_Scaledradius = (outer_shield_radius/maxDimension)*scaleFactor; | ||
1272 | + outer_shield_Scaledthickness = (outer_shield_thickness/maxDimension)*scaleFactor; | ||
1273 | + outer_dielectric_Scaledradius = (outer_dielectric_radius/maxDimension)*scaleFactor; | ||
1274 | scaledxCoord = (xCoord/maxDimension)*scaleFactor; | 1274 | scaledxCoord = (xCoord/maxDimension)*scaleFactor; |
1275 | scaledyCoord = (yCoord/maxDimension)*scaleFactor; | 1275 | scaledyCoord = (yCoord/maxDimension)*scaleFactor; |
1276 | 1276 | ||
@@ -1278,404 +1278,416 @@ void BUNDLEBLDR::DrawBundleCable(wxString cable, wxString x, wxString y, wxStrin | @@ -1278,404 +1278,416 @@ void BUNDLEBLDR::DrawBundleCable(wxString cable, wxString x, wxString y, wxStrin | ||
1278 | size_v = size_v + scaledyCoord; | 1278 | size_v = size_v + scaledyCoord; |
1279 | 1279 | ||
1280 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | 1280 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1281 | - dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1282 | - | ||
1283 | - // Upper conductors & Shell | ||
1284 | - int upper_conductors = conductors / 2; | ||
1285 | - x_origin = (size_h/2) - (upper_conductors/2 * conductor_Scaledseparation); | ||
1286 | - y_origin = (size_v/2) - (conductor_Scaledpitch); | 1281 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); |
1282 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_dielectric_Scaledradius ); | ||
1287 | 1283 | ||
1288 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | 1284 | dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1289 | - dc.SetBrush(wxBrush(*wxBLACK)); | ||
1290 | - | ||
1291 | - for(int i=0;i<upper_conductors;i++){ | ||
1292 | - | ||
1293 | - dc.DrawCircle( wxPoint(x_origin,y_origin), conductor_Scaledradius ); | ||
1294 | - x_origin = x_origin + (conductor_Scaledpitch); | ||
1295 | - } | ||
1296 | - // Lower conductors | ||
1297 | - int lower_conductors = (conductors / 2) - 1; | ||
1298 | - x_origin = (size_h/2) - (lower_conductors/2 * conductor_Scaledseparation) + conductor_Scaledseparation/2; | ||
1299 | - y_origin = (size_v/2) + (conductor_Scaledpitch); // This isn't correct!! | ||
1300 | - | ||
1301 | - for(int i=0;i<lower_conductors;i++){ | ||
1302 | - | ||
1303 | - dc.DrawCircle( wxPoint(x_origin,y_origin), conductor_Scaledradius ); | ||
1304 | - x_origin = x_origin + (conductor_Scaledpitch); | ||
1305 | - } | ||
1306 | - } | ||
1307 | - | ||
1308 | - if(CheckBox1->GetValue()) | ||
1309 | - { | ||
1310 | - // Ground Plane | ||
1311 | - int size_hl, size_vl; | ||
1312 | - Panel1->GetSize(&size_hl, &size_vl ); | ||
1313 | - dc.SetPen( wxPen( (*wxBLACK) ,5 , wxSOLID) ); | ||
1314 | - dc.DrawLine( 0, size_vl/2, size_hl,size_vl/2 ); | ||
1315 | - } | 1285 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); |
1286 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_shield_Scaledthickness+outer_shield_Scaledradius ); | ||
1316 | 1287 | ||
1317 | -} | 1288 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1289 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1290 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), outer_shield_Scaledradius ); | ||
1318 | 1291 | ||
1319 | -void BUNDLEBLDR::OnButton1Click(wxCommandEvent& event) | ||
1320 | -{ | ||
1321 | - int IsError = 0; | 1292 | + //TP Top |
1293 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1294 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1295 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_jacket_Scaledradius ); | ||
1322 | 1296 | ||
1323 | - wxString fileName = TextCtrl1->GetValue(); | 1297 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1298 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1299 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | ||
1324 | 1300 | ||
1325 | - TextCtrl1->SetBackgroundColour(wxColor(255,255,255)); | 1301 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1302 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1303 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius)), inner_shield_Scaledradius ); | ||
1326 | 1304 | ||
1327 | - if (fileName == "") | ||
1328 | - { | ||
1329 | - wxMessageBox("Please Specify a Cable Name" , _("Missing Cable Name")); | ||
1330 | - return; | ||
1331 | - } | 1305 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1306 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1307 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | ||
1332 | 1308 | ||
1333 | - WriteBundleFile(fileName); | 1309 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1310 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1311 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | ||
1334 | 1312 | ||
1335 | - Button1->Disable(); | ||
1336 | -} | 1313 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1314 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1315 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | ||
1337 | 1316 | ||
1338 | -void BUNDLEBLDR::WriteBundleFile(wxString fileName) | ||
1339 | -{ | ||
1340 | - ofstream cableFile; | ||
1341 | - wxString separator(wxFileName::GetPathSeparator()); | 1317 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1318 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1319 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | ||
1342 | 1320 | ||
1343 | - wxString fullFileName = PathToMOD + separator + "BUNDLE" + separator + fileName + ".bundle_spec"; | ||
1344 | 1321 | ||
1345 | - cableFile.open (fullFileName); | 1322 | + //TP Left |
1323 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1324 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1325 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_jacket_Scaledradius ); | ||
1346 | 1326 | ||
1347 | - if (cableFile.is_open()) | ||
1348 | - { | ||
1349 | - cableFile << "#MOD_cable_lib_dir" << "\n"; | 1327 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1328 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1329 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | ||
1350 | 1330 | ||
1351 | - cableFile <<".." << separator << MODname << separator << "CABLE" << separator <<"\n"; | 1331 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1332 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1333 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledradius ); | ||
1352 | 1334 | ||
1353 | - cableFile << "#MOD_cable_lib_dir" << "\n"; | 1335 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1336 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1337 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1354 | 1338 | ||
1355 | - cableFile <<".." << separator << MODname << separator << "BUNDLE" << separator <<"\n"; | 1339 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1340 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1341 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1356 | 1342 | ||
1357 | - cableFile << ListBox1->GetCount() << " #Number of cables in bundle, cable list follows\n"; | 1343 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1344 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1345 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1358 | 1346 | ||
1359 | - bundle_list = bundle_root; | 1347 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1348 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1349 | + dc.DrawCircle( wxPoint((size_h/2-shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1360 | 1350 | ||
1361 | - wxString x, y, rot, cable; | 1351 | + //TP Bottom |
1352 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1353 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1354 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_jacket_Scaledradius ); | ||
1362 | 1355 | ||
1363 | - while ( bundle_list->next != NULL ) | ||
1364 | - { | 1356 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1357 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1358 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | ||
1365 | 1359 | ||
1366 | - cable = bundle_list->CableType; | 1360 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1361 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1362 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius)), inner_shield_Scaledradius ); | ||
1367 | 1363 | ||
1368 | - //Remove file extension | ||
1369 | - size_t lastindex = cable.find_last_of("."); | ||
1370 | - wxString cable_name = cable.substr(0, lastindex); //at the moment here requires full path to file | 1364 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1365 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1366 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | ||
1371 | 1367 | ||
1372 | - x = bundle_list->x_offset; | ||
1373 | - y = bundle_list->y_offset; | ||
1374 | - rot = bundle_list->rot_theta; | 1368 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1369 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1370 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_dielectric_Scaledradius ); | ||
1375 | 1371 | ||
1376 | - cableFile << cable_name <<"\n"; | ||
1377 | - cableFile << x << "\t" << y << "\t" << rot << "\n"; | 1372 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1373 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1374 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | ||
1378 | 1375 | ||
1379 | - bundle_list = bundle_list->next; | ||
1380 | - } | 1376 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1377 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1378 | + dc.DrawCircle( wxPoint(size_h/2,(size_v/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2)), inner_conductor_Scaledradius ); | ||
1381 | 1379 | ||
1382 | - if (CheckBox1->GetValue()) | ||
1383 | - { | ||
1384 | - cableFile << "ground_plane\n"; | ||
1385 | - } | ||
1386 | - else | ||
1387 | - { | ||
1388 | - cableFile <<"no_ground_plane\n"; | ||
1389 | - } | 1380 | + //TP Right |
1381 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1382 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1383 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_jacket_Scaledradius ); | ||
1390 | 1384 | ||
1385 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1386 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1387 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledthickness + inner_shield_Scaledradius ); | ||
1391 | 1388 | ||
1392 | - if (CheckBox4->GetValue()) | ||
1393 | - { | ||
1394 | - cableFile << TextCtrl2->GetValue() <<"\t # order for filter fitting\n"; | ||
1395 | - if (RadioButton1) | ||
1396 | - { | ||
1397 | - cableFile << "lin # frequency range type for filter fitting type (lin or dB)"; | ||
1398 | - } | ||
1399 | - else | ||
1400 | - { | ||
1401 | - cableFile << "log # frequency range type for filter fitting type (lin or dB)"; | ||
1402 | - } | ||
1403 | - cableFile << TextCtrl3->GetValue() <<" "<< TextCtrl6->GetValue() <<" "<< TextCtrl7->GetValue() <<"\t # fmin fmax number_of_frequencies for filter fitting"; | 1389 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1390 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1391 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius),size_v/2), inner_shield_Scaledradius ); | ||
1404 | 1392 | ||
1405 | - } | 1393 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1394 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1395 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1406 | 1396 | ||
1407 | - if (CheckBox2->GetValue()) | ||
1408 | - { | ||
1409 | - cableFile << "use_laplace\n"; | ||
1410 | - } | ||
1411 | - else | ||
1412 | - { | ||
1413 | - cableFile << "no_laplace\n"; | ||
1414 | - } | 1397 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1398 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1399 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_dielectric_Scaledradius ); | ||
1415 | 1400 | ||
1416 | - if (CheckBox3->GetValue()) | ||
1417 | - { | ||
1418 | - cableFile << "Laplace_boundary_constant\n"; | ||
1419 | - cableFile << TextCtrl4->GetValue() <<"\n"; | ||
1420 | - cableFile << "Laplace_surface_mesh_constant\n"; | ||
1421 | - cableFile << TextCtrl5->GetValue() <<"\n"; | ||
1422 | - cableFile << "max_mesh_edge_length\n"; | ||
1423 | - cableFile << TextCtrl9->GetValue() <<"\n"; | 1401 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1402 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1403 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius-inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1424 | 1404 | ||
1425 | - if (CheckBox1->GetValue()) | ||
1426 | - { | ||
1427 | - cableFile << "gp_edge_length\n"; | ||
1428 | - cableFile << TextCtrl10->GetValue() <<"\n"; | ||
1429 | - } | ||
1430 | - //CheckBox3 ->SetValue(false); | ||
1431 | - } | 1405 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1406 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1407 | + dc.DrawCircle( wxPoint((size_h/2+shielded_twisted_pair_Scaledradius+inner_conductor_Scaledseparation/2),size_v/2), inner_conductor_Scaledradius ); | ||
1432 | } | 1408 | } |
1433 | - cableFile.close(); | ||
1434 | 1409 | ||
1435 | -} | 1410 | + if (str.compare("Overshield") == 0 ){ |
1436 | 1411 | ||
1412 | + std::getline(cableFile, str); | ||
1413 | + std::getline(cableFile, str); | ||
1437 | 1414 | ||
1438 | -void BUNDLEBLDR::OnButton2Click(wxCommandEvent& event) | ||
1439 | -{ | ||
1440 | - //clean up directory | ||
1441 | - clean_temp_files(); | 1415 | + float overshield_radius, overshield_thickness; |
1442 | 1416 | ||
1443 | - wxString fileName = TextCtrl1->GetValue(); | 1417 | + cableFile >> overshield_radius; |
1418 | + std::getline(cableFile, str); //Read to end of line | ||
1419 | + cableFile >> overshield_thickness; | ||
1444 | 1420 | ||
1445 | - wxString command_line; | ||
1446 | 1421 | ||
1447 | - wxString separator(wxFileName::GetPathSeparator()); | 1422 | + float overshield_Scaledradius, overshield_Scaledthickness, scaledxCoord, scaledyCoord; |
1448 | 1423 | ||
1449 | - WriteBundleFile (TextCtrl1->GetValue()); | 1424 | + overshield_Scaledradius = (overshield_radius/maxDimension)*scaleFactor; |
1425 | + overshield_Scaledthickness = (overshield_thickness/maxDimension)*scaleFactor; | ||
1426 | + scaledxCoord = (xCoord/maxDimension)*scaleFactor; | ||
1427 | + scaledyCoord = (yCoord/maxDimension)*scaleFactor; | ||
1450 | 1428 | ||
1451 | - std::stringstream stream; | ||
1452 | - stream <<"." + separator | ||
1453 | - << "cable_bundle_model_builder" | ||
1454 | - << " " | ||
1455 | - << ".." + separator + MODname + separator + "BUNDLE" + separator | ||
1456 | - << fileName ; | 1429 | + size_h = size_h + scaledxCoord; |
1430 | + size_v = size_v + scaledyCoord; | ||
1457 | 1431 | ||
1458 | - command_line << stream.str().c_str(); | 1432 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1433 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1434 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), overshield_Scaledthickness+overshield_Scaledradius ); | ||
1459 | 1435 | ||
1460 | - wxExecute (command_line,wxEXEC_SYNC); | 1436 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1437 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1438 | + dc.DrawCircle( wxPoint(size_h/2,size_v/2), overshield_Scaledradius ); | ||
1439 | + } | ||
1461 | 1440 | ||
1462 | - // Display Run Status | ||
1463 | - RUN_STATUS *run_status_bundle = new RUN_STATUS(this); | ||
1464 | - run_status_bundle->ShowModal(); | 1441 | + if (str.compare("flex_cable") == 0 ){ |
1465 | 1442 | ||
1466 | - Button1->Enable(); | 1443 | + float dielectric_width, dielectric_height, conductor_rows; |
1467 | 1444 | ||
1468 | - if (CheckBox2->GetValue()) | ||
1469 | - { | ||
1470 | - wxString pattern(("*.msh.vtk")); | ||
1471 | - wxString file; | 1445 | + std::getline(cableFile, str); //Read to end of line |
1446 | + std::getline(cableFile, str); //Read to end of line | ||
1447 | + cableFile >> dielectric_width; | ||
1448 | + std::getline(cableFile, str); //Read to end of line | ||
1449 | + cableFile >> dielectric_height; | ||
1450 | + std::getline(cableFile, str); //Read to end of line | ||
1451 | + cableFile >> conductor_rows; | ||
1452 | + std::getline(cableFile, str); //Read to end of line | ||
1472 | 1453 | ||
1473 | - ComboBox1->Clear(); | 1454 | + float scaled_dielectric_width, scaled_dielectric_height, scaledxCoord, scaledyCoord; |
1474 | 1455 | ||
1475 | - file = wxFindFirstFile(pattern); | 1456 | + float dx1,dy1,dx2,dy2,dx3,dy3,dx4,dy4, tempx, tempy, rotation_rad; |
1476 | 1457 | ||
1477 | - while ( !file.empty()) | ||
1478 | - { | ||
1479 | - wxString meshfile = file; | 1458 | + scaled_dielectric_width = (dielectric_width/maxDimension) * scaleFactor; |
1459 | + scaled_dielectric_height = (dielectric_height/maxDimension) * scaleFactor; | ||
1480 | 1460 | ||
1481 | - size_t extindex = meshfile.find_last_of ("."); | 1461 | + scaledxCoord = xCoord/maxDimension * scaleFactor; |
1462 | + scaledyCoord = yCoord/maxDimension * scaleFactor; | ||
1482 | 1463 | ||
1483 | - meshfile = meshfile.substr(0, extindex); | 1464 | + rotation_rad = rotation * (PI/180.0); |
1484 | 1465 | ||
1485 | - extindex = meshfile.find_last_of ("."); | ||
1486 | - int size_h, size_v; | ||
1487 | - Panel1->GetSize(&size_h, &size_v ); | ||
1488 | - meshfile = meshfile.substr(0, extindex); | 1466 | + float s = sin(rotation_rad); |
1467 | + float c = cos(rotation_rad); | ||
1489 | 1468 | ||
1490 | - meshfile = meshfile.substr(2,meshfile.length()); | 1469 | + dx1 = -scaled_dielectric_width/2; |
1470 | + dy1 = scaled_dielectric_height/2; | ||
1491 | 1471 | ||
1492 | - ComboBox1->Append(meshfile); | 1472 | + tempx = dx1*c - dy1*s; |
1473 | + tempy = dx1*s + dy1*c; | ||
1493 | 1474 | ||
1494 | - file = wxFindNextFile(); | ||
1495 | - } | ||
1496 | - CheckBox3->Enable(); | ||
1497 | - } | ||
1498 | -} | 1475 | + dx1 = size_h/2 + tempx + scaledxCoord; |
1476 | + dy1 = size_v/2 + tempy + scaledyCoord ; | ||
1499 | 1477 | ||
1500 | -void BUNDLEBLDR::OnButton3Click(wxCommandEvent& event) | ||
1501 | -{ | ||
1502 | - //PopulateTheDirectoryTree(PathToMOD); | ||
1503 | - //clean up directory | ||
1504 | - clean_temp_files(); | ||
1505 | - Close(); | ||
1506 | -} | 1478 | + //point 3 |
1479 | + dx2 = -scaled_dielectric_width/2; | ||
1480 | + dy2 = -scaled_dielectric_height/2; | ||
1507 | 1481 | ||
1508 | -void BUNDLEBLDR::OnCheckBox1Click(wxCommandEvent& event) | ||
1509 | -{ | ||
1510 | - int size_h, size_v; | ||
1511 | - Panel1->GetSize(&size_h, &size_v ); | 1482 | + tempx = dx2*c - dy2*s; |
1483 | + tempy = dx2*s + dy2*c; | ||
1512 | 1484 | ||
1513 | - wxClientDC dc(Panel1); | 1485 | + dx2 = size_h/2 + tempx + scaledxCoord; |
1486 | + dy2 = size_v/2 + tempy + scaledyCoord; | ||
1514 | 1487 | ||
1515 | - // Ground Plane | ||
1516 | - dc.SetPen( wxPen( (*wxBLACK) ,5 , wxSOLID) ); | ||
1517 | - dc.DrawLine( 0, size_v/2, size_h,size_v/2 ); | 1488 | + //point 3 |
1489 | + dx3 = scaled_dielectric_width/2; | ||
1490 | + dy3 = -scaled_dielectric_height/2; | ||
1518 | 1491 | ||
1519 | - TextCtrl10->Enable(); | 1492 | + tempx = dx3*c - dy3*s; |
1493 | + tempy = dx3*s + dy3*c; | ||
1520 | 1494 | ||
1521 | -} | 1495 | + dx3 = size_h/2 + tempx + scaledxCoord; |
1496 | + dy3 = size_v/2 + tempy + scaledyCoord; | ||
1522 | 1497 | ||
1523 | -void BUNDLEBLDR::OnCheckBox3Click(wxCommandEvent& event) | ||
1524 | -{ | ||
1525 | - if (CheckBox3->GetValue()) | ||
1526 | - { | ||
1527 | - TextCtrl4->Enable(); | ||
1528 | - TextCtrl5->Enable(); | ||
1529 | - TextCtrl9->Enable(); | ||
1530 | - } | 1498 | + //point 4 |
1499 | + dx4 = scaled_dielectric_width/2; | ||
1500 | + dy4 = scaled_dielectric_height/2; | ||
1531 | 1501 | ||
1532 | - //WriteBundleFile (TextCtrl1->GetValue()); | ||
1533 | -} | 1502 | + tempx = dx4*c - dy4*s; |
1503 | + tempy = dx4*s + dy4*c; | ||
1534 | 1504 | ||
1535 | -void BUNDLEBLDR::OnComboBox1Selected(wxCommandEvent& event) | ||
1536 | -{ | ||
1537 | - wxString meshToView; | ||
1538 | - meshToView<<ComboBox1->GetValue(); | ||
1539 | - draw_mesh(Panel1,meshToView, scale); | 1505 | + dx4 = size_h/2 + tempx + scaledxCoord; |
1506 | + dy4 = size_v/2 + tempy + scaledyCoord; | ||
1540 | 1507 | ||
1541 | - MeshSelected = 1; | ||
1542 | 1508 | ||
1543 | - TextCtrl8->Disable(); | ||
1544 | -} | 1509 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1510 | + dc.SetBrush(wxBrush(*wxBLACK, wxBDIAGONAL_HATCH)); | ||
1545 | 1511 | ||
1546 | -void BUNDLEBLDR::OnTextCtrl4Text(wxCommandEvent& event) | ||
1547 | -{ | ||
1548 | - TextCtrl4->SetForegroundColour(*wxBLACK); | ||
1549 | - int IsError = 0; | ||
1550 | - check_is_numeric(TextCtrl4, &IsError); | ||
1551 | -} | 1512 | + dc.DrawLine(dx1, dy1, dx2, dy2); |
1513 | + dc.DrawLine(dx2, dy2, dx3, dy3); | ||
1514 | + dc.DrawLine(dx3, dy3, dx4, dy4); | ||
1515 | + dc.DrawLine(dx4, dy4, dx1, dy1); | ||
1552 | 1516 | ||
1553 | -void BUNDLEBLDR::OnInit(wxInitDialogEvent& event) | ||
1554 | -{ | ||
1555 | - TextCtrl4->SetForegroundColour(*wxLIGHT_GREY); | ||
1556 | - TextCtrl5->SetForegroundColour(*wxLIGHT_GREY); | ||
1557 | -} | 1517 | + float offset_x, offset_y, width, height,separation, conductors; |
1558 | 1518 | ||
1559 | -void BUNDLEBLDR::OnTextCtrl5Text(wxCommandEvent& event) | ||
1560 | -{ | ||
1561 | - TextCtrl5->SetForegroundColour(*wxBLACK); | ||
1562 | - int IsError = 0; | ||
1563 | - check_is_numeric(TextCtrl5, &IsError); | ||
1564 | -} | 1519 | + for (int i = 0; i < conductor_rows;i++){ |
1520 | + cableFile >> offset_x; | ||
1521 | + std::getline(cableFile, str); //Read to end of line | ||
1565 | 1522 | ||
1566 | -void BUNDLEBLDR::OnSpinButton1Change(wxSpinEvent& event) | ||
1567 | -{ | 1523 | + cableFile >> offset_y; |
1524 | + std::getline(cableFile, str); //Read to end of line | ||
1568 | 1525 | ||
1569 | - double maxDimension; | 1526 | + cableFile >> width; |
1527 | + std::getline(cableFile, str); //Read to end of line | ||
1570 | 1528 | ||
1571 | - wxString maxXY = TextCtrl8->GetValue(); | 1529 | + cableFile >> height; |
1530 | + std::getline(cableFile, str); //Read to end of line | ||
1572 | 1531 | ||
1573 | - maxXY.ToDouble(&maxDimension); | 1532 | + cableFile >> separation; |
1533 | + std::getline(cableFile, str); //Read to end of line | ||
1574 | 1534 | ||
1575 | - if (MeshSelected == 0) | ||
1576 | - { | ||
1577 | - FormatPanel(maxDimension); | ||
1578 | - DrawBundleCsection(); | ||
1579 | - } | 1535 | + cableFile >> conductors; |
1536 | + std::getline(cableFile, str); //Read to end of line | ||
1580 | 1537 | ||
1581 | -} | ||
1582 | 1538 | ||
1583 | -void BUNDLEBLDR::OnTextCtrl8TextEnter(wxCommandEvent& event) | ||
1584 | -{ | ||
1585 | - double maxDimension; | 1539 | + float scaled_conductor_width = width/maxDimension * scaleFactor; |
1540 | + float scaled_conductor_height = height/maxDimension * scaleFactor; | ||
1541 | + float scaled_conductor_separation = separation/maxDimension * scaleFactor; | ||
1542 | + float scaled_offset_x = offset_x/maxDimension * scaleFactor; | ||
1543 | + float scaled_offset_y = offset_y/maxDimension * scaleFactor; | ||
1586 | 1544 | ||
1587 | - wxString maxXY = TextCtrl8->GetValue(); | 1545 | + //calculate conductor origin, top left corner: start at no.1 |
1546 | + float x_origin = 0 - (scaled_conductor_width * conductors/2) - scaled_conductor_separation*(conductors - 1)/2 + scaled_offset_x; | ||
1547 | + float y_origin = scaled_conductor_height/2 + scaled_offset_y; | ||
1588 | 1548 | ||
1589 | - maxXY.ToDouble(&maxDimension); | 1549 | + float cx1,cy1,cx2,cy2,cx3,cy3,cx4,cy4; |
1590 | 1550 | ||
1591 | - FormatPanel(maxDimension); | 1551 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1552 | + dc.SetBrush(wxBrush(*wxWHITE, wxSOLID)); | ||
1592 | 1553 | ||
1554 | + for (int j = 0; j<conductors; j++){ | ||
1593 | 1555 | ||
1594 | - if (MeshSelected == 1) | ||
1595 | - { | ||
1596 | - scale = scale + 0.1; | 1556 | + //point 1 |
1557 | + cx1 = x_origin + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1558 | + cy1 = y_origin; | ||
1597 | 1559 | ||
1598 | - wxString meshToView; | ||
1599 | - meshToView<<ComboBox1->GetValue(); | ||
1600 | - draw_mesh(Panel1,meshToView, scale); | ||
1601 | - } | 1560 | + tempx = cx1*c - cy1*s; |
1561 | + tempy = cx1*s + cy1*c; | ||
1602 | 1562 | ||
1603 | - else | ||
1604 | - { | ||
1605 | - DrawBundleCsection(); | ||
1606 | - } | 1563 | + cx1 = tempx + scaledxCoord + size_h/2; |
1564 | + cy1 = tempy + scaledyCoord + size_v/2; | ||
1607 | 1565 | ||
1608 | -} | 1566 | + //point 3 |
1567 | + cx2 = x_origin + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1568 | + cy2 = y_origin - scaled_conductor_height; | ||
1609 | 1569 | ||
1610 | -void BUNDLEBLDR::OnSpinButton1ChangeUp(wxSpinEvent& event) | ||
1611 | -{ | ||
1612 | - double maxDimension; | 1570 | + tempx = cx2*c - cy2*s; |
1571 | + tempy = cx2*s + cy2*c; | ||
1613 | 1572 | ||
1614 | - wxString maxXY = TextCtrl8->GetValue(); | 1573 | + cx2 = tempx + scaledxCoord + size_h/2; |
1574 | + cy2 = tempy + scaledyCoord + size_v/2; | ||
1615 | 1575 | ||
1616 | - maxXY.ToDouble(&maxDimension); | 1576 | + //point 3 |
1577 | + cx3 = x_origin + scaled_conductor_width + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1578 | + cy3 = y_origin - scaled_conductor_height; | ||
1617 | 1579 | ||
1618 | - maxDimension = maxDimension + 0.001; | 1580 | + tempx = cx3*c - cy3*s; |
1581 | + tempy = cx3*s + cy3*c; | ||
1619 | 1582 | ||
1620 | - maxXY = ""; | 1583 | + cx3 = tempx + scaledxCoord + size_h/2; |
1584 | + cy3 = tempy + scaledyCoord + size_v/2; | ||
1621 | 1585 | ||
1622 | - maxXY << maxDimension; | 1586 | + //point 4 |
1587 | + cx4 = x_origin + scaled_conductor_width + j * (scaled_conductor_width + scaled_conductor_separation); | ||
1588 | + cy4 = y_origin; | ||
1623 | 1589 | ||
1624 | - TextCtrl8 ->SetValue(maxXY); | 1590 | + tempx = cx4*c - cy4*s; |
1591 | + tempy = cx4*s + cy4*c; | ||
1625 | 1592 | ||
1626 | - FormatPanel(maxDimension); | 1593 | + cx4 = tempx + scaledxCoord + size_h/2; |
1594 | + cy4 = tempy + scaledyCoord + size_v/2; | ||
1627 | 1595 | ||
1628 | - if (MeshSelected == 1) | ||
1629 | - { | ||
1630 | - scale = scale + 0.05; | 1596 | + dc.DrawLine(cx1, cy1, cx2, cy2); |
1597 | + dc.DrawLine(cx2, cy2, cx3, cy3); | ||
1598 | + dc.DrawLine(cx3, cy3, cx4, cy4); | ||
1599 | + dc.DrawLine(cx4, cy4, cx1, cy1); | ||
1600 | + } | ||
1601 | + } | ||
1631 | 1602 | ||
1632 | - wxString meshToView; | ||
1633 | - meshToView<<ComboBox1->GetValue(); | ||
1634 | - draw_mesh(Panel1,meshToView, scale); | ||
1635 | } | 1603 | } |
1636 | 1604 | ||
1637 | - else | ||
1638 | - { | ||
1639 | - DrawBundleCsection(); | ||
1640 | - } | 1605 | + if (str.compare("Dconnector") == 0 ){ |
1641 | 1606 | ||
1642 | -} | 1607 | + float conductors, conductor_radius, conductor_pitch, conductor_separation, shell_offset; |
1643 | 1608 | ||
1644 | -void BUNDLEBLDR::OnSpinButton1ChangeDown(wxSpinEvent& event) | ||
1645 | -{ | ||
1646 | - double maxDimension; | 1609 | + cableFile >> conductors; |
1610 | + std::getline(cableFile, str); //Read to end of line | ||
1611 | + std::getline(cableFile, str); //Read to end of line | ||
1612 | + cableFile >> conductor_radius; | ||
1613 | + std::getline(cableFile, str); //Read to end of line | ||
1614 | + cableFile >> conductor_pitch; | ||
1615 | + std::getline(cableFile, str); //Read to end of line | ||
1616 | + cableFile >> conductor_separation; | ||
1617 | + std::getline(cableFile, str); //Read to end of line | ||
1618 | + cableFile >> shell_offset; | ||
1647 | 1619 | ||
1648 | - wxString maxXY = TextCtrl8->GetValue(); | 1620 | +// float totalWidth = (conductors/2 * conductor_separation) + (2 * shell_offset) + (2 * conductor_radius); |
1649 | 1621 | ||
1650 | - maxXY.ToDouble(&maxDimension); | 1622 | + float conductor_Scaledradius, |
1623 | + conductor_Scaledpitch, | ||
1624 | + conductor_Scaledseparation, | ||
1625 | + scaledxCoord, | ||
1626 | + scaledyCoord; | ||
1651 | 1627 | ||
1652 | - maxDimension = maxDimension - 0.001; | ||
1653 | 1628 | ||
1654 | - if (maxDimension <=0) maxDimension = 0; | 1629 | + float x_origin, y_origin; |
1655 | 1630 | ||
1656 | - maxXY = ""; | 1631 | + scaleFactor = (size_h * 0.25); |
1657 | 1632 | ||
1658 | - maxXY << maxDimension; | 1633 | + conductor_Scaledradius = (conductor_radius/maxDimension)*scaleFactor; |
1634 | + conductor_Scaledpitch = (conductor_pitch/maxDimension)*scaleFactor; | ||
1635 | + conductor_Scaledseparation = (conductor_separation/maxDimension)*scaleFactor; | ||
1659 | 1636 | ||
1660 | - TextCtrl8 ->SetValue(maxXY); | 1637 | + scaledxCoord = (xCoord/maxDimension)*scaleFactor; |
1638 | + scaledyCoord = (yCoord/maxDimension)*scaleFactor; | ||
1661 | 1639 | ||
1662 | - FormatPanel(maxDimension); | 1640 | + size_h = size_h + scaledxCoord; |
1641 | + size_v = size_v + scaledyCoord; | ||
1642 | + | ||
1643 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); | ||
1644 | + dc.SetBrush(wxBrush(*wxBLACK, wxSOLID)); | ||
1663 | 1645 | ||
1646 | + // Upper conductors & Shell | ||
1647 | + int upper_conductors = conductors / 2; | ||
1648 | + x_origin = (size_h/2) - (upper_conductors/2 * conductor_Scaledseparation); | ||
1649 | + y_origin = (size_v/2) - (conductor_Scaledpitch); | ||
1664 | 1650 | ||
1665 | - if (MeshSelected == 1) | ||
1666 | - { | ||
1667 | - scale = scale - 0.05; | 1651 | + dc.SetPen( wxPen( wxColor(0,0,0),1 ) ); |
1652 | + dc.SetBrush(wxBrush(*wxBLACK)); | ||
1668 | 1653 | ||
1669 | - if (scale <= 0.05) scale = 0.05; | 1654 | + for(int i=0;i<upper_conductors;i++){ |
1670 | 1655 | ||
1671 | - wxString meshToView; | ||
1672 | - meshToView<<ComboBox1->GetValue(); | ||
1673 | - draw_mesh(Panel1,meshToView, scale); | 1656 | + dc.DrawCircle( wxPoint(x_origin,y_origin), conductor_Scaledradius ); |
1657 | + x_origin = x_origin + (conductor_Scaledpitch); | ||
1658 | + } | ||
1659 | + // Lower conductors | ||
1660 | + int lower_conductors = (conductors / 2) - 1; | ||
1661 | + x_origin = (size_h/2) - (lower_conductors/2 * conductor_Scaledseparation) + conductor_Scaledseparation/2; | ||
1662 | + y_origin = (size_v/2) + (conductor_Scaledpitch); // This isn't correct!! | ||
1663 | + | ||
1664 | + for(int i=0;i<lower_conductors;i++){ | ||
1665 | + | ||
1666 | + dc.DrawCircle( wxPoint(x_origin,y_origin), conductor_Scaledradius ); | ||
1667 | + x_origin = x_origin + (conductor_Scaledpitch); | ||
1668 | + } | ||
1674 | } | 1669 | } |
1675 | 1670 | ||
1676 | - else | 1671 | + |
1672 | + // Draw Ground Plane if Selected | ||
1673 | + if(CheckBox1->GetValue()) | ||
1677 | { | 1674 | { |
1678 | - DrawBundleCsection(); | 1675 | + int size_hl, size_vl; |
1676 | + Panel1->GetSize(&size_hl, &size_vl ); | ||
1677 | + dc.SetPen( wxPen( (*wxBLACK) ,5 , wxSOLID) ); | ||
1678 | + dc.DrawLine( 0, size_vl/2, size_hl,size_vl/2 ); | ||
1679 | } | 1679 | } |
1680 | + | ||
1681 | +} | ||
1682 | + | ||
1683 | + | ||
1684 | +void BUNDLEBLDR::OnPanel2Paint(wxPaintEvent& event) | ||
1685 | +{ | ||
1686 | + | ||
1687 | +} | ||
1688 | + | ||
1689 | +void BUNDLEBLDR::OnCheckListBox1Toggled(wxCommandEvent& event) | ||
1690 | +{ | ||
1680 | } | 1691 | } |
1681 | 1692 | ||
1693 | + |
GUI/SW1/SRC/SW1_GUIApp.h
@@ -68,7 +68,7 @@ class SW1_GUIApp : public wxApp | @@ -68,7 +68,7 @@ class SW1_GUIApp : public wxApp | ||
68 | wxBitmap splashimage; | 68 | wxBitmap splashimage; |
69 | 69 | ||
70 | std::string SACAMOS_V_NUMBER = "SPICE_CABLE_MODEL_BUILDER_version=\"v4.0.0\""; | 70 | std::string SACAMOS_V_NUMBER = "SPICE_CABLE_MODEL_BUILDER_version=\"v4.0.0\""; |
71 | - std::string SACAMOS_V_DATE = "SPICE_CABLE_MODEL_BUILDER_date=\"5th October 2018\""; | 71 | + std::string SACAMOS_V_DATE = "SPICE_CABLE_MODEL_BUILDER_date=\"6th October 2018\""; |
72 | 72 | ||
73 | 73 | ||
74 | 74 |
GUI/SW1/SRC/resources/Build
version_information.inc