jeudi 24 novembre 2011

Démo 04 : Poignées sommet, mode libre


Bonjour,

Les poignées d'édition sommet sont maintenant dotées d'un mode libre dont vous pouvez voir le fonctionnement dans la démo suivante  (Démo_04_Edition_sommets_Mode_libre).

Les calculs liés à ce mode: détermination des limites de déplacement et calculs des nouveaux segments de tracé en fonction du déplacement du sommet, n'a pas été de tout repos. Je n'ai pas réussi à déterminer tout ces éléments en calcul formel, j'ai donc du faire appel au très puissant, mais néanmoins très dangereux calcul numérique.
Le principe est théoriquement simple: il faut, à l'intérieur d'une boucle, faire varier un paramètres d'entrée, jusqu’à ce que le résultat d'un calcul sur cette entrée atteigne une condition déterminée. En plus clair, c'est ce que fait le solveur d'Excel. Mais cette méthode est truffée de pièges et le débogage a été légèrement pénible ...

En plus, je n'ai pas lésiné sur la marchandise :

Des boucles ....
        Emboîtées dans des boucles ...
                  Emboîtées dans des boucles ...

Si pour une boucle de niveau -1, il vous faut 40 itérations pour converger
        Au niveau -2, il vous en faudra 1600
                  Et au -3 .....

Plus vous vous enfoncez, plus le risque de rester scotché dans les limbes de l'informatique est important. Pour vous protéger d'un tel risque, il vous faudra vous munir d'un petit objet dont vous seul connaîtrez la forme et l'exact équilibre ... (ça me fait vaguement penser à quelque chose, non ? ....)

Pour le choix de cet objet, je vous conseille de privilégier la touche On-Off de votre PC, à tout autre : marteau, hache, ou même tronçonneuse, dont les effets à moyen terme peuvent se montrer bien moins réversibles.

Bon, j’arrête là mon delirium cinématographique et je vous souhaite une bonne nuit.

A+


Démo 03 : Edition d'un tracé, les arcs

Bonjour à tous,

Me voilà de retour en Bretagne profonde, et après avoir consacré beaucoup de temps à ce changement d'interface, je vais pouvoir revenir à des démos plus proches des sujet qui nous préoccupent. Voici donc, la deuxième dans la série des poignées d'édition tracé, la poignée d'arc destinée à modifier le rayon d'un arc de cercle.
La démo jointe (Démo_03_Edition_Arcs) , vous en montre le fonctionnement. Peu de choses à ajouter à cette démo, le fonctionnement de cette poignée étant assez simple. Il faut noter toutefois les changements suivants :

  • Le rapport de vérification Tracé/Critères possède maintenant une fenêtre intégrée ce qui évitera d'avoir à valider une fenêtre flottante à chaque fois qu'une vérification tracé est appelée par le programme.
  • Un nouveau bandeau d'Infos Express a été ajouté en bas de la fenêtre principale Linea.

L'autre point important qui était intégré depuis le début, mais dont je n'avais pas encore parlé est la possibilité de créer des enchaînements de segments de tracé à l’intérieur d'une même courbe différent du basique "Clotho-Arc-Clotho". Les courbes peuvent comporter un ou plusieurs arcs de cercle reliés entre eux et aux alignements encadrants par une courbe de transition ou en direct. Autant dire qu'avec une définition pareille, on peut faire n'importe quel enchaînement...
On peut imaginer utiliser la tricentrie si chère à mon ami Stéphane (même si je ne sais pas vraiment ce que c'est, ça doit être une sorte de maladie vu le nom ...).
Encore plus utile, cela permet d'introduire l'Ove (le Graal du traceur de voie), sans laquelle un logiciel de tracé digne de ce nom ne saurait exister. Cette fameuse Ove, m'a donné un peu de fil a retordre en programmation, surtout que j'ai imaginé les scénarios les plus tordus de son utilisation. Par exemple, si un petit malin s'amusait à mettre la montée de dévers dans le sens inverse de la logique sur une Ove (grand dévers sur grand rayon et petit sur petit), et bien c'est prévu ... (Joseph saura de quoi je parle).

Bonne démo et A+


mercredi 9 novembre 2011

NewLook

Eh non ... aucune photo compromettante dans ce post, juste une capture d'écran pour vous faire voir ce à quoi ressemble la nouvelle interface de Linea (Click droit sur l'image - ouvrir le lien dans une nouvelle fenêtre - vous permettra de mieux voir les détails).




J'ai changé d'interface utilisateur (pour les non initiés, l'interface utilisateur c'est l'ensemble des "contrôles" qui permettent d'interagir avec un logiciel : boutons, zone de saisie texte, liste déroulante, ...). Je me suis décidé à abandonner l'ancien (mais non moins respectable) Windows Forms, pour passer au rutilant WPF .

La métamorphose n'a pas été de toute simplicité, principalement à cause du fait que je n'y connaissais absolument rien en WPF et qu'il a donc fallu apprendre. Bon, mais personnellement je suis assez satisfait du résultat même si cela m'a bouffé un bon mois. J'ai opté au niveau thème couleur pour un "gris souris" que je trouve très chic. Vous me direz ce que vous en pensez ...

A +


samedi 10 septembre 2011

La Newsletter

Bonjour,

Pour que vous puissiez suivre sans avoir à vous connecter tous les jours au site (comme le fait un certain Joseph, actuellement à Alger), j'ai ajouté la possibilité de recevoir une Newsletter. Le principe est simple, à chaque modification sur le Blog (parution d'un nouveau message, ajout d'un commentaire) vous recevez un avertissement sur votre boîte mail.

Pour vous abonner, il vous faut :

  • Saisir votre adresse mail dans le cadre prévu à cet effet (en haut de la colonne de droite, au dessus des membres)
  • Vous recevrez ensuite un mail de vérification, possédant un lien qu'il vous faudra cliquer (comme a oublié de le faire un certain Olivier, actuellement à Brest)

Simple et efficace.

A+

Un certain Yvan, actuellement en vadrouille.


dimanche 28 août 2011

Démo 02 : Critères de conception Tracé en plan

J'ai juste eu le temps de vous préparer la démo (Démo_02_Critères_tracé).
Elle vous donnera déjà un bon aperçu du fonctionnement du carnet de critères, je compte modifier ce post pour donner un peu plus de détails sur chacune des valeurs du carnet, mais cela ne sera pas avant la semaine prochaine, car nous allons vendanger.

Ah le petit vin blaaaannnnnc, ......

A+


1er Septembre 2011,

Me revoilà,

Le vin est dans la cave (il fait des bulles), je vais pouvoir prendre un peu de temps pour vous expliquer le contenu du carnet. Tout d'abord, il faut savoir que suivant les différentes natures de voies (tramway, métro, trains) et à travers les différents pays de la communauté européenne il n'existe pas une façon unique de définir et d'utiliser ces critères de conception. Je me suis donc inspiré de la norme EN 13803 dont l'un des objectifs était justement de dégager un fil conducteur entre ces différentes méthodes. Si vous avez du temps, je vous conseille de lire cette norme qui est très bien construite et explique chacun des critères de conception de façon beaucoup détaillée que je ne le ferai dans ce post.

Dans Linea l'ensemble des critères de conception sont regroupés dans un même objet que j'ai nommé "Carnet de critères de conception", et vous avez la possibilité de créer plusieurs de ces carnets. Pourquoi plusieurs carnets?, car au sein d'un même projet, il est possible et même fortement probable que vous ayez à définir plusieurs natures de voie, ne serait-ce que voie principales et voie hors exploitation (atelier) pour un projet de transport urbain, mais on peut aussi penser à un noeud ferroviaire où des voies à grande vitesse seraient entourées de lignes fret et d'embranchements particuliers. Une fois ces carnet définis, vous pouvez les appliquer individuellement à chacun des tracés de votre projet, Linea se charge ensuite à travers ses éditions de garantir que votre tracé respecte le carnet qui lui a été affecté.

Les données du carnet sont regroupées en trois chapitres :

  • Les critères Généraux (nom du carnet, Vitesse nominale et incrément vitesse)
  • Les critères Tracé en plan (objet de ce post)
  • Les critères Profil en long (que je compléterai en abordant la programmation du profil)

Les critères généraux s'applique transversalement au tracé et au profil.

  • Nom : celui que vous voulez donner à votre carnet. c'est avec ce nom que vous affecterez votre carnet à tel ou tel tracé. Un carnet particulier "le carnet par défaut" est automatiquement chargé en tête de la liste des carnets, il peut être renommé, mais vous ne pourrez pas le supprimer.
  • Vitesse nominale : la vitesse pour laquelle votre tracé est conçu.
  • Incrément vitesse : valeur à laquelle les vitesses calculées sont arrondies. Si vous spécifiez 0 dans ce champ, les vitesses ne seront pas arrondies, cette règle est valable pour tous les champs incrément.

Les critères de tracé en plan.

  • Style de notation : c'est celui utilisé pour indiquer les grandeurs d'accélération transversales et de variation de cette dernière. Il existe deux grandes écoles : celles qui indiquent directement ces accélérations en m/s² et leur variation (ou jerk) en m/s³, et celles qui préfèrent parler d'insuffisance de dévers et de variation d'insuffisance. J'ai conservé ces deux types de notation afin que chacun puisse plus facilement s'y retrouver suivant ses habitudes. Quatre champs sont affectés par ce changement de style (l'Accélération maximale, le Delta Accélération, l'Accélération résiduelle et le Jerk Maximum) qui se transformeront respectivement en (Insuffisance maximale, Delta insuffisance, Insuffisance résiduelle et Variation d'insuffisance maximale). Voilà qui devrait apporter un éclairage tout particulier à la question que vous vous posez tous depuis le post de Juin "Quelle est la différence entre un jerk et une variation d’insuffisance de dévers ?" ..... . Hé bien y'en a pas, plus la peine de tarabusquer votre expert référent avec cela.
  • Type de transition : Pour ceux qui ont regardé la démo, vous aurez noté que ce champ est grisé pour l'instant, car vous n'avez le choix qu'entre la clothoïde et ..... la clothoïde au stade actuel du développement. Mais rien est perdu car j'ai structuré mon code de façon à pouvoir utiliser d'autre courbe de transition, si vous avez lu l'EN 13803, vous verrez qu'il y en quatre de décrites dans les annexes. Je compte les ajouter au choix, mais je ne me consacrerai à cette programmation qu'en fin de bal, ou dans une version ultérieure si le temps me manque. De toute façon il faudra y passer, car l'avenir est là, dans ces transitions à loi de courbure continuement dérivable (pour ceux qui ont du mal à suivre, demandez des explications à votre expert référent).
  • Alignement mini : la longueur minimale d'un alignement droit
  • Arc de cercle mini : la longueur minimale d'un arc de cercle
  • Transition mini : ce champ n'est pas un critère à proprement parler, mais un résultat de calcul en fonction d'autres critères. Il donne la longueur minimale d'une transition pour obtenir la vitesse nominale, il dépend de nombreux autres critères : La loi d'application des dévers, L'accélération non compensée maximale, le dévers maximal, le Jerk, le gradient et la variation de dévers.
  • Transition mini absolue :  la longueur minimale absolue d'une transition
  • Rayon minimal : de nouveau un champ calculé pour un franchissement à la vitesse nominale, il dépend de : La loi d'application des dévers, L'accélération non compensée maximale et du dévers maximal. Si la loi d'application des dévers est sur "longueur de transition mini", il dépendra aussi du Jerk, du gradient et de la variation de dévers.
  • Rayon mini absolu :  le rayon minimal absolu d'un arc de cercle.
  • Incrément rayon : valeur à laquelle les rayons calculés sont arrondis.
  • Accélération maximale : l'accélération transversale non compensée maximale.
  • Delta accélération : la valeur maximale d'une variation brusque d'accélération transversale, que l'on peut avoir lorsque un alignement et un arc ou deux arcs de rayon différents sont raccordés sans courbe de transition.
  • Accélération résiduelle : valeur d'accélération transversale non compensée utilisée pour la détermination du dévers des courbes lorsque la loi d'application des dévers est définie à "Insuffisance résiduelle". Ce critère n’apparaît pas si la loi est autre.
  • Jerk maximum : la variation d'accélération transversale non compensée maximale.
  • Base dévers : La distance pour laquelle sont donnés les dévers (distance d'axe de rail à axe de rail). On lui donne conventionnellement la valeur de 1500 mm pour une voie d'écartement standard (1435 mm), indépendamment du type de rail. Je précise cela car j'ai vu des personnes que je ne nommerai pas redéfinir la constante de 11.8 utilisée dans la fameuse équation D = 11.8 V²/R, car leur base dévers était de 1506 mm avec un UIC60 ....
  • Dévers maximum : comme son nom l'indique, le dévers maximum.
  • Incrément dévers : valeur à laquelle les dévers calculés sont arrondis.
  • Gradient de dévers maximum : la variation maximale de dévers par rapport à la distance.
  • Variation de dévers maximale : la variation maximale de dévers par rapport au temps.
  • Loi d'application des dévers : la façon dont les dévers sont déterminés dans les courbes.
    • A plat : le dévers est nul, comme en tramway
    • Insuffisance résiduelle : le dévers est déterminé de telle façon que l'accélération transversale non compensée atteigne la valeur indiquée dans le champ "accélération résiduelle" (ou son correspondant "insuffisance résiduelle") en pleine courbe.
    • Longueur de transition minimale : valeur de dévers pour laquelle les courbes de transition encadrantes optimiseront leur longueur. C'est un concept un peu nouveau, il est basé sur l'observation suivante : Si vous appliquez un dévers important à une courbe ce sont les critères de gradient et de variation de dévers qui fixeront la longueur des courbes de transition, en revanche, si vous choisissez un dévers faible, l'insuffisance sera importante et c'est la variation d'insuffisance (ou Jerk) qui déterminera la longueur de transition. Entre les deux, il existe une valeur de dévers d'équilibre qui donnera aux courbes de transition leur longueur minimale.
    • A définir librement : Comme son nom l'indique, vous définissez vous-même la valeur de dévers.
  • Insuffisance maximale : (voir accélération maximale)
  • Delta insuffisance : (voir delta accélération)
  • Insuffisance résiduelle : (voir accélération résiduelle)
  • Variation d'insuffisance maximale : (voir jerk maximum)

    Les dérogations

    Ceux qui ont déjà conçu un tracé de voie savent qu'il est souvent nécessaire d'outrepasser ces règles de conception, ce qui nous y amène c'est généralement des contraintes géométriques du terrain dans lequel s'inscrit notre tracé. J'ai donc mis en place un système de dérogation à ces critères un peu comme le suggère l'EN 13803 avec ses valeurs limites exceptionnelles. Tous les critères sont dérogeables à l’exception du Style de notation, du Type de transition et de la Base dévers. Je n'ai toutefois pas programmé dans un deuxième volet du carnet, la possibilité de saisir une limite exceptionnelle pour les critères, considérant qu'il appartenait à chacun quand il dérogeait de maîtriser ses limites.
    La principale des dérogations est celle faite à la vitesse nominale, je l'ai différenciée des autres en la nommant "limitation de vitesse", et c'est à mon sens celle que vous devez utiliser en priorité, elle ne fait que marquer le fait que dans cette portion de tracé vous n'avez pas pu respecter les critères pour la vitesse nominale et vous avez donc été obligé de l'abaisser. Les exploitants ferroviaires sauront bien par la suite outrepasser cette limite que le terrain a imposé et aller chatouiller les valeurs exceptionnelles.

    A+

    Mais que fait-il ?

    Il avait pourtant dit fin Août ......

    Pas d'inquiétude, le mois d'Août n'a certes pas été d'une grande productivité mais je viens de faire le point avec mon programmeur sur les raisons de ce retard et sur les mesures de rattrapage associées.

    Donc, je me suis convoqué dans mon bureau et j'ai écouté la litanie des excuses habituelles :

    • Il a fallu plonger pour aller chercher les filets que les péchous du coin avaient paumé
    • Il y avait plein de bricoles à réparer sur le Cata
    • Les préparatifs pour les vendanges
    • La chaleur qui t'oblige à aller te baquer toute les heures
    Enfin bref, comme je vous le disais, du grand classique ... (aucune originalité dans la recherche d'excuses).

    Sur ces entre-faits, je me suis regardé profondément dans le blanc des yeux, avec un air accusateur .... (suspense .....)
    Puis je me suis de suite pardonné, car j'ai tendance à bien m'entendre avec moi-même. Nous avons immédiatement décidé de fêter cette sage décision autour d'un verre. C'est fou comme les relations avec son patron deviennent simples dès qu'on n'en a plus.

    Trêve de plaisanteries, en fait j'ai travaillé sur la poignée d'édition des courbes que j'ai nommée dans mon post précédent. Mais cette édition fait appel à l'ensemble des critères de conception du tracé en plan, contrairement à l'édition des sommets qui n'impliquait que les longueurs minimales des alignement et des arcs de cercle. J'ai donc du mettre en place la totalité du Carnet de critères de conception, que je viens de finir.
    Je prépare un post cet après-midi pour vous en présenter le contenu et le fonctionnement.

    A+

    mercredi 15 juin 2011

    Démo 01 : Edition d'un tracé, les sommets

    Bonjour à tous,

    La première tâche à laquelle je me suis attelé est l'édition graphique des tracés en plan.
    Mon objectif est que cette édition respecte les deux principes suivants :

    Elle doit être essentiellement graphique.
    Pas de saisie de valeur numérique dont on est incapable d'imaginer l'étendue, si quelqu'un est capable de se représenter ce qu'est une courbe de rayon 10 km, qu'il me jette la première pierre.
    Elle doit garantir le respect des critères de conception associés au tracé.
    Ces critères (rayon mini, dévers max., longueurs d'alignement, ...) seront regroupés dans des carnets de critères types que l'on associera au tracé en plan. Une fois l'association faite, l'éditeur de tracé garantira que ces différents critères sont maintenus à chaque modification de tracé. Le but étant que vous n'ayez plus besoin de faire appel à l'expert qui connaît la différence entre un Jerk et une variation d'insuffisance de dévers à chaque fois que vous souhaitez modifier une courbe.

    L'édition graphique s'appuiera sur un outil d'autocad que vous connaissez déjà bien : les poignées d'édition.
    Quatre types de poignées seront associés aux tracés en plan :
    • les poignées de sommet : pour déplacer le point d'intersection de deux alignements consécutif
    • les poignées de courbe : pour modifier le rayon d'un arc de cercle
    • les poignées de courbe de transition : pour modifier la longueur d'une clothoïde
    • les poignées d'alignement : pour riper un alignement complet en conservant son gisement
    Je viens de finir de débugger les poignées sommet, et je vous mets en lien ( Démo_01 Edition Sommets ) une petite animation qui vous en explique le fonctionnement.


    
    

    A bientôt pour une autre démo.