Aller au contenu

Maxence DELANNOY

Membres
  • Compteur de contenus

    140
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Maxence DELANNOY

  1. Maxence DELANNOY

    Hyperlien

    Pour lire l'url : (geturl (car (entsel))) Pour la définir : (seturl (car (entsel)) "http://www.google.fr") Tu peux aussi utiliser l'API ActiveX : (vla-add (vla-get-hyperlinks (vlax-ename->vla-object (car (entsel)))) "http://www.google.fr")
  2. Si tu as accès à ADN, voici la position officielle d'Autodesk : http://adn.autodesk.com/adn/servlet/index?siteID=4814862&id=5442578. En bref : un utilisateur de LT n'est pas autorisé à utiliser des compléments (c'est dans le SLA) et la licence accompagnant ObjectARX indique que ce dernier ne peut pas être utilisé pour développer sur LT.
  3. Finalement, si c'est possible. Il faut utiliser l'API ActiveX : http://adndevblog.typepad.com/autocad/2012/05/autolisp-example-set-then-model-or-paperspace-background-color.html Attention, il manque un appel à (vl-load-com) au départ.
  4. Changer la couleur du fond sans passer par la boite de dialogue Options, ce n'est pas aussi facile que ça en a l'air. Je ne pense pas qu'il y a une variable système. Comme l'information est stockée dans le profil utilisateur, tu pourrais y arriver en créant 2 profils et en basculant de l'un à l'autre, mais il n'y a pas de commande pour ça et pas de variable système non plus (il y a CPROFILE mais elle est en lecture seule). Pour ne pas que la boite de dialogue s'affiche lors de SAUVEIMG, normalement il faudrait mettre FILEDIA à 0. Mais SAUVEIMG ne tient pas compte de FILEDIA. Par contre tu peux utiliser SAUVEBMP, PNGOUT ou JPGOUT qui prennent en compte FILEDIA.
  5. Le code suivant ne suffit-il pas ? mt.Contents = mt.Text; D'après la documentation de la propriété MText.Text :
  6. Non, je ne pense pas. Oui c'est ça.
  7. Sur AutoCAD 2013, la propriété BlockTableRecord.IsFromOverlayReference est en lecture/écriture, mais pas sur les versions antérieures. Tu dois spécifier le point d'entrée, car la casse de ta méthode est différente entre la version C++ (setIsFromOverlayReference) et ta version VB.NET (SetIsFromOverlayReference) et tu dois utiliser le nom décoré de la méthode (quelque chose comme "?setIsFromOverlayReference@@...". Voir http://through-the-interface.typepad.com/through_the_interface/2006/07/calling_objecta.html Ensuite je ne suis pas un expert du P/Invoke, mais je pense que tu dois créer une méthode statique (Shared en VB) qui prend en 1er argument un IntPtr et en 2ème un booléen. Pour l'appeler tu passes la propriété UnmanagedObject de ton objet BlockTableRecord en 1er argument.
  8. Effectivement. L'alternative c'est d'exporter l'image de ton bloc : http://www.cadtutor.net/forum/showthread.php?22961-Dialog-preview-image-of-block. C'est du bricolage, mais c'est tout ce que permet VBA. En .NET, tu as une propriété BlockTableRecord.PreviewIcon qui te permets d'accéder directement aux miniatures tel qu'elles sont affichées dans l'interface utilisateur d'AutoCAD : http://through-the-interface.typepad.com/through_the_interface/2011/11/generating-preview-images-for-all-blocks-in-an-autocad-drawing-using-net.html
  9. Il faut utiliser un ActiveX qui s'appelle AutoCAD DwgThumbnail Control (DWGThumbnail.ocx). Tu trouveras plus d'infos ici : http://acadplus.free.fr/mb030209a.htm
  10. string user1 = Application.GetSystemVariable("USER1");
  11. Tu ne peux pas passer d'argument à une commande. Tu dois demander des saisies à l'utilisateur via les différentes méthodes Get* de la classe Editor : GetKeywords pour un booléen (avec Oui/Non comme mots clés) ou GetString pour une chaîne de caractères.
  12. Non, ce n'est pas possible via l'API.
  13. Si tu veux que la cote soit associative, tu ne peux pas le faire en .NET car la classe AcDbDimAssoc qui sert à faire ça n'a pas d'équivalent en .NET. Tu ne peux le faire qu'en C++/ObjectARX (et encore je n'ai pas trouvé d'exemple de code qui le fait). Tout ce que j'ai c'est un bout de code C++ pour afficher les entités associées à une cote : http://adndevblog.typepad.com/autocad/2012/06/get-the-entitiessubentitiesgeometry-an-associative-dimension-is-associated-to.html?cid=6a0167607c2431970b016767f088ea970b Il y a aussi la commande _DIMREASSOCIATE
  14. Il faut utiliser les classes RotatedDimension (dimensions horizontales et verticales) et AlignedDimension (cotes alignées).
  15. En .NET, on peut tester les extrémités : l1.StartPoint.IsEqualTo(l2.StartPoint) || l1.StartPoint.IsEqualTo(l2.EndPoint) || l1.EndPoint.IsEqualTo(l2.StartPoint) || l1.EndPoint.IsEqualTo(l2.EndPoint) IsEqualTo permet de faire une comparaison approximative des coordonnées, en ignorant les erreurs d'arrondis du à l'utilisation du type double.
  16. Tu peux utiliser la classe Autodesk.AutoCAD.Windows.ColorDialog pour afficher une boite de dialogue standard de sélection des couleurs. Désolé, mais le code est en C#. ColorDialog cd = new ColorDialog(); cd.SetDialogTabs(ColorDialog.ColorTabs.ACITab | ColorDialog.ColorTabs.TrueColorTab | ColorDialog.ColorTabs.ColorBookTab); cd.IncludeByBlockByLayer = true; cd.Color = null; cd.ShowDialog(); Si tu utilise un comboBox, l'utilisateur ne pourra pas sélectionner une couleur vraie (+ de 16 millions de possibilités). Cependant, tu peux le faire si tu te contentes des couleurs indexées. Pour obtenir la liste des couleurs, tu boucles de 1 (rouge) à 255 (blanc) et tu crées un objet couleur avec la méthode FromColorIndex : for (short colorIndex = 1; colorIndex <= 255; colorIndex++) { using (Color color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex)) { // color.ColorValue correspond à une couleur .NET } } Ensuite, tu peux utiliser le mode OwnerDraw du combo pour afficher un rectangle rempli avec la couleur. Tu as aussi un article sur the Swamp : http://www.theswamp.org/index.php?topic=30270.0 et sur Through the Interface : http://through-the-interface.typepad.com/through_the_interface/2008/03/implementing-yo.html
  17. Un petit tr.Commit(); à la fin, ce serait pas inutile ;)
  18. Il faut remplacer ta boucle For Each par une boucle For classique
  19. Super, ça a corrigé mon problème avec le ruban qui ne mettait pas à jour.
  20. Apparemment tu as lié ta dll à la version x64 de AcMgd (celle qui se trouve dans C:\ObjectARX 2010\inc-x64). Donc VS te propose la version x64 du constructeur, qui prends certainement en paramètre un pointeur 64 bits. Mais tu l'exécutes dans un AutoCAD 32 bits, c'est donc la version x86 qui est appelée, avec un pointeur 32 bits en paramètre. Il te suffit donc de remplacer ta référence à C:\ObjectARX 2010\inc-x64\AcMgd.dll par C:\ObjectARX 2010\inc-win32\AcMgd.dll. Si tu veux supporter les OS 32 et 64 bits, tu devras compiler 2 dll différentes, une en x86 liée aux références inc-win32 et une en x64 liée aux références inc-x64. Le problème se pose pour AutoCAD 2009 et 2010, car quelques fonctions ont des signatures différentes entre x86 et x64.
  21. http://docs.autodesk.com/ACD/2013/FRA/index.html?url=files/GUID-9970E91B-A4F5-405C-99C1-46AD804A8858.htm,topicNumber=d30e479985
  22. Oui mais il faut développer un programme spécifique où un lien serait établi entre les entités hachures et les lignes du classeur Excel.
  23. J'ai réussi à installer la version 2013. Mais pour que ça fonctionne bien, j'ai du réparer Microsoft Help Viewer 1.1 via le Panneau de configuration > Programmes > Programmes et fonctionnalités.
  24. C'est un bon point que tous les langages soient regroupés. Avec les précédentes éditions, c'était pénible d'avoir à installer un logiciel pour chaque. Il me semble que l'explorateur de solutions a été aussi amélioré non ? Je crois qu'on peut accéder directement aux membres des classes.
  25. Maxence DELANNOY

    versionning

    Je te conseille Mercurial car il est plus simple que Git (bon attention le versionning ça reste toujours extrémement compliqué) et est mieux intégré à Windows. Et tu peux te créer un compte sur https://bitbucket.org/ pour avoir des dépôts distants. Par contre pour les binaires, Mercurial (comme les autres d'ailleurs) n'est pas du tout adapté. Cependant il existe des extensions comme BFiles (http://mercurial.selenic.com/wiki/BfilesExtension) qui permettent de les gérer plus ou moins, mais en général j'évite de mettre des fichiers non texte dans le dépôt. Le client le plus utilisé est TortoiseHg : http://tortoisehg.bitbucket.org/
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité