def selectFun(self, event, referer, elementXML, elementParms, elementViewObject):
     x, y = elementParms["x"], elementParms["y"]
     d.dArgs = [x, y]
     d.stage = 1
     debugPrint(2, "welding symbol to point at x=%3.1f y=%3.1f" % (x, y))
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview(d, self.preview_svgRenderer, self.preview_clickHandler)
Пример #2
0
 def Activated(self):
     V = getDrawingPageGUIVars()
     d.activate( V, dialogTitle='Add Grab Point', dialogIconPath=':/dd/icons/grabPointAdd.svg', endFunction=self.Activated )
     previewDimension.initializePreview(
         d,
         grabPoint_preview, 
         grabPoint_clickHandler )
 def accept( self ):
     crudeDebuggerPrint('''addText.py:38  	        debugPrint(3, 'AddTextDialogWidget accept pressed') ''')
     debugPrint(3, 'AddTextDialogWidget accept pressed')
     crudeDebuggerPrint('''addText.py:39  	        widgets = dict( [c.objectName(), c] for c in self.children() ) ''')
     widgets = dict( [c.objectName(), c] for c in self.children() )
     crudeDebuggerPrint('''addText.py:40  	        debugPrint(4, 'widgets %s' % widgets) ''')
     debugPrint(4, 'widgets %s' % widgets)
     crudeDebuggerPrint('''addText.py:41  	        if widgets['textLineEdit'].text() == '': ''')
     if widgets['textLineEdit'].text() == '':
         crudeDebuggerPrint('''addText.py:42  	            debugPrint(1, 'Aborting placing empty text.') ''')
         debugPrint(1, 'Aborting placing empty text.')
         crudeDebuggerPrint('''addText.py:43  	            return ''')
         return
     crudeDebuggerPrint('''addText.py:44  	        debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text() ) ''')
     debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text() )
     crudeDebuggerPrint('''addText.py:45  	        self.hide() ''')
     self.hide()
     crudeDebuggerPrint('''addText.py:46  	        dimensioning.text = widgets['textLineEdit'].text() ''')
     dimensioning.text = widgets['textLineEdit'].text()
     crudeDebuggerPrint('''addText.py:47  	        widgets['textLineEdit'].setText('') ''')
     widgets['textLineEdit'].setText('')
     crudeDebuggerPrint('''addText.py:48  	        dimensioning.fontSize =  widgets['textSizeSpinBox'].value() ''')
     dimensioning.fontSize =  widgets['textSizeSpinBox'].value()
     crudeDebuggerPrint('''addText.py:49  	        dimensioning.color = widgets['colorLineEdit'].text() ''')
     dimensioning.color = widgets['colorLineEdit'].text()
     crudeDebuggerPrint('''addText.py:50  	        debugPrint(4,'previewDimension.initializePreview') ''')
     debugPrint(4,'previewDimension.initializePreview')
     crudeDebuggerPrint('''addText.py:51  	        previewDimension.initializePreview( ''')
     previewDimension.initializePreview(
         dimensioning.drawingVars,
         clickEvent, 
         hoverEvent )
def AddToleranceToText(event, referer, elementXML, elementParms,
                       elementViewObject):
    viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
    d.selections = [TextSelection(elementParms, elementXML, viewInfo)]
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview(d, toleranceAdd_preview,
                                       toleranceAdd_clickHandler)
Пример #5
0
def stack_selectDimensioningPoint(event, referer, elementXML, elementParms,
                                  elementViewObject):
    viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
    if len(d.selections) == 0:
        if isinstance(referer, selectionOverlay.PointSelectionGraphicsItem):
            d.selections.append(
                PointSelection(elementParms, elementXML, viewInfo))
            d.selections[-1].condensed_args = True
            selectionOverlay.hideSelectionGraphicsItems(lambda gi: isinstance(
                gi, selectionOverlay.LineSelectionGraphicsItem))
        else:
            d.selections.append(
                LineSelection(elementParms, elementXML, viewInfo))
            linearDimension_parallels_hide_non_parallel(
                elementParms, elementViewObject)
        d.viewScale = 1 / elementXML.rootNode().scaling()
    else:
        if isinstance(referer, selectionOverlay.PointSelectionGraphicsItem):
            d.selections.append(
                PointSelection(elementParms, elementXML, viewInfo))
            d.selections[-1].condensed_args = True
        else:
            d.selections.append(
                LineSelection(elementParms, elementXML, viewInfo))
        if len(d.selections) == 2:
            previewDimension.initializePreview(
                d, linearDimension_stack_preview,
                linearDimension_stack_clickHandler)
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    crudeDebuggerPrint(
        '''circularDimension.py:9  	    x,y = elementParms['x'], elementParms['y'] '''
    )
    x, y = elementParms['x'], elementParms['y']
    crudeDebuggerPrint(
        '''circularDimension.py:10  	    dimensioning.point1 = x, y ''')
    dimensioning.point1 = x, y
    crudeDebuggerPrint(
        '''circularDimension.py:11  	    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x,y)) '''
    )
    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x, y))
    crudeDebuggerPrint(
        '''circularDimension.py:12  	    dimensioning.radius = elementParms['r'] '''
    )
    dimensioning.radius = elementParms['r']
    crudeDebuggerPrint(
        '''circularDimension.py:13  	    dimensioning.dimScale = 1/elementXML.rootNode().scaling() '''
    )
    dimensioning.dimScale = 1 / elementXML.rootNode().scaling()
    crudeDebuggerPrint(
        '''circularDimension.py:14  	    dimensioning.stage = 1 ''')
    dimensioning.stage = 1
    crudeDebuggerPrint(
        '''circularDimension.py:15  	    selectionOverlay.hideSelectionGraphicsItems() '''
    )
    selectionOverlay.hideSelectionGraphicsItems()
    crudeDebuggerPrint(
        '''circularDimension.py:16  	    previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview ) '''
    )
    previewDimension.initializePreview(dimensioning.drawingVars,
                                       clickFunPreview, hoverFunPreview)
def selectDimensioningPoint( event, referer, elementXML, elementParms, elementViewObject ):
    crudeDebuggerPrint('''linearDimension.py:9  	    x, y = elementParms['x'], elementParms['y'] ''')
    x, y = elementParms['x'], elementParms['y']
    crudeDebuggerPrint('''linearDimension.py:10  	    referer.lockSelection() ''')
    referer.lockSelection()
    crudeDebuggerPrint('''linearDimension.py:11  	    if dimensioning.stage == 0: #then selectPoint1 ''')
    if dimensioning.stage == 0: #then selectPoint1
        crudeDebuggerPrint('''linearDimension.py:12  	        dimensioning.point1 =  x,y ''')
        dimensioning.point1 =  x,y
        crudeDebuggerPrint('''linearDimension.py:13  	        debugPrint(2, 'point1 set to x=%3.1f y=%3.1f' % (x,y)) ''')
        debugPrint(2, 'point1 set to x=%3.1f y=%3.1f' % (x,y))
        crudeDebuggerPrint('''linearDimension.py:14  	        dimensioning.stage = 1 ''')
        dimensioning.stage = 1
    else:
        crudeDebuggerPrint('''linearDimension.py:16  	        dimensioning.point2 =  x,y ''')
        dimensioning.point2 =  x,y
        crudeDebuggerPrint('''linearDimension.py:17  	        debugPrint(2, 'point2 set to x=%3.1f y=%3.1f' % (x,y)) ''')
        debugPrint(2, 'point2 set to x=%3.1f y=%3.1f' % (x,y))
        crudeDebuggerPrint('''linearDimension.py:18  	        dimensioning.stage = 2 ''')
        dimensioning.stage = 2 
        crudeDebuggerPrint('''linearDimension.py:19  	        dimensioning.dimScale = 1/elementXML.rootNode().scaling() ''')
        dimensioning.dimScale = 1/elementXML.rootNode().scaling()
        crudeDebuggerPrint('''linearDimension.py:20  	        selectionOverlay.hideSelectionGraphicsItems() ''')
        selectionOverlay.hideSelectionGraphicsItems()
        crudeDebuggerPrint('''linearDimension.py:21  	        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview ) ''')
        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
 def selectFun(self, event, referer, elementXML, elementParms,
               elementViewObject):
     viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
     d.selections = [PointSelection(elementParms, elementXML, viewInfo)]
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview(d, self.preview_svgRenderer,
                                        self.preview_clickHandler)
Пример #9
0
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    referer.lockSelection()
    viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
    if isinstance(referer, selectionOverlay.LineSelectionGraphicsItem):
        d.selections.append(LineSelection(elementParms, elementXML, viewInfo))
        if len(d.selections) == 1:
            for gi in selectionOverlay.graphicItems:
                if isinstance(gi, selectionOverlay.PointSelectionGraphicsItem):
                    gi.hide()
        else:
            d.max_selections = 4
            selectionOverlay.hideSelectionGraphicsItems()
            previewDimension.initializePreview(
                d, angularDimension_points_preview,
                angularDimension_points_clickHandler)
    else:  #user selecting 3 points
        if len(d.selections) == 0:
            d.selections = [ThreePointAngleSelection()]
            d.max_selections = 3
            for gi in selectionOverlay.graphicItems:
                if isinstance(gi, selectionOverlay.LineSelectionGraphicsItem):
                    gi.hide()
        d.selections[0].addPoint(elementParms, elementXML, viewInfo)
        if len(d.selections[0].points) == 3:
            selectionOverlay.hideSelectionGraphicsItems()
            previewDimension.initializePreview(
                d, angularDimension_points_preview,
                angularDimension_points_clickHandler)
 def Activated(self):
     V = getDrawingPageGUIVars()
     d.activate(V,
                dialogTitle='Add Text',
                dialogIconPath=os.path.join(iconPath, 'textAdd.svg'),
                endFunction=self.Activated)
     previewDimension.initializePreview(d, addText_preview,
                                        addText_clickHandler)
def selectFun( event, referer, elementXML, elementParms, elementViewObject ):
    x,y = elementParms['x'], elementParms['y']
    dimensioning.point1 = x, y
    debugPrint(2, 'note start point selected at x=%3.1f y=%3.1f' % (x,y))
    dimensioning.dimScale = 1/elementXML.rootNode().scaling() / UnitConversionFactor()
    dimensioning.stage = 1
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
 def Activated(self):
     V = getDrawingPageGUIVars()
     dimensioning.activate(V, ['strokeWidth'], ['lineColor'])
     previewDimension.initializePreview(
         dimensioning.drawingVars,
         line_ClickEvent,
         line_hoverEvent,
     )
Пример #13
0
 def Activated(self):
     V = getDrawingPageGUIVars()
     d.activate( V, dialogTitle='Add Grab Point', dialogIconPath=os.path.join( iconPath , 'grabPointAdd.svg' ), endFunction=self.Activated )
     d.preview = True
     previewDimension.initializePreview(
         d,
         grabPoint_preview, 
         grabPoint_clickHandler )
Пример #14
0
 def Activated(self):
     V = getDrawingPageGUIVars()
     d.activate(V,
                dialogTitle='Add Grab Point',
                dialogIconPath=':/dd/icons/grabPointAdd.svg',
                endFunction=self.Activated)
     previewDimension.initializePreview(d, grabPoint_preview,
                                        grabPoint_clickHandler)
 def selectFun(self, event, referer, elementXML, elementParms, elementViewObject ):
     viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
     d.selections = [ PointSelection( elementParms, elementXML, viewInfo) ]
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview( 
         d, 
         self.preview_svgRenderer, 
         self.preview_clickHandler )
def selectFun(  event, referer, elementXML, elementParms, elementViewObject ):
    x,y = elementParms['x'], elementParms['y']
    dimensioning.center = [x, y]
    dimensioning.stage = 1
    dimensioning.dimScale = elementXML.rootNode().scaling()
    debugPrint(3, 'center selected at x=%3.1f y=%3.1f scale %3.1f' % (x,y, dimensioning.dimScale))
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
Пример #17
0
 def Activated(self):
     V = getDrawingPageGUIVars()
     dimensioning.activate( V, ['strokeWidth'],['lineColor'] )
     previewDimension.initializePreview( 
         dimensioning.drawingVars, 
         line_ClickEvent, 
         line_hoverEvent,
         )
def selectFun(  event, referer, elementXML, elementParms, elementViewObject ):
    x,y = elementParms['x'], elementParms['y']
    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x,y))
    d.args = [x, y, elementParms['r']]
    d.viewScale = 1/elementXML.rootNode().scaling()
    d.stage = 1
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview( d, radiusDimensionSVG_preview, radiusDimensionSVG_clickHandler)
 def Activated(self):
     V = getDrawingPageGUIVars()
     d.activate(V,
                dialogTitle='Add Table',
                dialogIconPath=':/dd/icons/table_dd.svg',
                endFunction=self.Activated)
     previewDimension.initializePreview(d, table_preview,
                                        table_clickHandler)
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    x, y = elementParms['x'], elementParms['y']
    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x, y))
    d.args = [x, y, elementParms['r']]
    d.viewScale = 1 / elementXML.rootNode().scaling()
    d.stage = 1
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview(d, circularDimensionSVG_preview,
                                       circularDimensionSVG_clickHandler)
 def selectFun(self, event, referer, elementXML, elementParms,
               elementViewObject):
     x, y = elementParms['x'], elementParms['y']
     d.dArgs = [x, y]
     d.stage = 1
     debugPrint(2, 'welding symbol to point at x=%3.1f y=%3.1f' % (x, y))
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview(d, self.preview_svgRenderer,
                                        self.preview_clickHandler)
Пример #22
0
 def Activated(self):
     V = getDrawingPageGUIVars()
     dimensioning.activate( V, ['strokeWidth','arrowL1','arrowL2','arrowW'],['lineColor'] )
     dimensioning.dArgs = []
     previewDimension.initializePreview( 
         dimensioning.drawingVars, 
         ArrowWithTail_ClickEvent, 
         ArrowWithTail_hoverEvent,
         )
 def Activated(self):
     V = getDrawingPageGUIVars()
     dimensioning.activate( V, ['strokeWidth','arrowL1','arrowL2','arrowW'],['lineColor'] )
     dimensioning.dArgs = []
     previewDimension.initializePreview( 
         dimensioning.drawingVars, 
         ArrowWithTail_ClickEvent, 
         ArrowWithTail_hoverEvent,
         )
    def Activated(self):
        V = getDrawingPageGUIVars() #needs to be done before dialog show, else active window is dialog and not freecad
        dimensioning.activate( V, textParms=['textRenderer'] ) # don't know if useful...

        debugPrint(3,'textRenderer created')
        debugPrint(3,'previewDimension.initializePreview')
        previewDimension.initializePreview(
            dimensioning.drawingVars,
            clickEvent, 
            hoverEvent )
 def selectFun(self, event, referer, elementXML, elementParms,
               elementViewObject):
     x, y = elementParms['x'], elementParms['y']
     dimensioning.dArgs = [x, y]
     dimensioning.stage = 1
     debugPrint(2, 'welding symbol to point at x=%3.1f y=%3.1f' % (x, y))
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview(dimensioning.drawingVars,
                                        self.clickFunPreview,
                                        self.hoverFunPreview)
    def Activated(self):
        V = getDrawingPageGUIVars(
        )  #needs to be done before dialog show, else active window is dialog and not freecad
        dimensioning.activate(V, textParms=['textRenderer'
                                            ])  # don't know if useful...

        debugPrint(3, 'textRenderer created')
        debugPrint(3, 'previewDimension.initializePreview')
        previewDimension.initializePreview(dimensioning.drawingVars,
                                           clickEvent, hoverEvent)
 def selectFun(self, event, referer, elementXML, elementParms, elementViewObject ):
     x,y = elementParms['x'], elementParms['y']
     dimensioning.dArgs = [x,y]
     dimensioning.stage = 1
     debugPrint(2, 'welding symbol to point at x=%3.1f y=%3.1f' % (x,y))
     selectionOverlay.hideSelectionGraphicsItems()
     previewDimension.initializePreview( 
         dimensioning.drawingVars, 
         self.clickFunPreview, 
         self.hoverFunPreview )
Пример #28
0
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    x, y = elementParms['x'], elementParms['y']
    dimensioning.center = [x, y]
    dimensioning.stage = 1
    dimensioning.dimScale = elementXML.rootNode().scaling()
    debugPrint(
        3, 'center selected at x=%3.1f y=%3.1f scale %3.1f' %
        (x, y, dimensioning.dimScale))
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview(dimensioning.drawingVars,
                                       clickFunPreview, hoverFunPreview)
 def Activated(self):
     selection = FreeCADGui.Selection.getSelectionEx()
     if len(selection) == 1 and all( isinstance(s, Part.Face) for s in selection[0].SubObjects )  :
         V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
         d.activate(V) #to do, implement defaults preferences, ['centerLine_width','centerLine_len_gap','centerLine_len_dash','centerLine_len_dot'], ['centerLine_color'])
         d.projection = unfold( selection[0].SubObjects )
         d.taskPanelDialog =  UnfoldTaskPanel()
         FreeCADGui.Control.showDialog( d.taskPanelDialog )
         previewDimension.initializePreview( d, projectionSvg, clickHandler )
     else:
         QtGui.QMessageBox.information(  QtGui.qApp.activeWindow(), "Info", 'Please select touching faces from the same shape')
 def Activated(self):
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     dimensioning.activate( V )
     P = PartsList()
     for obj in App.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject(obj)
     dimensioning.partsList = P
     P.svg(0,0) #calling here as once inside previewRect, error trapping difficult...
     previewDimension.initializePreview( V, clickEvent, hoverEvent )
Пример #31
0
 def Activated(self):
     selection = FreeCADGui.Selection.getSelectionEx()
     if len(selection) == 1 and all( isinstance(s, Part.Face) for s in selection[0].SubObjects )  :
         V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
         d.activate(V) #to do, implement defaults preferences, ['centerLine_width','centerLine_len_gap','centerLine_len_dash','centerLine_len_dot'], ['centerLine_color'])
         d.projection = unfold( selection[0].SubObjects )
         d.taskPanelDialog =  UnfoldTaskPanel()
         FreeCADGui.Control.showDialog( d.taskPanelDialog )
         previewDimension.initializePreview( d, projectionSvg, clickHandler )
     else:
         QtGui.QMessageBox.information(  QtGui.qApp.activeWindow(), "Info", 'Please select touching faces from the same shape')
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    x, y = elementParms['x'], elementParms['y']
    dimensioning.point1 = x, y
    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x, y))
    dimensioning.radius = elementParms['r']
    dimensioning._dimScale = 1 / elementXML.rootNode().scaling()
    dimensioning.stage = 1
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview(dimensioning.drawingVars,
                                       clickFunPreview,
                                       hoverFunPreview,
                                       launchControlDialog=True)
Пример #33
0
 def accept(self):
     crudeDebuggerPrint(
         '''addText.py:38  	        debugPrint(3, 'AddTextDialogWidget accept pressed') '''
     )
     debugPrint(3, 'AddTextDialogWidget accept pressed')
     crudeDebuggerPrint(
         '''addText.py:39  	        widgets = dict( [c.objectName(), c] for c in self.children() ) '''
     )
     widgets = dict([c.objectName(), c] for c in self.children())
     crudeDebuggerPrint(
         '''addText.py:40  	        debugPrint(4, 'widgets %s' % widgets) '''
     )
     debugPrint(4, 'widgets %s' % widgets)
     crudeDebuggerPrint(
         '''addText.py:41  	        if widgets['textLineEdit'].text() == '': '''
     )
     if widgets['textLineEdit'].text() == '':
         crudeDebuggerPrint(
             '''addText.py:42  	            debugPrint(1, 'Aborting placing empty text.') '''
         )
         debugPrint(1, 'Aborting placing empty text.')
         crudeDebuggerPrint('''addText.py:43  	            return ''')
         return
     crudeDebuggerPrint(
         '''addText.py:44  	        debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text() ) '''
     )
     debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text())
     crudeDebuggerPrint('''addText.py:45  	        self.hide() ''')
     self.hide()
     crudeDebuggerPrint(
         '''addText.py:46  	        dimensioning.text = widgets['textLineEdit'].text() '''
     )
     dimensioning.text = widgets['textLineEdit'].text()
     crudeDebuggerPrint(
         '''addText.py:47  	        widgets['textLineEdit'].setText('') ''')
     widgets['textLineEdit'].setText('')
     crudeDebuggerPrint(
         '''addText.py:48  	        dimensioning.fontSize =  widgets['textSizeSpinBox'].value() '''
     )
     dimensioning.fontSize = widgets['textSizeSpinBox'].value()
     crudeDebuggerPrint(
         '''addText.py:49  	        dimensioning.color = widgets['colorLineEdit'].text() '''
     )
     dimensioning.color = widgets['colorLineEdit'].text()
     crudeDebuggerPrint(
         '''addText.py:50  	        debugPrint(4,'previewDimension.initializePreview') '''
     )
     debugPrint(4, 'previewDimension.initializePreview')
     crudeDebuggerPrint(
         '''addText.py:51  	        previewDimension.initializePreview( ''')
     previewDimension.initializePreview(dimensioning.drawingVars,
                                        clickEvent, hoverEvent)
def selectFun( event, referer, elementXML, elementParms, elementViewObject ):
    x1,y1,x2,y2 = [ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ]
    debugPrint(2, str(dimensioning) )
    debugPrint(2, 'selecting line %i with x1=%3.1f y1=%3.1f, x2=%3.1f y2=%3.1f' % (dimensioning.stage, x1,y1,x2,y2) )
    referer.lockSelection()
    if dimensioning.stage == 0: #then select line1
        dimensioning.line1 = x1,y1,x2,y2
        dimensioning.stage = 1
    else: 
        dimensioning.line2 = x1,y1,x2,y2
        dimensioning.stage = 2
        selectionOverlay.hideSelectionGraphicsItems()
        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
def MoveDimensionText( event, referer, elementXML, elementParms, elementViewObject ):
    d.dimToEdit = elementViewObject    
    d.elementXML = elementXML
    debugPrint(2, 'moving %s' % elementViewObject.Name)
    if elementXML.parms.has_key('transform'):
        transform = elementXML.parms['transform']
        t = transform[ XMLlib.findOffset(transform,'rotate(',0): ]
        d.textRotation =  XMLlib.splitMultiSep(t, ', ')[0]
        debugPrint(3, 'd.textRotation %s' % d.textRotation)
    else:
        d.textRotation = None
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview( d, moveTextSvg, placeText )
Пример #36
0
def MoveDimensionText( event, referer, elementXML, elementParms, elementViewObject ):
    d.dimToEdit = elementViewObject    
    d.elementXML = elementXML
    debugPrint(2, 'moving %s' % elementViewObject.Name)
    if elementXML.parms.has_key('transform'):
        transform = elementXML.parms['transform']
        t = transform[ XMLlib.findOffset(transform,'rotate(',0): ]
        d.textRotation =  XMLlib.splitMultiSep(t, ', ')[0]
        debugPrint(3, 'd.textRotation %s' % d.textRotation)
    else:
        d.textRotation = None
    selectionOverlay.hideSelectionGraphicsItems()
    previewDimension.initializePreview( d, moveTextSvg, placeText )
Пример #37
0
 def Activated(self):
     if not drawing_dimensioning_installed:
         QtGui.QMessageBox.critical( QtGui.qApp.activeWindow(), 'drawing dimensioning wb required', 'the parts list feature requires the drawing dimensioning wb (https://github.com/hamish2014/FreeCAD_drawing_dimensioning/network)' )
         return
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     dimensioning.activate( V )
     P = PartsList()
     for obj in FreeCAD.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject(obj)
     dimensioning.partsList = P
     previewDimension.initializePreview( V, clickEvent, hoverEvent )
def selectDimensioningPoint( event, referer, elementXML, elementParms, elementViewObject ):
    x, y = elementParms['x'], elementParms['y']
    referer.lockSelection()
    if dimensioning.stage == 0: #then selectPoint1
        dimensioning.point1 =  x,y
        debugPrint(2, 'point1 set to x=%3.1f y=%3.1f' % (x,y))
        dimensioning.stage = 1
    else:
        dimensioning.point2 =  x,y
        debugPrint(2, 'point2 set to x=%3.1f y=%3.1f' % (x,y))
        dimensioning.stage = 2 
        dimensioning.dimScale = 1/elementXML.rootNode().scaling()
        selectionOverlay.hideSelectionGraphicsItems()
        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
Пример #39
0
 def Activated(self):
     if not drawing_dimensioning_installed:
         QtGui.QMessageBox.critical( QtGui.qApp.activeWindow(), 'drawing dimensioning wb required', 'the parts list feature requires the drawing dimensioning wb (https://github.com/hamish2014/FreeCAD_drawing_dimensioning/network)' )
         return
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     dimensioning.activate( V )
     P = PartsList()
     for obj in FreeCAD.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject(obj)
     dimensioning.partsList = P
     P.svg(0,0) #calling here as once inside previewRect, error trapping difficult...
     previewDimension.initializePreview( V, clickEvent, hoverEvent )
Пример #40
0
 def Activated(self):
     if not drawing_dimensioning_installed:
         QtGui.QMessageBox.critical( QtGui.qApp.activeWindow(), 'drawing dimensioning wb required', 'the parts list feature requires the drawing dimensioning wb (https://github.com/hamish2014/FreeCAD_drawing_dimensioning)' )
         return
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     dimensioningTracker.activate( V )
     P = PartsList()
     for obj in FreeCAD.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject(obj)
     dimensioningTracker.partsList = P
     
     dimensioningTracker.taskPanelDialog =  PartsListTaskDialog()
     FreeCADGui.Control.showDialog( dimensioningTracker.taskPanelDialog )
     previewDimension.initializePreview( dimensioningTracker, partsListSvg, clickHandler )
 def accept(self):
     try:
         widgets = dict([c.objectName(), c] for c in self.children())
         self.hide()
         dimensioning.upper = widgets['upperLineEdit'].text()
         dimensioning.lower = widgets['lowerLineEdit'].text()
         svgText = dimensioning.svgText
         fontSize = widgets['scaleDoubleSpinBox'].value() * svgText.height()
         dimensioning.textRenderer = SvgTextRenderer(
             font_family=svgText.font_family,
             fill=svgText.fill,
             font_size=fontSize)
         previewDimension.initializePreview(dimensioning.drawingVars,
                                            clickEvent, hoverEvent)
     except:
         errorMessagebox_with_traceback()
def selectDimensioningPoint(event, referer, elementXML, elementParms,
                            elementViewObject):
    crudeDebuggerPrint(
        '''linearDimension.py:9  	    x, y = elementParms['x'], elementParms['y'] '''
    )
    x, y = elementParms['x'], elementParms['y']
    crudeDebuggerPrint(
        '''linearDimension.py:10  	    referer.lockSelection() ''')
    referer.lockSelection()
    crudeDebuggerPrint(
        '''linearDimension.py:11  	    if dimensioning.stage == 0: #then selectPoint1 '''
    )
    if dimensioning.stage == 0:  #then selectPoint1
        crudeDebuggerPrint(
            '''linearDimension.py:12  	        dimensioning.point1 =  x,y ''')
        dimensioning.point1 = x, y
        crudeDebuggerPrint(
            '''linearDimension.py:13  	        debugPrint(2, 'point1 set to x=%3.1f y=%3.1f' % (x,y)) '''
        )
        debugPrint(2, 'point1 set to x=%3.1f y=%3.1f' % (x, y))
        crudeDebuggerPrint(
            '''linearDimension.py:14  	        dimensioning.stage = 1 ''')
        dimensioning.stage = 1
    else:
        crudeDebuggerPrint(
            '''linearDimension.py:16  	        dimensioning.point2 =  x,y ''')
        dimensioning.point2 = x, y
        crudeDebuggerPrint(
            '''linearDimension.py:17  	        debugPrint(2, 'point2 set to x=%3.1f y=%3.1f' % (x,y)) '''
        )
        debugPrint(2, 'point2 set to x=%3.1f y=%3.1f' % (x, y))
        crudeDebuggerPrint(
            '''linearDimension.py:18  	        dimensioning.stage = 2 ''')
        dimensioning.stage = 2
        crudeDebuggerPrint(
            '''linearDimension.py:19  	        dimensioning.dimScale = 1/elementXML.rootNode().scaling() '''
        )
        dimensioning.dimScale = 1 / elementXML.rootNode().scaling()
        crudeDebuggerPrint(
            '''linearDimension.py:20  	        selectionOverlay.hideSelectionGraphicsItems() '''
        )
        selectionOverlay.hideSelectionGraphicsItems()
        crudeDebuggerPrint(
            '''linearDimension.py:21  	        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview ) '''
        )
        previewDimension.initializePreview(dimensioning.drawingVars,
                                           clickFunPreview, hoverFunPreview)
Пример #43
0
 def Activated(self):
     if not drawing_dimensioning_installed:
         QtGui.QMessageBox.critical( QtGui.qApp.activeWindow(), 'drawing dimensioning wb required', 'the parts list feature requires the drawing dimensioning wb (https://github.com/hamish2014/FreeCAD_drawing_dimensioning)' )
         return
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     dimensioningTracker.activate( V )
     dimensioningTracker.dialogIconPath = ':/assembly2/icons/partsList.svg'
     P = PartsList()
     for obj in FreeCAD.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject(obj)
     dimensioningTracker.partsList = P
     
     dimensioningTracker.taskPanelDialog =  PartsListTaskDialog()
     FreeCADGui.Control.showDialog( dimensioningTracker.taskPanelDialog )
     previewDimension.initializePreview( dimensioningTracker, partsListSvg, clickHandler )
Пример #44
0
 def Activated(self):
     if not drawing_dimensioning_installed:
         QtGui.QMessageBox.critical( QtGui.qApp.activeWindow(), 'drawing dimensioning wb required', 'the parts list feature requires the drawing dimensioning wb (https://github.com/hamish2014/FreeCAD_drawing_dimensioning). Release from 12 April 2016 or later required.' )
         return
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     d.activate( V, dialogIconPath= ':/assembly2/icons/partsList.svg')
     P = PartsList()
     for obj in FreeCAD.ActiveDocument.Objects:
         if 'importPart' in obj.Content:
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             P.addObject( PartListEntry(obj) )
     d.partsList = P
     for pref in d.preferences:
         pref.dimensioningProcess = d #required to be compadible with drawing dimensioning
     d.taskDialog =  PartsListTaskDialog()
     FreeCADGui.Control.showDialog( d.taskDialog )
     previewDimension.initializePreview( d, table_dd.table_preview, parts_list_clickHandler )
def selectFun(  event, referer, elementXML, elementParms, elementViewObject ):
    crudeDebuggerPrint('''circularDimension.py:9  	    x,y = elementParms['x'], elementParms['y'] ''')
    x,y = elementParms['x'], elementParms['y']
    crudeDebuggerPrint('''circularDimension.py:10  	    dimensioning.point1 = x, y ''')
    dimensioning.point1 = x, y
    crudeDebuggerPrint('''circularDimension.py:11  	    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x,y)) ''')
    debugPrint(2, 'center selected at x=%3.1f y=%3.1f' % (x,y))
    crudeDebuggerPrint('''circularDimension.py:12  	    dimensioning.radius = elementParms['r'] ''')
    dimensioning.radius = elementParms['r']
    crudeDebuggerPrint('''circularDimension.py:13  	    dimensioning.dimScale = 1/elementXML.rootNode().scaling() ''')
    dimensioning.dimScale = 1/elementXML.rootNode().scaling()
    crudeDebuggerPrint('''circularDimension.py:14  	    dimensioning.stage = 1 ''')
    dimensioning.stage = 1
    crudeDebuggerPrint('''circularDimension.py:15  	    selectionOverlay.hideSelectionGraphicsItems() ''')
    selectionOverlay.hideSelectionGraphicsItems()
    crudeDebuggerPrint('''circularDimension.py:16  	    previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview ) ''')
    previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview )
def AddToleranceToText( event, referer, elementXML, elementParms, elementViewObject ):
    try :
        d.dimToEdit = elementViewObject  
        d.elementXML = elementXML
        selectionOverlay.hideSelectionGraphicsItems()
        svgText = SvgTextParser( elementXML.XML[elementXML.pStart:elementXML.pEnd] )
        d.svgText = svgText
        debugPrint(3,'svgText.width() %s' % svgText.width())
        debugPrint(3,'adding tolerance %s' % repr(elementViewObject.Name))
        d.textRenderer = SvgTextRenderer(
            font_family = svgText.font_family,
            fill = svgText.fill,
            font_size = svgText.font_size
            )
        previewDimension.initializePreview(d, toleranceAdd_preview, toleranceAdd_clickHandler)
    except:
        errorMessagebox_with_traceback()
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    referer.lockSelection()
    if isinstance(referer, selectionOverlay.LineSelectionGraphicsItem):
        x1, y1, x2, y2 = [elementParms[k] for k in ['x1', 'y1', 'x2', 'y2']]
        debugPrint(
            2, 'selecting line %i with x1=%3.1f y1=%3.1f, x2=%3.1f y2=%3.1f' %
            (dimensioning.stage, x1, y1, x2, y2))
        if dimensioning.stage == 0:  #then select line1
            dimensioning.line1 = x1, y1, x2, y2
            dimensioning.stage = 1
            for gi in selectionOverlay.graphicItems:
                if isinstance(gi, selectionOverlay.PointSelectionGraphicsItem):
                    gi.hide()
        else:
            dimensioning.line2 = x1, y1, x2, y2
            dimensioning.stage = 2
            selectionOverlay.hideSelectionGraphicsItems()
            previewDimension.initializePreview(dimensioning.drawingVars,
                                               clickFunPreview,
                                               hoverFunPreview)
    else:  #user selecting 3 points
        x, y = elementParms['x'], elementParms['y']
        debugPrint(
            2, 'point %i selected at x=%3.1f y=%3.1f' %
            (dimensioning.stage + 1, x, y))
        if dimensioning.stage == 0:
            dimensioning.pointStart = x, y
            dimensioning.stage = 1
            for gi in selectionOverlay.graphicItems:
                if isinstance(gi, selectionOverlay.LineSelectionGraphicsItem):
                    gi.hide()
        elif dimensioning.stage == 1:
            dimensioning.pointCenter = x, y
            dimensioning.stage = 2
        else:
            x_c, y_c = dimensioning.pointCenter
            x1, y1 = dimensioning.pointStart
            x2, y2 = x, y
            dimensioning.line1 = x_c, y_c, x1, y1
            dimensioning.line2 = x_c, y_c, x2, y2
            dimensioning.stage = 2  #hack to allow intergation with dim from 2 line code
            selectionOverlay.hideSelectionGraphicsItems()
            previewDimension.initializePreview(dimensioning.drawingVars,
                                               clickFunPreview,
                                               hoverFunPreview)
Пример #48
0
 def accept( self ):
     debugPrint(3, 'AddTextDialogWidget accept pressed')
     widgets = dict( [c.objectName(), c] for c in self.children() )
     debugPrint(4, 'widgets %s' % widgets)
     if widgets['textLineEdit'].text() == '':
         debugPrint(1, 'Aborting placing empty text.')
         return
     debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text() )
     self.hide()
     dimensioning.text = widgets['textLineEdit'].text()
     widgets['textLineEdit'].setText('')
     dimensioning.fontSize =  widgets['textSizeSpinBox'].value()
     dimensioning.color = widgets['colorLineEdit'].text()
     debugPrint(4,'previewDimension.initializePreview')
     previewDimension.initializePreview(
         dimensioning.drawingVars,
         clickEvent, 
         hoverEvent )
Пример #49
0
def AddToleranceToText(event, referer, elementXML, elementParms,
                       elementViewObject):
    try:
        d.dimToEdit = elementViewObject
        d.elementXML = elementXML
        selectionOverlay.hideSelectionGraphicsItems()
        svgText = SvgTextParser(
            elementXML.XML[elementXML.pStart:elementXML.pEnd])
        d.svgText = svgText
        debugPrint(3, 'svgText.width() %s' % svgText.width())
        debugPrint(3, 'adding tolerance %s' % repr(elementViewObject.Name))
        d.textRenderer = SvgTextRenderer(font_family=svgText.font_family,
                                         fill=svgText.fill,
                                         font_size=svgText.font_size)
        previewDimension.initializePreview(d, toleranceAdd_preview,
                                           toleranceAdd_clickHandler)
    except:
        errorMessagebox_with_traceback()
 def accept(self):
     debugPrint(2, 'AddTextDialogWidget accept pressed')
     widgets = dict([c.objectName(), c] for c in self.children())
     debugPrint(2, 'widgets %s' % widgets)
     if widgets['textLineEdit'].text() == '':
         debugPrint(1, 'Aborting placing empty text.')
         return
     debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text())
     self.hide()
     dimensioning.text = widgets['textLineEdit'].text()
     widgets['textLineEdit'].setText('')
     family = widgets['familyLineEdit'].text()
     size = widgets['sizeLineEdit'].text()
     fill = widgets['colorLineEdit'].text()
     dimensioning.textRenderer = SvgTextRenderer(family, size, fill)
     debugPrint(3, 'textRenderer created')
     debugPrint(3, 'previewDimension.initializePreview')
     previewDimension.initializePreview(dimensioning.drawingVars,
                                        clickEvent, hoverEvent)
 def accept( self ):
     try :
         widgets = dict( [c.objectName(), c] for c in self.children() )
         self.hide()
         dimensioning.upper = widgets['upperLineEdit'].text()
         dimensioning.lower = widgets['lowerLineEdit'].text()
         svgText =  dimensioning.svgText
         fontSize =  widgets['scaleDoubleSpinBox'].value() * svgText.height()
         dimensioning.textRenderer = SvgTextRenderer(
             font_family = svgText.font_family,
             fill = svgText.fill,
             font_size = fontSize
             )
         previewDimension.initializePreview(
             dimensioning.drawingVars,
             clickEvent, 
             hoverEvent )
     except:
         errorMessagebox_with_traceback()
def selectFun(event, referer, elementXML, elementParms, elementViewObject):
    crudeDebuggerPrint(
        '''angularDimension.py:9  	    x1,y1,x2,y2 = [ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ] '''
    )
    x1, y1, x2, y2 = [elementParms[k] for k in ['x1', 'y1', 'x2', 'y2']]
    crudeDebuggerPrint(
        '''angularDimension.py:10  	    debugPrint(2, 'selecting line %i with x1=%3.1f y1=%3.1f, x2=%3.1f y2=%3.1f' % (dimensioning.stage, x1,y1,x2,y2) ) '''
    )
    debugPrint(
        2, 'selecting line %i with x1=%3.1f y1=%3.1f, x2=%3.1f y2=%3.1f' %
        (dimensioning.stage, x1, y1, x2, y2))
    crudeDebuggerPrint(
        '''angularDimension.py:11  	    referer.lockSelection() ''')
    referer.lockSelection()
    crudeDebuggerPrint(
        '''angularDimension.py:12  	    if dimensioning.stage == 0: #then select line1 '''
    )
    if dimensioning.stage == 0:  #then select line1
        crudeDebuggerPrint(
            '''angularDimension.py:13  	        dimensioning.line1 = x1,y1,x2,y2 '''
        )
        dimensioning.line1 = x1, y1, x2, y2
        crudeDebuggerPrint(
            '''angularDimension.py:14  	        dimensioning.stage = 1 ''')
        dimensioning.stage = 1
    else:
        crudeDebuggerPrint(
            '''angularDimension.py:16  	        dimensioning.line2 = x1,y1,x2,y2 '''
        )
        dimensioning.line2 = x1, y1, x2, y2
        crudeDebuggerPrint(
            '''angularDimension.py:17  	        dimensioning.stage = 2 ''')
        dimensioning.stage = 2
        crudeDebuggerPrint(
            '''angularDimension.py:18  	        selectionOverlay.hideSelectionGraphicsItems() '''
        )
        selectionOverlay.hideSelectionGraphicsItems()
        crudeDebuggerPrint(
            '''angularDimension.py:19  	        previewDimension.initializePreview( dimensioning.drawingVars, clickFunPreview, hoverFunPreview ) '''
        )
        previewDimension.initializePreview(dimensioning.drawingVars,
                                           clickFunPreview, hoverFunPreview)
 def Activated(self):
     crudeDebuggerPrint('''partsList.py:86  	        V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads ''')
     V = getDrawingPageGUIVars() #needs to be done before dialog show, else Qt active is dialog and not freecads
     crudeDebuggerPrint('''partsList.py:87  	        dimensioning.activate( V ) ''')
     dimensioning.activate( V )
     crudeDebuggerPrint('''partsList.py:88  	        P = PartsList() ''')
     P = PartsList()
     crudeDebuggerPrint('''partsList.py:89  	        for obj in App.ActiveDocument.Objects: ''')
     for obj in App.ActiveDocument.Objects:
         crudeDebuggerPrint('''partsList.py:90  	            if 'importPart' in obj.Content: ''')
         if 'importPart' in obj.Content:
             crudeDebuggerPrint('''partsList.py:91  	                debugPrint(3, 'adding %s to parts list' % obj.Name) ''')
             debugPrint(3, 'adding %s to parts list' % obj.Name)
             crudeDebuggerPrint('''partsList.py:92  	                P.addObject(obj) ''')
             P.addObject(obj)
     crudeDebuggerPrint('''partsList.py:93  	        dimensioning.partsList = P ''')
     dimensioning.partsList = P
     crudeDebuggerPrint('''partsList.py:94  	        P.svg(0,0) #calling here as once inside previewRect, error trapping difficult... ''')
     P.svg(0,0) #calling here as once inside previewRect, error trapping difficult...
     crudeDebuggerPrint('''partsList.py:95  	        previewDimension.initializePreview( V, clickEvent, hoverEvent ) ''')
     previewDimension.initializePreview( V, clickEvent, hoverEvent )
Пример #54
0
def stack_selectDimensioningPoint( event, referer, elementXML, elementParms, elementViewObject ):
    viewInfo = selectionOverlay.DrawingsViews_info[elementViewObject.Name]
    if len(d.selections) == 0:
        if isinstance(referer, selectionOverlay.PointSelectionGraphicsItem):
            d.selections.append( PointSelection( elementParms, elementXML, viewInfo ) )
            d.selections[-1].condensed_args = True
            selectionOverlay.hideSelectionGraphicsItems(
                lambda gi: isinstance(gi, selectionOverlay.LineSelectionGraphicsItem)
                )
        else:
            d.selections.append( LineSelection( elementParms, elementXML, viewInfo ) )
            linearDimension_parallels_hide_non_parallel( elementParms, elementViewObject)
        d.viewScale = 1 / elementXML.rootNode().scaling()
    else:
        if isinstance(referer, selectionOverlay.PointSelectionGraphicsItem):
            d.selections.append( PointSelection( elementParms, elementXML, viewInfo ) )
            d.selections[-1].condensed_args = True
        else:
            d.selections.append( LineSelection( elementParms, elementXML, viewInfo ) )
        if len(d.selections) == 2:
            previewDimension.initializePreview(d, linearDimension_stack_preview, linearDimension_stack_clickHandler)
 def accept( self ):
     debugPrint(2, 'AddTextDialogWidget accept pressed')
     widgets = dict( [c.objectName(), c] for c in self.children() )
     debugPrint(2, 'widgets %s' % widgets)
     if widgets['textLineEdit'].text() == '':
         debugPrint(1, 'Aborting placing empty text.')
         return
     debugPrint(2, 'Placing "%s"' % widgets['textLineEdit'].text() )
     self.hide()
     dimensioning.text = widgets['textLineEdit'].text()
     widgets['textLineEdit'].setText('')
     family = widgets['familyLineEdit'].text()
     size = widgets['sizeLineEdit'].text()
     fill = widgets['colorLineEdit'].text()
     dimensioning.textRenderer = SvgTextRenderer( family, size, fill )
     debugPrint(3,'textRenderer created')
     debugPrint(3,'previewDimension.initializePreview')
     previewDimension.initializePreview(
         dimensioning.drawingVars,
         clickEvent, 
         hoverEvent )
def stack_selectDimensioningPoint( event, referer, elementXML, elementParms, elementViewObject ):
    if d.stage == 0:
        if isinstance(referer,selectionOverlay.PointSelectionGraphicsItem):
            d.reference_type = 'point'
            d.selections = [[elementParms['x'], elementParms['y']]]
            selectionOverlay.hideSelectionGraphicsItems(
                lambda gi: isinstance(gi,  selectionOverlay.LineSelectionGraphicsItem)
                )
        else:
            d.reference_type = 'line'
            d.selections = [[ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ]]
            linearDimension_parallels_hide_non_parallel( elementParms, elementViewObject)
        d.stage = 1
        d.viewScale = 1 / elementXML.rootNode().scaling()
    else:
        if isinstance(referer,selectionOverlay.PointSelectionGraphicsItem):
            d.selections.append( [elementParms['x'], elementParms['y']] )
        else:
            d.selections.append( [ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ] )
        if len(d.selections) == 2:
            previewDimension.initializePreview( d, linearDimension_stack_preview, linearDimension_stack_clickHandler )
def selectFun(  event, referer, elementXML, elementParms, elementViewObject ):
    if not isinstance(referer,selectionOverlay.LineSelectionGraphicsItem):
        x,y = elementParms['x'], elementParms['y']
        d.args = [[x, y]]
        d.stage = 1
        d.dimScale = elementXML.rootNode().scaling()
        debugPrint(3, 'center selected at x=%3.1f y=%3.1f scale %3.1f' % (x,y, d.dimScale))
        selectionOverlay.hideSelectionGraphicsItems()
        previewDimension.initializePreview( d, centerLine_preview , centerLine_clickHandler)
    else:
        if d.stage == 0:
            d.line1 = [ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ]
            d.stage = 1
            linearDimension_parallels_hide_non_parallel( elementParms, elementViewObject)
        else:
            x1, y1, x2, y2 = d.line1
            x3, y3, x4, y4 = [ elementParms[k] for k in [ 'x1', 'y1', 'x2', 'y2' ] ]
            d.args = [[0.25*(x1 + x2 + x3 + x4), 0.25*(y1 + y2 + y3 + y4)]]
            d.stage = 1
            d.dimScale = elementXML.rootNode().scaling()
            selectionOverlay.hideSelectionGraphicsItems()
            previewDimension.initializePreview( d, centerLine_preview , centerLine_clickHandler)