1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

[recherche] coordonnes des points d'une polyline

Discussion dans 'CamBam' créé par braabu, 30 Avril 2016.

  1. braabu

    braabu Nouveau

    Messages:
    24
    Inscrit:
    24 Avril 2016
    [recherche] coordonnes des points d'une polyline
    bonjour !

    durant mes recherches sur d'autre thèmes, il m'a semblé passer devant un code pour récupérer les coordonnées des points d'une polyline ? j'ai bien trouvé le code de Maitre dh42 qui porte sur les surfaces , mais plus moyen de remettre la main sur le code pour les polylines ...

    Mon but est de refaire un tracé à partir d'un script. celui ci étant assez complexe, cela me rendrait grand service.

    merci !!
     
  2. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
  3. braabu

    braabu Nouveau

    Messages:
    24
    Inscrit:
    24 Avril 2016
  4. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
  5. braabu

    braabu Nouveau

    Messages:
    24
    Inscrit:
    24 Avril 2016
    [recherche] coordonnes des points d'une polyline
    puis que je suis dans les question, il y a possibilité de sauve le log ? ou de créer un fichier txt ?
     
  6. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
  7. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    [recherche] coordonnes des points d'une polyline
    Re

    tient un script qui écrit à la fois dans la fenêtre de message et qui sauve un fichier texte dans C:\

    il fonctionne sur une sélection de polylignes, une ligne vierge est insérée entre chaque polyligne.

    Code:
    'polyline data to .txt
    ' dh42 04/2016
    
        Sub main()
    
            ThisApplication.ClearLogMessages()
    
            Dim fname As String
    
            fname = "C:\polyligne.txt"
    
            Dim stream As System.IO.StreamWriter = New System.IO.StreamWriter(fname)
    
            Dim ent As Entity
    
            For Each ent In CamBamUI.MainUI.ActiveView.SelectedEntities
    
                If TypeOf ent Is Polyline Then
    
                    'call the sub to scan the polyline
                    WritePolyData(CType(ent, Polyline), stream)
                    ThisApplication.AddLogMessage(vbNewLine)
                    stream.WriteLine(vbNewLine)
    
                End If
    
            Next ent
    
            stream.Close()
    
        End Sub
    
        Sub WritePolyData(p As Polyline, s As System.IO.StreamWriter)
    
            Dim polypoint As Point3F    'XYZ coordinate of a polyline point
            Dim blg As Double   'bulge
    
            'scan the polyline for each item in the PolylineItemList
            For Each it As PolylineItem In p.Points
    
                polypoint = it.Point
                blg = it.Bulge
    
                ThisApplication.AddLogMessage(polypoint.X & " " & polypoint.Y & " " & polypoint.Z & " " & blg)
    
                s.WriteLine(polypoint.X & " " & polypoint.Y & " " & polypoint.Z & " " & blg)
    
            Next
    
        End Sub
     
    Dernière édition: 30 Avril 2016
  8. braabu

    braabu Nouveau

    Messages:
    24
    Inscrit:
    24 Avril 2016
    [recherche] coordonnes des points d'une polyline
    merci ) je me suis débrouillé entre temps, désolé, j 'ai demandé avant de vraiment chercher, mais mes 1ere tentative n’étaient pas concluante.

    je partage ma petit modification, même si ce n'est qu'une petite modification du script ça peut toujours servir.

    ca liste les points et les écrits dans un fichiers txt a la racine C:

    Code:
    Sub main()
    
    
    
    
        ThisApplication.ClearLogMessages()
    
        Dim ent As Entity
    
        ' test if one and only one polyline is selected
    
        If CamBamUI.MainUI.ActiveView.SelectedEntities.Length = 1 Then
    
            For Each ent In CamBamUI.MainUI.ActiveView.SelectedEntities
    
                If TypeOf ent Is Polyline Then
                   
                    'call the sub to scan the polyline
                    WritePolyData(CType(ent, Polyline))
    
                End If
    
            Next ent
    
        End If
    End Sub
    
    Sub WritePolyData(p As Polyline)
    
        Dim polypoint As Point3F    'XYZ coordinate of a polyline point
        Dim blg As Double   'bulge
        Dim text as string
        Dim file As System.IO.StreamWriter
        'scan the polyline for each item in the PolylineItemList
        For Each it As PolylineItem In p.Points
    
            polypoint = it.Point
            blg = it.Bulge
    text = "p.Add(" & polypoint.X & "," & polypoint.Y & "," & polypoint.Z & "," & blg & ")"
    
            ThisApplication.AddLogMessage("p.Add(" & polypoint.X & "," & polypoint.Y & "," & polypoint.Z & "," & blg & ")")
    ThisApplication.AddLogMessage(text)
    
    file = My.Computer.FileSystem.OpenTextFileWriter("c:\test.txt", True)
    file.WriteLine(text)
    
    file.Close()
        Next
    
    End Sub
     
  9. braabu

    braabu Nouveau

    Messages:
    24
    Inscrit:
    24 Avril 2016
  10. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
  11. dh42

    dh42 Compagnon

    Messages:
    3 975
    Inscrit:
    4 Septembre 2009
    Localité:
    Près de St Etienne (42)
    [recherche] coordonnes des points d'une polyline
    Ah au fait, tu le sais peut être déjà, mais tu peux copier le contenu de la collection de points d'une polyligne ou d'une liste de points directement depuis/vers un tableur. (ctrl C / ctrl V dans la collection de points pour copier/coller les cellules sélectionnées)

    http://www.screencast.com/t/GwJziTaq5U

    ++
    David
     

Partager cette page