• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python qad_rubberband.QadRubberBand类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中qad_rubberband.QadRubberBand的典型用法代码示例。如果您正苦于以下问题:Python QadRubberBand类的具体用法?Python QadRubberBand怎么用?Python QadRubberBand使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了QadRubberBand类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: __init__

   def __init__(self, plugIn, asToolForMPolygon = False):
      QadGetPoint.__init__(self, plugIn)

      self.firstPt = None
      self.mode = None

      self.asToolForMPolygon = asToolForMPolygon # se True significa che è usato per disegnare un poligono
      if self.asToolForMPolygon:
         self.__polygonRubberBand = QadRubberBand(self.plugIn.canvas, True)
         self.endVertex = None # punta al vertice iniziale e finale del poligono di QadPLINECommandClass
      else:
         self.__polylineTraceRubberBand = QadRubberBand(self.plugIn.canvas, True) # da usare in trace di un oggetto esistente
开发者ID:gam17,项目名称:QAD,代码行数:12,代码来源:qad_pline_maptool.py


示例2: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      dimStyle = None
      self.dimPt1 = None
      self.dimPt2 = None
      self.dimCircle = None
      
      self.forcedTextRot = None # rotazione del testo di quota
      self.measure = None # misura della quota (se None viene calcolato)
      self.preferredAlignment = QadDimStyleAlignmentEnum.HORIZONTAL # allineamento della linea di quota
      self.forcedDimLineAlignment = None # allineamento della linea di quota forzato
      self.forcedDimLineRot = 0.0 # rotazione della linea di quota forzato
      
      self.__rubberBand = QadRubberBand(self.canvas)      
                              
      
      self.centerPt = None
      self.radius = None
      self.dimPt1 = None
      self.dimPt2 = None
      self.firstDiamPt = None
      self.tan1 = None
      self.tan2 = None
      self.startPtForRadius = None
      self.geomType = QGis.Polygon
开发者ID:lao-tseu-is-alive,项目名称:QAD,代码行数:26,代码来源:qad_dim_maptool.py


示例3: __init__

   def __init__(self, plugIn, asToolForMPolygon = False):
      QadGetPoint.__init__(self, plugIn)
                        
      self.arcStartPt = None
      self.arcSecondPt = None
      self.arcEndPt = None
      self.arcCenterPt = None
      self.arcTanOnStartPt = None
      self.arcAngle = None
      self.arcStartPtForRadius = None
      self.arcRadius = None
      self.__rubberBand = QadRubberBand(self.canvas)

      self.asToolForMPolygon = asToolForMPolygon # se True significa che è usato per disegnare un poligono
      if self.asToolForMPolygon:
         self.__polygonRubberBand = QadRubberBand(self.plugIn.canvas, True)
         self.endVertex = None # punta al vertice iniziale e finale del poligono di QadPLINECommandClass
开发者ID:lao-tseu-is-alive,项目名称:QAD,代码行数:17,代码来源:qad_arc_maptool.py


示例4: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.basePt = None
    self.entitySet = QadEntitySet()
    self.seriesLen = 0
    self.adjust = False
    self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:tudorbarascu,项目名称:QAD,代码行数:8,代码来源:qad_copy_maptool.py


示例5: __init__

    def __init__(self, plugIn):
        QadGetPoint.__init__(self, plugIn)

        self.firstPt = None
        self.tan1 = None
        self.per1 = None
        self.geom1 = None
        self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:gam17,项目名称:QAD,代码行数:8,代码来源:qad_line_maptool.py


示例6: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.basePt = None
    self.Pt1ReferenceLen = None
    self.ReferenceLen = 0
    self.Pt1NewLen = None
    self.entitySet = QadEntitySet()
    self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:ermati,项目名称:QAD,代码行数:9,代码来源:qad_scale_maptool.py


示例7: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      self.OpMode = None # "DElta" o "Percent" o "Total" o "DYnamic"
      self.OpType = None # "length" o "Angle"
      self.value = None
      self.tmpLinearObjectList = None

      self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:gam17,项目名称:QAD,代码行数:9,代码来源:qad_lengthen_maptool.py


示例8: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.startPtForBufferWidth = None
    # vedi il numero minimo di punti affinché venga riconosciuto un arco o un cerchio
    # nei files qad_arc.py e qad_circle.py
    self.segments = 12
    self.entitySet = QadEntitySet()
    self.geomType = QGis.Polygon
    self.__rubberBand = QadRubberBand(self.canvas, True)
开发者ID:resistor4u,项目名称:QAD,代码行数:10,代码来源:qad_mbuffer_maptool.py


示例9: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      self.firstPt = None
                       
      self.layer = None 
      self.linearObjectList = qad_utils.QadLinearObjectList()
      self.tolerance2ApproxCurve = None
      self.vertexAt = 0
      self.after = True 
      self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:ermati,项目名称:QAD,代码行数:11,代码来源:qad_pedit_maptool.py


示例10: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.firstPt = None
    self.layer = None
    self.subGeom = None
    self.offSet = 0
    self.lastOffSetOnLeftSide = 0
    self.lastOffSetOnRightSide = 0
    self.gapType = 0     
    self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:ermati,项目名称:QAD,代码行数:11,代码来源:qad_offset_maptool.py


示例11: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.arcStartPt = None
    self.arcSecondPt = None
    self.arcEndPt = None
    self.arcCenterPt = None
    self.arcTanOnStartPt = None
    self.arcAngle = None
    self.arcStartPtForRadius = None
    self.arcRadius = None
    self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:resistor4u,项目名称:QAD,代码行数:12,代码来源:qad_arc_maptool.py


示例12: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)
      self.mode = None    
                        
      self.sideNumber = None
      self.centerPt = None
      self.constructionModeByCenter = None   
      self.firstEdgePt = None
      self.vertices = []

      self.__rubberBand = QadRubberBand(self.canvas, True)   
      self.geomType = QGis.Polygon
开发者ID:gam17,项目名称:QAD,代码行数:12,代码来源:qad_polygon_maptool.py


示例13: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.centerPt = None
    self.radius = None
    self.firstPt = None
    self.secondPt = None
    self.firstDiamPt = None
    self.tan1 = None
    self.tan2 = None
    self.startPtForRadius = None
    self.__rubberBand = QadRubberBand(self.canvas)
    self.geomType = QGis.Polygon
开发者ID:ermati,项目名称:QAD,代码行数:13,代码来源:qad_circle_maptool.py


示例14: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)
                        
      self.firstCorner = None
      self.secondCorner = None
      self.basePt = None
      self.gapType = 0 # 0 = Angoli retti; 1 = Raccorda i segmenti; 2 = Cima i segmenti
      self.gapValue1 = 0 # se gapType = 1 -> raggio di curvatura; se gapType = 2 -> prima distanza di cimatura
      self.gapValue2 = 0 # se gapType = 2 -> seconda distanza di cimatura
      self.rot = 0
      self.vertices = []

      self.__rubberBand = QadRubberBand(self.canvas, True)   
      self.geomType = QGis.Polygon
开发者ID:geosim,项目名称:QAD,代码行数:14,代码来源:qad_rectangle_maptool.py


示例15: __init__

   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      self.filletMode = 1 # modalità di raccordo; 1=Taglia-estendi, 2=Non taglia-estendi
      self.radius = 0.0
      
      self.layer = None 
      self.linearObjectList = qad_utils.QadLinearObjectList()
      self.partAt1 = 0
      self.vertexAt1 = 0
                       
      self.tolerance2ApproxCurve = None

      self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:resistor4u,项目名称:QAD,代码行数:14,代码来源:qad_fillet_maptool.py


示例16: __init__

    def __init__(self, plugIn):
        QadGetPoint.__init__(self, plugIn)

        dimStyle = None
        self.dimPt1 = None
        self.dimPt2 = None
        self.dimCircle = None

        self.dimArc = None  # per quotatura arco

        self.forcedTextRot = None  # rotazione del testo di quota
        self.measure = None  # misura della quota (se None viene calcolato)
        self.preferredAlignment = QadDimStyleAlignmentEnum.HORIZONTAL  # allineamento della linea di quota
        self.forcedDimLineAlignment = None  # allineamento della linea di quota forzato
        self.forcedDimLineRot = 0.0  # rotazione della linea di quota forzato
        self.leader = None  # per disegnare la linea direttrice nella quotatura arco

        self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:gam17,项目名称:QAD,代码行数:18,代码来源:qad_dim_maptool.py


示例17: Qad_fillet_maptool

class Qad_fillet_maptool(QadGetPoint):
    
   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      self.filletMode = 1 # modalità di raccordo; 1=Taglia-estendi, 2=Non taglia-estendi
      self.radius = 0.0
      
      self.layer = None 
      self.linearObjectList = qad_utils.QadLinearObjectList()
      self.partAt1 = 0
      self.vertexAt1 = 0
                       
      self.tolerance2ApproxCurve = None

      self.__rubberBand = QadRubberBand(self.canvas)


   def hidePointMapToolMarkers(self):
      QadGetPoint.hidePointMapToolMarkers(self)
      self.__rubberBand.hide()

   def showPointMapToolMarkers(self):
      QadGetPoint.showPointMapToolMarkers(self)
      self.__rubberBand.show()
                             
   def clear(self):
      QadGetPoint.clear(self)
      self.__rubberBand.reset()
      self.mode = None

   def setEntityInfo(self, layer, featureId, linearObjectList, partAt, pointAt):
      """
      Setta self.entity, self.atSubGeom, self.linearObjectList, self.partAt, self.pointAt
      di primo o del secondo oggetto da raccordare (vedi <firstObj>)
      """
      self.layer = layer
      self.featureId = featureId
      self.linearObjectList.set(linearObjectList)
      self.partAt = partAt
      self.pointAt = pointAt

      self.tolerance2ApproxCurve = QadVariables.get(QadMsg.translate("Environment variables", "TOLERANCE2APPROXCURVE"))

   def canvasMoveEvent(self, event):
      QadGetPoint.canvasMoveEvent(self, event)
      
      self.__rubberBand.reset()
      tmpLinearObjectList = None
       
      # si richiede la selezione del secondo oggetto
      if self.mode == Qad_fillet_maptool_ModeEnum.ASK_FOR_SECOND_LINESTRING:
         if self.tmpEntity.isInitialized():                                                         
            # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy
            geom = self.layerToMapCoordinates(self.tmpEntity.layer, self.tmpEntity.getGeometry())
            
            # ritorna una tupla (<The squared cartesian distance>,
            #                    <minDistPoint>
            #                    <afterVertex>
            #                    <leftOf>)
            dummy = qad_utils.closestSegmentWithContext(self.tmpPoint, geom)
            if dummy[2] is not None:
               # ritorna la sotto-geometria al vertice <atVertex> e la sua posizione nella geometria (0-based)
               subGeom, atSubGeom = qad_utils.getSubGeomAtVertex(geom, dummy[2])               
               tmpLinearObjectList = qad_utils.QadLinearObjectList()               
               tmpLinearObjectList.fromPolyline(subGeom.asPolyline())
               
               # la funzione ritorna una lista con (<minima distanza al quadrato>,
               #                                    <punto più vicino>
               #                                    <indice della parte più vicina>       
               #                                    <"a sinistra di">)
               dummy = tmpLinearObjectList.closestPartWithContext(self.tmpPoint)
               tmpPartAt = dummy[2]
               tmpPointAt = dummy[1]
               
               # stessa entità e stessa parte
               if self.layer.id() == self.tmpEntity.layer.id() and \
                  self.featureId == self.tmpEntity.featureId and \
                  self.partAt == tmpPartAt:
                  return

               # uso il crs del canvas per lavorare con coordinate piane xy
               epsg = self.canvas.mapRenderer().destinationCrs().authid()
               
               if self.tmpShiftKey == True: # tasto shift premuto durante il movimento del mouse
                  # filletMode = 1 # modalità di raccordo; 1=Taglia-estendi
                  # raggio = 0
                  res = qad_utils.getFilletLinearObjectList(self.linearObjectList, self.partAt, self.pointAt, \
                                                            tmpLinearObjectList, tmpPartAt, tmpPointAt,\
                                                            1, 0, epsg)
               else:               
                  res = qad_utils.getFilletLinearObjectList(self.linearObjectList, self.partAt, self.pointAt, \
                                                            tmpLinearObjectList, tmpPartAt, tmpPointAt,\
                                                            self.filletMode, self.radius, epsg)
               if res is None: # raccordo non possibile
                  return
               tmpLinearObjectList = res[0]
                        
      # si richiede la selezione della polilinea
      elif self.mode == Qad_fillet_maptool_ModeEnum.ASK_FOR_POLYLINE:
#.........这里部分代码省略.........
开发者ID:resistor4u,项目名称:QAD,代码行数:101,代码来源:qad_fillet_maptool.py


示例18: __init__

 def __init__(self, plugIn):
    QadGetPoint.__init__(self, plugIn)
                      
    self.basePt = None
    self.entitySet = QadEntitySet()
    self.__rubberBand = QadRubberBand(self.canvas)
开发者ID:ermati,项目名称:QAD,代码行数:6,代码来源:qad_move_maptool.py


示例19: Qad_lengthen_maptool

class Qad_lengthen_maptool(QadGetPoint):
    
   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)

      self.OpMode = None # "DElta" o "Percent" o "Total" o "DYnamic"
      self.OpType = None # "length" o "Angle"
      self.value = None
      self.tmpLinearObjectList = None

      self.__rubberBand = QadRubberBand(self.canvas)


   def hidePointMapToolMarkers(self):
      QadGetPoint.hidePointMapToolMarkers(self)
      self.__rubberBand.hide()

   def showPointMapToolMarkers(self):
      QadGetPoint.showPointMapToolMarkers(self)
      self.__rubberBand.show()
                             
   def clear(self):
      QadGetPoint.clear(self)
      self.__rubberBand.reset()
      self.mode = None

   def setInfo(self, entity, point):
      # setta: self.layer, self.tmpLinearObjectList e self.move_startPt

      if self.tmpLinearObjectList is not None:
         del self.tmpLinearObjectList
         self.tmpLinearObjectList = None
      
      if entity.isInitialized() == False:
         return False
         
      self.layer = entity.layer
      transformedPt = self.canvas.mapSettings().mapToLayerCoordinates(self.layer, point)
      geom = entity.getGeometry()
                  
      # ritorna una tupla (<The squared cartesian distance>,
      #                    <minDistPoint>
      #                    <afterVertex>
      #                    <leftOf>)
      dummy = qad_utils.closestSegmentWithContext(transformedPt, geom)
      if dummy[2] is None:
         return False
      # ritorna la sotto-geometria al vertice <atVertex> e la sua posizione nella geometria (0-based)
      subGeom, atSubGeom = qad_utils.getSubGeomAtVertex(geom, dummy[2])               
      self.tmpLinearObjectList = qad_utils.QadLinearObjectList()               
      self.tmpLinearObjectList.fromPolyline(subGeom.asPolyline())
      
      if qad_utils.getDistance(self.tmpLinearObjectList.getStartPt(), transformedPt) <= \
         qad_utils.getDistance(self.tmpLinearObjectList.getEndPt(), transformedPt):
         # si allunga/accorcia dal punto iniziale                 
         self.move_startPt = True
      else:
         # si allunga dal punto finale
         self.move_startPt = False
      return True


   def canvasMoveEvent(self, event):
      QadGetPoint.canvasMoveEvent(self, event)
      
      self.__rubberBand.reset()
      res = False
       
      # si richiede la selezione dell'oggetto da allungare
      if self.mode == Qad_lengthen_maptool_ModeEnum.ASK_FOR_OBJ_TO_LENGTHEN:
         if self.tmpEntity.isInitialized():
            if self.setInfo(self.tmpEntity, self.tmpPoint) == False:
               return

            if self.OpMode == "DElta":
               newTmpLinearObjectList = qad_utils.QadLinearObjectList(self.tmpLinearObjectList)
               if self.OpType == "length":
                  res = newTmpLinearObjectList.lengthen_delta(self.move_startPt, self.value)
               elif self.OpType == "Angle":
                  res = newTmpLinearObjectList.lengthen_deltaAngle(self.move_startPt, self.value)
            elif self.OpMode == "Percent":
               newTmpLinearObjectList = qad_utils.QadLinearObjectList(self.tmpLinearObjectList)
               value = newTmpLinearObjectList.length() * self.value / 100
               value = value - newTmpLinearObjectList.length()
               res = newTmpLinearObjectList.lengthen_delta(self.move_startPt, value)
            elif self.OpMode == "Total":
               newTmpLinearObjectList = qad_utils.QadLinearObjectList(self.tmpLinearObjectList)
               if self.OpType == "length":
                  value = self.value - self.tmpLinearObjectList.length()
                  res = newTmpLinearObjectList.lengthen_delta(self.move_startPt, value)
               elif self.OpType == "Angle":                     
                  if newTmpLinearObjectList.qty() == 1:
                     linearObject = newTmpLinearObjectList.getLinearObjectAt(0)
                     if linearObject.isArc() == True: # se è un arco
                        value = self.value - linearObject.getArc().totalAngle()
                        res = newTmpLinearObjectList.lengthen_deltaAngle(self.move_startPt, value)
               
      # si richiede un punto per la nuova estremità
      elif self.mode == Qad_lengthen_maptool_ModeEnum.ASK_FOR_DYNAMIC_POINT:
         newTmpLinearObjectList = qad_utils.QadLinearObjectList(self.tmpLinearObjectList)
#.........这里部分代码省略.........
开发者ID:gam17,项目名称:QAD,代码行数:101,代码来源:qad_lengthen_maptool.py


示例20: Qad_rectangle_maptool

class Qad_rectangle_maptool(QadGetPoint):
    
   def __init__(self, plugIn):
      QadGetPoint.__init__(self, plugIn)
                        
      self.firstCorner = None
      self.secondCorner = None
      self.basePt = None
      self.gapType = 0 # 0 = Angoli retti; 1 = Raccorda i segmenti; 2 = Cima i segmenti
      self.gapValue1 = 0 # se gapType = 1 -> raggio di curvatura; se gapType = 2 -> prima distanza di cimatura
      self.gapValue2 = 0 # se gapType = 2 -> seconda distanza di cimatura
      self.rot = 0
      self.vertices = []

      self.__rubberBand = QadRubberBand(self.canvas, True)   
      self.geomType = QGis.Polygon

   def hidePointMapToolMarkers(self):
      QadGetPoint.hidePointMapToolMarkers(self)
      self.__rubberBand.hide()

   def showPointMapToolMarkers(self):
      QadGetPoint.showPointMapToolMarkers(self)
      self.__rubberBand.show()
                             
   def clear(self):
      QadGetPoint.clear(self)
      self.__rubberBand.reset()
      self.mode = None                
      
   def canvasMoveEvent(self, event):
      QadGetPoint.canvasMoveEvent(self, event)
      
      self.__rubberBand.reset()

      result = False
      del self.vertices[:] # svuoto la lista
               
      # noto il primo angolo si richiede l'angolo opposto
      if self.mode == Qad_rectangle_maptool_ModeEnum.FIRST_CORNER_KNOWN_ASK_FOR_SECOND_CORNER:
         self.vertices.extend(qad_utils.getRectByCorners(self.firstCorner, self.tmpPoint, self.rot, \
                                                         self.gapType, self.gapValue1, self.gapValue2))
         result = True

      if result == True:
         if self.vertices is not None:
            if self.geomType == QGis.Polygon:
               self.__rubberBand.setPolygon(self.vertices)
            else:
               self.__rubberBand.setLine(self.vertices)            
         
   def activate(self):
      QadGetPoint.activate(self)            
      self.__rubberBand.show()

   def deactivate(self):
      try: # necessario perché se si chiude QGIS parte questo evento nonostante non ci sia più l'oggetto maptool !
         QadGetPoint.deactivate(self)
         self.__rubberBand.hide()
      except:
         pass

   def setMode(self, mode):
      self.mode = mode
      # noto niente si richiede il primo angolo
      if self.mode == Qad_rectangle_maptool_ModeEnum.NONE_KNOWN_ASK_FOR_FIRST_CORNER:
         self.setDrawMode(QadGetPointDrawModeEnum.NONE)
      # noto il primo angolo si richiede l'angolo opposto
      elif self.mode == Qad_rectangle_maptool_ModeEnum.FIRST_CORNER_KNOWN_ASK_FOR_SECOND_CORNER:
         self.setDrawMode(QadGetPointDrawModeEnum.NONE)
开发者ID:geosim,项目名称:QAD,代码行数:70,代码来源:qad_rectangle_maptool.py



注:本文中的qad_rubberband.QadRubberBand类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python qad_ssget_cmd.QadSSGetClass类代码示例发布时间:2022-05-26
下一篇:
Python qad_pline_cmd.QadPLINECommandClass类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap