AutoCAD

AutoCAD : l'API .NET est parfois un peu compliquée

AutoCAD propose de nombreuses API : ObjectARX, .NET, ActiveX/COM, AutoLISP. Il faut en plus maintenant ajouter l'API Javascript qui est une nouveauté d'AutoCAD 2014. Et parfois, ce qui s'avère très simple dans une des API se révéle très compliqué dans une autre. Prenons par exemple le cas du zoom étendu.

Avec l'API ActiveX et VBA, il suffit de faire :

ThisDrawing.Application.ZoomExtents

Avec l'API .NET, c'est un peu plus compliqué :

Etiquettes:

Déterminer si votre AutoCAD est 64 bits ou non

Parfois on a des compléments AutoCAD développés en .NET ou ObjectARX qui sont spécifiques à une plateforme (32 ou 64 bits). Pour déterminer si votre AutoCAD est 32 ou 64 bits, vous pouvez utiliser le petit bout de code Lisp suivant directement sur la ligne de commande :

(getenv "PROCESSOR_ARCHITECTURE")

Si la valeur renvoyée est "AMD64", vous êtes en 64 bits. Si c'est "x86", vous êtes en 32 bits.

Etiquettes:

AutoCAD : le mystère des textes moches

Vous l'avez déjà certainement remarqué, parfois vos textes apparaissent de façon bizarre sous AutoCAD. Au lieu de présenter un aspect lisse, ils sont pixellisés sur les bords et paraissent plus épais.

2 textes affichés différemment sous AutoCAD

2 textes affichés différemment sous AutoCAD

Etiquettes:

Wiip PowerCopy pour AutoCAD 1.0

Nous avons publié une nouvelle application pour AutoCAD dans l'Autodesk Exchange Store. Elle permet de copier/répartir rapidement vos objets sur une ligne.

Vous pouvez par exemple l'utiliser pour répartir des perçages, des poteaux, des panneaux de longueurs standards, etc.

Mes souhaits pour AutoCAD 2014

La nouvelle version d'AutoCAD 2014 devrait sortir en avril prochain. Voilà ce que j'aimerai y trouver (ou ne plus y trouver) :

Etiquettes:

Dll bloquée

Il m'arrive fréquemment de devoir transmettre des dll à nos clients. Comme les antivirus des messageries interceptent tous les exécutables en pièces jointes (même packagés dans un zip), j'utilise Google Drive pour partager le fichier via un lien.

Mais avec Windows 7 et les versions postérieures, il y a un système de sécurité qui bloque les dll téléchargées depuis Internet. Conséquence, si la dll est un complément pour Revit ou AutoCAD, on a une erreur au chargement.

Etiquettes:

VBA AutoCAD : intersection d'une entité avec une référence de bloc

En VBA, pour calculer le ou les points d'intersection entre 2 entités, on peut utiliser la méthode ÌntersectWith. Mais elle ne fonctionne pas correctement si un des deux opérandes est une référence de bloc.

Etiquettes:

AutoCAD indexed colors list

A little bit of code to export the list of Red, Green and Blue values for indexed AutoCAD colors:

[CommandMethod("DUMPCOLORS")]
public void DumpColors()
{
    using (var sw = new StreamWriter(@"C:\temp\acadColors.txt"))
    {
        sw.WriteLine(" I ; R ; G ; B ");
        for (short colorIndex = 1; colorIndex <= 255; colorIndex++)
        {
            using (Color color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex))
            {
                sw.WriteLine("{0,3};{1,3};{2,3};{3,3}", colorIndex,
                    color.ColorValue.R, color.ColorValue.G, color.ColorValue.B);
            }
        }
    }
}

Etiquettes:

Liste des valeurs RVB pour les couleurs indexées d'AutoCAD

Un petit bout de code pour exporter la liste des valeurs Rouge, Vert, Bleu pour les couleurs indexées d'AutoCAD :

[CommandMethod("DUMPCOLORS")]
public void DumpColors()
{
    using (var sw = new StreamWriter(@"C:\temp\acadColors.txt"))
    {
        sw.WriteLine(" I ; R ; G ; B ");
        for (short colorIndex = 1; colorIndex <= 255; colorIndex++)
        {
            using (Color color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex))
            {
                sw.WriteLine("{0,3};{1,3};{2,3};{3,3}", colorIndex,
                    color.ColorValue.R, color.ColorValue.G, color.ColorValue.B);
            }
        }
    }
}

Etiquettes:

Zoomer sur une entité dont vous connaissez le maintien (handle)

Vous avez le maintien (handle en Anglais) d'une entité et vous voulez identifier cette entité. Voilà un moyen simple : lancez la commande ZOOM, choisissez l'option Objet. Quand AutoCAD vous demande de sélectionner des objets, tapez :

(handent "<Votre maintien>")

Par exemple si votre maintien est 1f7 :

(handent "1f7")

Validez par entrée, AutoCAD zoome alors sur l'entité en question.

Cette astuce ne fonctionne pas sur LT, puisqu'elle nécessite d'appeler la fonction Lisp handent.

Etiquettes:

Pages

Subscribe to RSS - AutoCAD