/// <summary> /// Creates the property manager page and populates it with controls /// </summary> private void SetupPage() { int errors = 0; //Create a property manager page and throw exceptions if an error occurs page = (PropertyManagerPage2)swApp.CreatePropertyManagerPage("Edit Links", (int)swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton, this, ref errors); if (errors == -1) //Creation failed throw new InternalSolidworksException("SldWorks::CreatePropertyManagerPage", "Failed to create property manager page"); else if (errors == -2) //No open document throw new ProgramErrorException("Tried to open a property manager page when no document was open"); else if (errors == 1) //Invlaid hanlder throw new ProgramErrorException("Tried to pass in and invalid page hanlder when creating a property manager page"); //Helper variables for setup options //control type short labelCT = (int)swPropertyManagerPageControlType_e.swControlType_Label; short selectionboxCT = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; short checkboxCT = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox; short textboxCT = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; // align short leftAlign = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; // options int groupboxOptions = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; // for group box int controlOptions = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; // for controls int readonlyOptions = (int)swAddControlOptions_e.swControlOptions_Visible; //Sets the page's message page.SetMessage3(infoMessage, (int)swPropertyManagerPageMessageVisibility.swMessageBoxVisible, (int)swPropertyManagerPageMessageExpanded.swMessageBoxExpand, "Message"); //Setup and create the link properties group linkPropertiesGroup = (PropertyManagerPageGroup)page. AddGroupBox(linkPropertiesGroupID, "Link Properties", groupboxOptions); //Setup and create link colors checkbox linkColorCheckbox = (PropertyManagerPageCheckbox)linkPropertiesGroup. AddControl(linkColorCheckboxID, checkboxCT, "Color components by link", leftAlign, controlOptions, "Check to change all components that are part of links to the color of the link"); linkColorCheckbox.Checked = false; //show Link name, Model type, and SW config to remind user //Setup and create the label for the link name texbox linkNameLabel = (PropertyManagerPageLabel)linkPropertiesGroup. AddControl(linkNameLabelID, labelCT, "Link Name:", leftAlign, controlOptions, "The name of this link"); //Setup and create the link name textbox linkNameTextbox = (PropertyManagerPageTextbox)linkPropertiesGroup. AddControl(linkNameTextboxID, textboxCT, "Link Name", leftAlign, readonlyOptions, "The name of this link"); //Setup and create the label for the model type texbox modelTypeLabel = (PropertyManagerPageLabel)linkPropertiesGroup. AddControl(modelTypeLabelID, labelCT, "Model:", leftAlign, controlOptions, "The current model type"); //Setup and create the model type textbox modelTypeTextbox = (PropertyManagerPageTextbox)linkPropertiesGroup. AddControl(modelTypeTextboxID, textboxCT, "Model", leftAlign, readonlyOptions, "The current model type"); //Setup and create the label for the sw configuration texbox swConfigLabel = (PropertyManagerPageLabel)linkPropertiesGroup. AddControl(swConfigLabelID, labelCT, "Solidworks Configuration:", leftAlign, controlOptions, "The current Solidworks configuration"); //Setup and create the sw configuration textbox swConfigTextbox = (PropertyManagerPageTextbox)linkPropertiesGroup. AddControl(swConfigTextboxID, textboxCT, "Solidworks Configuration", leftAlign, readonlyOptions, "The current Solidworks configuration"); isEmptyCheckbox = (PropertyManagerPageCheckbox)linkPropertiesGroup. AddControl(isEmptyCheckboxID, checkboxCT, "No " + ((ModelConfiguration.ModelConfigType)currentModelConfig) + " model for this link", leftAlign, controlOptions, "Check to make this model have no components"); ((PropertyManagerPageControl)isEmptyCheckbox).Visible = (currentModelConfig == (int)ModelConfiguration.ModelConfigType.Collision); //Setup and create the label for the link components selection box linkComponentsLabel = (PropertyManagerPageLabel)linkPropertiesGroup. AddControl(linkComponentsLabelID, labelCT, "Link Components", leftAlign, controlOptions, "Use this box to select components that are part of this link"); //Setup and create the link components selection box linkComponentsSelectionbox = (PropertyManagerPageSelectionbox)linkPropertiesGroup. AddControl(linkComponentsSelectionboxID, selectionboxCT, "Link Components", leftAlign, controlOptions, "Use this box to select components that are part of this link"); linkComponentsSelectionbox.Height = 75; linkComponentsSelectionbox.Mark = 2; int[] filter = { (int)swSelectType_e.swSelCOMPONENTS }; linkComponentsSelectionbox.SetSelectionFilters(filter); linkComponentsSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem3); //linkComponentsSelectionbox.SetSelectionColor(false, (int) null); }
/// <summary> /// sets up all the controls on the page /// </summary> public void SetupPage() { //Helper variables int options; short controlType, align; int errors = 0; System.Diagnostics.Debug.WriteLine(this is PropertyManagerPage2Handler9); //Create a property manager page and throw exceptions if an error occurs page = (PropertyManagerPage2)swApp.CreatePropertyManagerPage("Attachment Selection", (int)swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton, this, ref errors); if (errors == -1) //Creation failed throw new InternalSolidworksException("SldWorks::CreatePropertyManagerPage", "Failed to create property manager page"); else if (errors == -2) //No open document throw new ProgramErrorException("Tried to open a property manager page when no document was open"); else if (errors == 1) //Invlaid hanlder throw new ProgramErrorException("Tried to pass in and invalid page hanlder when creating a property manager page"); //Sets the page's message page.SetMessage3("Select the origin and direction for this attachment.", (int)swPropertyManagerPageMessageVisibility.swMessageBoxVisible, (int)swPropertyManagerPageMessageExpanded.swMessageBoxExpand, "Message"); //create the selection group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; selectionGroup = (PropertyManagerPageGroup)page.AddGroupBox(selectionGroupID, "Attachment Selections", options); //create the Origin selection Label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; originLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(originLabelID, controlType, "Attachment Origin", align, options, "Select the orgin point of the Attachment"); //create Orgin selectionbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; originSelectionbox = (PropertyManagerPageSelectionbox)selectionGroup.AddControl(originSelectionboxID, controlType, "Attachment Origin", align, options, "Select the origin point of the Attachment"); originSelectionbox.AllowSelectInMultipleBoxes = false; originSelectionbox.SingleEntityOnly = true; originSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem2); originSelectionbox.Mark = 2; int[] filter = { (int)swSelectType_e.swSelVERTICES, (int)swSelectType_e.swSelDATUMPOINTS}; originSelectionbox.SetSelectionFilters(filter); //create the axis selection Label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; axisLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(axisLabelID, controlType, "Attachment Axis", align, options, "Select the viewing axis of the Attachment"); //create axis selectionbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; axisSelectionbox = (PropertyManagerPageSelectionbox)selectionGroup.AddControl(axisSelectionboxID, controlType, "Attachment Axis", align, options, "Select the viewing axis of the Attachment"); axisSelectionbox.AllowSelectInMultipleBoxes = false; axisSelectionbox.SingleEntityOnly = true; axisSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem2); axisSelectionbox.Mark = 4; filter = new int[] { (int)swSelectType_e.swSelEDGES, (int)swSelectType_e.swSelDATUMAXES}; axisSelectionbox.SetSelectionFilters(filter); //Setup and create axis flip checkbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_CheckableBitmapButton; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; flipAxisButton = (PropertyManagerPageBitmapButton)selectionGroup.AddControl(flipAxisButtonID, controlType, "Flip direction axis", align, options, "Check to flip the direction of viewing"); flipAxisButton.Checked = currentAttachment.FlipAxis; flipAxisButton.SetStandardBitmaps((int)swPropertyManagerPageBitmapButtons_e.swBitmapButtonImage_reverse_direction); ((PropertyManagerPageControl)flipAxisButton).Top = 75; ((PropertyManagerPageControl)axisSelectionbox).Top = 75; //create FOV label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; FOVLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(FOVLabelID, controlType, "Field of View", align, options, "Select Field of View"); //create FOV slider controlType = (int)swPropertyManagerPageControlType_e.swControlType_Slider; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; FOVSlider = (PropertyManagerPageSlider)selectionGroup.AddControl(FOVSliderID, controlType, "FOV Slider", align, options, "Slide to adjust FOV"); if (currentAttachment.FOV > 0) { FOVSlider.SetRange(5,175); //corresponds to radius of 5 to 175 meters FOVSlider.TickFrequency = 5; FOVSlider.Position = (int)currentAttachment.FOV; } else { FOVSlider.SetRange(5, 100); //after conversion corresponds to radius of 5 to 100 centimeters FOVSlider.TickFrequency = 5; FOVSlider.Position = (int)(-currentAttachment.FOV * 100); } FOVSlider.Style = (int)swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks | (int)swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_BottomLeftTicks | (int)swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking; //create manual angle checkbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; manualAngleCheckbox = (PropertyManagerPageCheckbox)selectionGroup.AddControl(manualAngleCheckboxID, controlType, "Manual Rotations", align, options, "Check to manually define angle rotations"); manualAngleCheckbox.Checked = currentAttachment.UseManualAngles; //create the roll text Label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; rollLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(rollLabelID, controlType, "Roll", align, options, "Rotation about the X axis"); //create roll textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; rollTextbox = (PropertyManagerPageTextbox)selectionGroup.AddControl(rollTextboxID, controlType, "0.0", align, options, "Enter the rotation about the X axis"); //create the pitch text Label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; pitchLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(pitchLabelID, controlType, "Pitch", align, options, "Rotation about the Y axis"); //create pitch textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; pitchTextbox = (PropertyManagerPageTextbox)selectionGroup.AddControl(pitchTextboxID, controlType, "0.0", align, options, "Enter the rotation about the Y axis"); //create the yaw text Label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; yawLabel = (PropertyManagerPageLabel)selectionGroup.AddControl(yawLabelID, controlType, "Yaw", align, options, "Rotation about the Z axis"); //create roll textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; yawTextbox = (PropertyManagerPageTextbox)selectionGroup.AddControl(yawTextboxID, controlType, "0.0", align, options, "Enter the rotation about the Z axis"); ToggleManualAngles(currentAttachment.UseManualAngles); page.Show(); //ModelViewManager swModViewMgr = modelDoc.ModelViewManager; //IMathUtility mathUtil = ((IMathUtility)swApp.GetMathUtility()); //swManip = swModViewMgr.CreateManipulator((int)swManipulatorType_e.swTriadManipulator, this); //rotManipulator = (TriadManipulator)swManip.GetSpecificManipulator(); //rotManipulator.DoNotShow = (int)swTriadManipulatorDoNotShow_e.swTriadManipulatorDoNotShowXYPlane //+ (int)swTriadManipulatorDoNotShow_e.swTriadManipulatorDoNotShowYZPlane + (int)swTriadManipulatorDoNotShow_e.swTriadManipulatorDoNotShowZXPlane;// 127;//hides all exept for rotations SelectOrigin(); rollTextbox.Text = (currentAttachment.RotRoll * 180 / Math.PI).ToString(); pitchTextbox.Text = (currentAttachment.RotPitch * 180 / Math.PI).ToString(); yawTextbox.Text = (currentAttachment.RotYaw * 180 / Math.PI).ToString(); }
/// <summary> /// Creates the property manager page and populates it with controls /// </summary> private void SetupPage() { //Helper variables int options; short controlType, align; int errors = 0; //Create a property manager page and throw exceptions if an error occurs page = (PropertyManagerPage2)swApp.CreatePropertyManagerPage("Edit Links", (int)swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton, this, ref errors); if (errors == -1) //Creation failed throw new InternalSolidworksException("SldWorks::CreatePropertyManagerPage", "Failed to create property manager page"); else if (errors == -2) //No open document throw new ProgramErrorException("Tried to open a property manager page when no document was open"); else if (errors == 1) //Invlaid hanlder throw new ProgramErrorException("Tried to pass in and invalid page hanlder when creating a property manager page"); //Sets the page's message page.SetMessage3(infoMessage, (int)swPropertyManagerPageMessageVisibility.swMessageBoxVisible, (int)swPropertyManagerPageMessageExpanded.swMessageBoxExpand, "Message"); linkTab = page.AddTab(linkTabID, "Links", "", 0); jointTab = page.AddTab(jointTabID, "Joint", "", 0); #region Select Group //Setup and create link selection group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; selectGroup = (PropertyManagerPageGroup)linkTab.AddGroupBox(selectGroupID, "Select Link", options); //Setup and create link colors checkbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkColorCheckbox = (PropertyManagerPageCheckbox)selectGroup.AddControl(linkColorCheckboxID, controlType, "Color components by link", align, options, "Check to change all components that are part of links to the color of the link"); linkColorCheckbox.Checked = false; //Setup and create the link selector form handle controlType = (int)swPropertyManagerPageControlType_e.swControlType_WindowFromHandle; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkSelectorHandle = (PropertyManagerPageWindowFromHandle)selectGroup.AddControl(linkSelectorHandleID, controlType, "Link Selector", align, options, "Select, add, remove, and edit links"); // linkSelectorControl = new LinkSelector(robot); //linkSelectorControl.OnLinkSelectionChanged += this.OnLinkSelectionChanged; linkSelectorHandle.Height = 200; //linkSelectorHandle.SetWindowHandlex64(linkSelectorControl.Handle.ToInt64()); //linkSelectorControl.OnEditLink += EditLink; #endregion #region Link Properties Group //Setup and create the link properties group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; linkPropertiesGroup = (PropertyManagerPageGroup)linkTab.AddGroupBox(linkPropertiesGroupID, "Link Properties", options); //Setup and create the label for the link name texbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkNameLabel = (PropertyManagerPageLabel)linkPropertiesGroup.AddControl(linkNameLabelID, controlType, "Link Name", align, options, "Change the name of this link"); //Setup and create the link name textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkNameTextbox = (PropertyManagerPageTextbox)linkPropertiesGroup.AddControl(linkNameTextboxID, controlType, "Link Name", align, options, "Enter the name for this link here"); //Setup and create the label for the link components selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkComponentsLabel = (PropertyManagerPageLabel)linkPropertiesGroup.AddControl(linkComponentsLabelID, controlType, "Link Components", align, options, "Use this box to select components that are part of this link"); //Setup and create the link components selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; linkComponentsSelectionbox = (PropertyManagerPageSelectionbox)linkPropertiesGroup.AddControl(linkComponentsSelectionboxID, controlType, "Link Components", align, options, "Use this box to select components that are part of this link"); linkComponentsSelectionbox.Height = 75; linkComponentsSelectionbox.Mark = 2; int[] filter = { (int)swSelectType_e.swSelCOMPONENTS }; linkComponentsSelectionbox.SetSelectionFilters(filter); #endregion #region Joint Properties Group //Setup and create the joint properties group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; jointPropertiesGroup = (PropertyManagerPageGroup)jointTab.AddGroupBox(jointPropertiesGroupID, "Joint Properties", options); //Setup and create the label for the joint type combobox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointTypeLabel = (PropertyManagerPageLabel)jointPropertiesGroup.AddControl(linkNameLabelID, controlType, "Joint Type", align, options, "Change the name of this link"); //Setup and create the label for the joint type combobox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Combobox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointTypeCombobox = (PropertyManagerPageCombobox)jointPropertiesGroup.AddControl(linkNameLabelID, controlType, "Joint Type", align, options, "Change the name of this link"); jointTypeCombobox.AddItems(Joint.JointTypes); //Setup and create the label for the joint axis 1 selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointAxis1Label = (PropertyManagerPageLabel)jointPropertiesGroup.AddControl(linkNameLabelID, controlType, "Axis 1", align, options, "Select an axis for this joint"); //Setup and create the joint axis 1 selectionbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointAxis1Selectionbox = (PropertyManagerPageSelectionbox)jointPropertiesGroup.AddControl(jointAxis1SelectionboxID, controlType, "Axis 1", align, options, "Use this box to select the axis of movment of this joint"); jointAxis1Selectionbox.AllowSelectInMultipleBoxes = false; jointAxis1Selectionbox.SingleEntityOnly = true; jointAxis1Selectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem2); jointAxis1Selectionbox.Mark = 4; int[] filter2 = {(int) swSelectType_e.swSelDATUMAXES, (int)swSelectType_e.swSelEDGES }; jointAxis1Selectionbox.SetSelectionFilters(filter2); //Setup and create the axis flip checkbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; flipAxisDirectionCheckbox = (PropertyManagerPageCheckbox)jointPropertiesGroup.AddControl(flipAxisDirectionCheckboxID, controlType, "flipAxisDirection", align, options, "Check to flip the direction of movement for this joint"); flipAxisDirectionCheckbox.Checked = false; //Setup and create the joint Movement Limits properties group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; jointMovementLimitsGroup = (PropertyManagerPageGroup)jointTab.AddGroupBox(jointMovementLimitsGroupID, "Joint Movement Limits", options); //Setup and create joint lower edgelabel controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLinkLowerEdgeLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Lower Link Edge", align, options, "Select a lower edge for this joint"); //setup and create joint lower edge selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLinkLowerEdgeSelectionbox = (PropertyManagerPageSelectionbox)jointMovementLimitsGroup.AddControl(jointLinkLowerEdgeSelectionboxID, controlType, "Lower Link Edge", align, options, "Use this box to select the lower edge of the link"); jointLinkLowerEdgeSelectionbox.AllowSelectInMultipleBoxes = false; jointLinkLowerEdgeSelectionbox.SingleEntityOnly = true; jointLinkLowerEdgeSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem2); jointLinkLowerEdgeSelectionbox.Mark = 8; int[] filter3 = { (int)swSelectType_e.swSelDATUMAXES, (int)swSelectType_e.swSelEDGES, (int)swSelectType_e.swSelFACES, (int)swSelectType_e.swSelVERTICES, (int)swSelectType_e.swSelDATUMPLANES, (int)swSelectType_e.swSelDATUMPOINTS }; jointLinkLowerEdgeSelectionbox.SetSelectionFilters(filter3); //Setup and create joint lower limit stop label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLowerLimitStopLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Lower Motion Limit", align, options, "Select a lower limit for this joint"); //setup and create joint lower limit selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLowerLimitStopSelectionbox = (PropertyManagerPageSelectionbox)jointMovementLimitsGroup.AddControl(jointLowerLimitStopSelectionboxID, controlType, "LowerMotionLimit", align, options, "Use this box to select the lower limit of the link"); jointLowerLimitStopSelectionbox.AllowSelectInMultipleBoxes = false; jointLowerLimitStopSelectionbox.SingleEntityOnly = true; jointLowerLimitStopSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem3); jointLowerLimitStopSelectionbox.Mark = 16; jointLowerLimitStopSelectionbox.SetSelectionFilters(filter3); //Setup and create joint upper edgelabel controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLinkUpperEdgeLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Upper Link Edge", align, options, "Select a Upper edge for this joint"); //setup and create joint Upper edge selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointLinkUpperEdgeSelectionbox = (PropertyManagerPageSelectionbox)jointMovementLimitsGroup.AddControl(jointLinkUpperEdgeSelectionboxID, controlType, "Upper Link Edge", align, options, "Use this box to select the upper edge of the link"); jointLinkUpperEdgeSelectionbox.AllowSelectInMultipleBoxes = false; jointLinkUpperEdgeSelectionbox.SingleEntityOnly = true; jointLinkUpperEdgeSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem2); jointLinkUpperEdgeSelectionbox.Mark = 32; jointLinkUpperEdgeSelectionbox.SetSelectionFilters(filter3); //Setup and create joint Upper limit stop label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointUpperLimitStopLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Upper Motion Limit", align, options, "Select an Upper limit for this joint"); //Setup and create joint upper limit selectionbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointUpperLimitStopSelectionbox = (PropertyManagerPageSelectionbox)jointMovementLimitsGroup.AddControl(jointUpperLimitStopSelectionboxID, controlType, "Upper Motion Limit", align, options, "Use this box to select the upper limit of the joint"); jointUpperLimitStopSelectionbox.AllowSelectInMultipleBoxes = false; jointUpperLimitStopSelectionbox.SingleEntityOnly = true; jointUpperLimitStopSelectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem3); jointUpperLimitStopSelectionbox.Mark = 64; jointUpperLimitStopSelectionbox.SetSelectionFilters(filter3); //Setup and create manual limit checkbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Checkbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointManualLimitsCheckbox = (PropertyManagerPageCheckbox)jointMovementLimitsGroup.AddControl(jointManualLimitsCheckboxID, controlType, "Set manual values for limits", align, options, "Check to manually set limit offsets from current position"); jointManualLimitsCheckbox.Checked = false; //Setup and create joint lower limit label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; jointLowerLimitLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Lower limit", align, options, "Select a lower limit for this joint"); //Setup and create the joint lower limit Textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; jointLowerLimitTextbox = (PropertyManagerPageTextbox)jointMovementLimitsGroup.AddControl(jointLowerLimitTextboxID, controlType, "0.0", align, options, "Enter the lower limit of the joint"); //Setup and create joint upper limit label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; jointUpperLimitLabel = (PropertyManagerPageLabel)jointMovementLimitsGroup.AddControl(linkNameLabelID, controlType, "Upper limit", align, options, "Select an upper limit for this joint"); //Setup and create the joint upper limit Textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Visible; jointUpperLimitTextbox = (PropertyManagerPageTextbox)jointMovementLimitsGroup.AddControl(jointUpperLimitTextboxID, controlType, "0.0", align, options, "Enter the upper limit of the joint"); //Create the joint physical properties group options = (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded | (int)swAddGroupBoxOptions_e.swGroupBoxOptions_Visible; jointPhysicalPropertiesGroup = (PropertyManagerPageGroup)jointTab.AddGroupBox(jointPhysicalPropertiesGroupID, "Joint Physical Properties", options); //Setup and create joint effort limit label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointEffortLimitLabel = (PropertyManagerPageLabel)jointPhysicalPropertiesGroup.AddControl(linkNameLabelID, controlType, "Effort limit", align, options, "Select an effort limit for this joint"); //Setup and create the joint effort limit textbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointEffortLimitTextbox = (PropertyManagerPageTextbox)jointPhysicalPropertiesGroup.AddControl(jointEffortLimitTextboxID, controlType, "0.0", align, options, "Enter the effort limit of the joint"); //Setup and create joint velocity limit label controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointVelocityLimitLabel = (PropertyManagerPageLabel)jointPhysicalPropertiesGroup.AddControl(linkNameLabelID, controlType, "Velocity limit", align, options, "Select a velocity limit for this joint"); //Setup and create the joint velocity limit selectionbox controlType = (int)swPropertyManagerPageControlType_e.swControlType_Textbox; align = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointVelocityLimitTextbox = (PropertyManagerPageTextbox)jointPhysicalPropertiesGroup.AddControl(jointVelocityLimitTextboxID, controlType, "0.0", align, options, "Enter the velocity limit of the joint"); /* //Setup and create the label for the joint axis 2 selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Label; leftAlign = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointAxis2Label = (PropertyManagerPageLabel)jointPropertiesGroup.AddControl(linkNameLabelID, controlType, "Axis 2", leftAlign, options, "Select an axis for this joint"); //Setup and create the joint axis 2 selection box controlType = (int)swPropertyManagerPageControlType_e.swControlType_Selectionbox; leftAlign = (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge; options = (int)swAddControlOptions_e.swControlOptions_Enabled | (int)swAddControlOptions_e.swControlOptions_Visible; jointAxis2Selectionbox = (PropertyManagerPageSelectionbox)jointPropertiesGroup.AddControl(jointAxis2SelectionboxID, controlType, "Link Components", leftAlign, options, "Use this box to select components that are part of this link"); jointAxis2Selectionbox.AllowSelectInMultipleBoxes = false; jointAxis2Selectionbox.SingleEntityOnly = true; jointAxis2Selectionbox.SetSelectionColor(true, (int)swUserPreferenceIntegerValue_e.swSystemColorsSelectedItem4); jointAxis2Selectionbox.Mark = 8; jointAxis2Selectionbox.SetSelectionFilters(filter2); */ #endregion }