Communauté
Civil 3D et InfraWorks - Français
Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Civil 3D populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Bug création rapport de listings c3d

9 RÉPONSES 9
RÉSOLU
Répondre
Message 1 sur 10
david.cadix
730 Visites, 9 Réponses

Bug création rapport de listings c3d

Bonjour,

Il me semble qu'il y a un Bug pour la création de rapports (listings pied de Talus, sur la ligne caractéristique du terrain, de différence altitude, ect...)

Mon axe commence en Négatif (-0+068.00) ce qui bloque les calculs 😞  

Aucun problème si je modifie l'abscisse à 0.00.

 

Exemples de messages d'erreurs :

 

 

bug_1.jpgbug_2.jpgbug_3.jpgbug_4.jpg

 

Avez vous déjà eu ce problème ?

Savez vous si il y a un moyen de le contourner ?

 

Merci pour vos retours.

 

Cdt

 

David

 

9 RÉPONSES 9
Message 2 sur 10
O_Eckmann
en réponse à: david.cadix

Bonjour,

 

Avec Civil 2018 tel quel, tu peux t'en sortir, même si ce n'est pas très joli. Il faut paramétrer tes abscisses curvilignes sans séparateur, mais avec la position du séparateur à 1+0 => screencast de la procédure

 

Si tu es plus téméraire (si Nicolas le permet) tu peux installer cette nouvelle DLL (C3DReport.dll)  des rapports que je viens de compiler pour corriger ce problème.

Il faut la copier à la place de celle existante (faire une sauvegarde avant) dans le dossier : "C:\ProgramData\Autodesk\C3D 2018\fra\Data\Reports\Net"

Il faut toujours changer les paramètres ambiants des abscisse curviligne du dessin sur "séparateur => aucun", mais ensuite tous les rapports devraient fonctionner avec un abscisse négative

 

Civil3D - parametre ambiant.png

 

Olivier

 

 

Olivier Eckmann

EESignature

Message 3 sur 10
O_Eckmann
en réponse à: david.cadix

Je joins la portion de code modifiée fichier ReportUtilities.vb, les modif en gras

 

    'Raw station to string
    'station could be the station with or without Derived
    Public Shared Function GetStationString(ByVal oAlignment As AeccLandLib.IAeccAlignment, ByVal station As Double, _
                                        Optional ByVal settingsStation As AeccLandLib.IAeccSettingsStation = Nothing) As String
        If settingsStation Is Nothing Then
            settingsStation = ReportApplication.AeccXDatabase.Settings.AlignmentSettings.AmbientSettings.StationSettings
        End If

        Dim delimiter As String
        delimiter = "+"
        Select Case settingsStation.StationDelimiterCharacter.Value
            Case AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterPlusSign
                delimiter = "+"
            Case AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterMinusSign
                delimiter = "-"
            Case AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterAutomatic
                delimiter = "+"
            Case AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterUnderscore
                delimiter = "_"
            Case AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterNone
        delimiter = ""
      Case Else
                Diagnostics.Debug.Assert(False)
                delimiter = "+"
        End Select

        Dim bStationIndexFormat As Boolean = settingsStation.Format().Value = AeccLandLib.AeccStationFormatType.aeccStationIndexFormat
        Dim stationIndexInc As Double = oAlignment.StationIndexIncrement

        Dim precision As Integer = settingsStation.Precision.Value
        Dim positionType As AeccLandLib.AeccStationDelimiterPositionType = settingsStation.StationDelimiterPosition.Value
        Dim dropDecimal As Boolean = settingsStation.DropDecimalsForWholeNumbers.Value

        Dim position As Integer = positionType

        Dim strFormat As String
        If dropDecimal Then
            strFormat = "{0:F0}"
        Else
            strFormat = String.Format("{{0:F{0}}}", precision)
        End If

        Dim staString As String = String.Format(strFormat, station)

        Dim dotSeparator As String = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
        Dim dotIndex As Long = staString.IndexOf(dotSeparator)
        If (dotIndex < 0) Then
            dotIndex = staString.Length
        End If

        If (bStationIndexFormat = True) Then
            Dim strBuilder As System.Text.StringBuilder = New System.Text.StringBuilder()
            Dim intValue As Integer
            If (Math.Sign(station) >= 0) Then
                intValue = Math.Floor(station)
            Else
                intValue = Math.Ceiling(station)
            End If

            strBuilder.AppendFormat("{0}{1}{2}", intValue \ stationIndexInc, delimiter, intValue Mod stationIndexInc)
            If (dotIndex > 0) Then
                staString = staString.Substring(dotIndex)
                strBuilder.Append(staString)
            End If
            GetStationString = strBuilder.ToString()
        Else
            Dim insertPos = dotIndex - position
            If (insertPos <= 0) Then
        Dim strBuilder As System.Text.StringBuilder = New System.Text.StringBuilder()
        If (settingsStation.StationDelimiterCharacter.Value = AeccLandLib.AeccStationDelimiterCharacterType.aeccStationDelimiterNone) Then
          strBuilder.AppendFormat("{0}", delimiter)
        Else
          strBuilder.AppendFormat("0{0}", delimiter)
        End If
        Dim count As Integer = -insertPos
          While (count > 0)
            strBuilder.Append("0")
            count -= 1
          End While
          strBuilder.Append(staString)
          staString = strBuilder.ToString()
        Else
          staString = staString.Insert(insertPos, delimiter)
            End If
            GetStationString = staString
        End If
    End Function

Olivier

Olivier Eckmann

EESignature

Message 4 sur 10
david.cadix
en réponse à: O_Eckmann

Merci Olivier,

Nous sommes tjs en V2016, ton dll fonctionnera ?

cdt

 

David

 

Message 5 sur 10
O_Eckmann
en réponse à: david.cadix

Bonjour,

 

Normalement non, car je l'ai recompilée pour V2018.

Désolé, mais je n'ai pas la 2016 de dispo donc je ne peux pas la recompiler pour toi.

Les sources vb.net sont installées avec le produit, donc tu as tout pour faire la modif et recompiler la DLL pour 2016.

Sinon, il faudrait voir avec Vincent si Autodesk peut faire quelque chose pour toi.

 

Olivier

Olivier Eckmann

EESignature

Message 6 sur 10
Anonymous
en réponse à: O_Eckmann

Bonjour Olivier,

 

Mille Mercis pour ton aide.

 

On va voir pour la recompiler avec toutes les informations que tu nous as données et je vais (essayer de) voir avec Autodesk pour que la correction soit prise en compte dans les versions à venir car ce n'est quand même pas normal je trouve...

 

Heureusement que tu étais là...

 

Bonne journée

Cdt

Nicolas

Message 7 sur 10
Vincent_Fredon
en réponse à: Anonymous

Bonjour,

 

Merci David et Nicolas d'avoir fait remonter ce problème sur le forum et un grand merci Olivier pour ta réactivité et ton expertise.

J'enregistre cette correction à apporter en priorité sur la prochaine version de Civil 3D.

Vincent Fredon
Autodesk
Message 8 sur 10
O_Eckmann
en réponse à: Vincent_Fredon

Salut Vincent,

 

je pense que le bug est un peu plus complexe que ça, car lorsque tu spécifies le mode décimal (dans les paramètres ambiants), les 4 paramètres suivants sont désactivés, alors qu'ils sont quand même utilisés dans le code VB pour formater les PK.

Les corrections apportées permettent de contourner le problème, mais surement pas de manière parfaite. Je n'ai fait que corriger le séparateur "aucun" de 1 espace à rien et enlever le séparateur en mode "aucun".

Il faudrait reprendre l'analyse un peu plus poussée pour le mode décimal.

 

J'ai téléchargé une version d'éval de Civil 2016, si je réussis à recompiler la DLL je la poste cette semaine.

 

Olivier

Olivier Eckmann

EESignature

Message 9 sur 10
Vincent_Fredon
en réponse à: O_Eckmann

Merci Beaucoup Olivier.

Nous avons malheureusement également identifié une correction à apporter au listing d'axe en plan en 2018.

Il y a donc un besoin de travailler sur ce thème.

Vincent Fredon
Autodesk
Message 10 sur 10
O_Eckmann
en réponse à: Anonymous

Salut Nicolas,

 

A tester cette DLL recompilée pour Civil 2016 avec les modifs signalées.

Bien faire une sauvegarde de la DLL d'origine avant de remplacer.

 

Olivier

Olivier Eckmann

EESignature

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report