Aller au contenu

mryapados

Membres
  • Compteur de contenus

    23
  • Inscription

  • Dernière visite

Tout ce qui a été posté par mryapados

  1. Bonjour Gile Merci pour cet utilitaire pratique. J'aurais une question qui n'a rien à voir : comment fait tu pour qu'Autocad charge la dll automatiquement au démarrage ?
  2. Je confirme pour la 2012. Sinon, après test, la solution du calque non imprimable pour le contour me convient. Merci a tous
  3. Je peut effectivement supprimer le contour mais du coup l'associativité des hachures est supprimée. Merci, je vais essayer
  4. Merci ça fonctionne, en fait j'ai dut recréer les hachures pour les mettre associatif a la source. Il me reste tout de même un soucis : Pour mettre la hachure en associatif, il faut un contour, or j'ai une hachure qui ne doit pas avoir de contour. Y'a t-il un moyen de rendre le contour invisible ?
  5. Merci pour la réponse, j'ai mit les hachures en associatif mais ça ne change rien
  6. Bonjour Je souhaite que lorsque j'utilise la poignée d'étirement de mon bloc dynamique, l'élément ne se déplace pas mais qu'il s'allonge tel que sur l'image ci-dessous : http://img15.hostingpics.net/pics/992760mobile4.png Peut-être jouer avec les contraintes ? je ne maîtrise pas ces fonctionnalités. Merci
  7. A bon. Tant pis C'est pas indispensable mais dommage. Merci
  8. Merci Maxence. Saurais-tu comment faire pour accrocher la cotation ainsi crée à l'objet qui la concerne ? Afin que si on déplace l'objet, la cote grandi ou se réduit ?
  9. Bonjour Je parvient par le code à dessiner des "Polyline", des "text" ou insérer des blocs. Je voudrais maintenant dessiner des cotations (linéaire ou aligné) entre deux points. mais je ne trouve pas l'objet correspondant ? Merci
  10. Bonjour gile Merci pour ce code plus optimisé.
  11. Merci Maxence Il ne manquait que le tr.Commit();
  12. bonjour Je souhaite supprimer du dessin (pas purger) toutes les références de blocs dont le nom est "LEGENDE". j'applique ce code, mais rien ne se passe : public static void KillLegendes(Database db, Editor ed) { List<BlockAttribute> result = new List<BlockAttribute>(); using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); foreach (ObjectId id in bt) { BlockTableRecord btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead); if (!(btr.IsAProxy || btr.IsFromExternalReference || btr.IsLayout)) { foreach (ObjectId brId in btr.GetBlockReferenceIds(true, false)) { BlockReference br = (BlockReference)brId.GetObject(OpenMode.ForWrite); BlockTableRecord owner = (BlockTableRecord)br.OwnerId.GetObject(OpenMode.ForRead); if (owner.IsLayout) { if (btr.Name.ToLower() == "legende") { br.Erase(true); } } } } } } } Avez-vous une idée ? Merci
  13. Bonjour Je souhaite faire un bloc que lorsque je l'étire, l'espace entre les éléments intérieurs reste égal. voir image ci-dessous. http://img11.hostingpics.net/pics/961195autocad.png Dans l'idéal, et si c'est possible, il faudrait pouvoir choisir le nombre d'élément intérieur via un attribut... j'ai essayé avec un paramètre d'étirement et une action réseau mais le résultat n'est pas celui attendu à moins que je m'y prenne mal... Merci de votre aide.
  14. Merci gile. j'ai dût remplacer les "\" par des "/" et ça fonctionne. :)
  15. Bonjour Je voudrais ajouter un bouton qui charge une dll (commande Netload "nondefichier.dll") Je sais créer le bouton mais je ne parviens pas à lui associer la commande. J'ai essayé ceci : ^C^C_NETLOAD "C:\Travaux\programmes\Indevis .NET\Autocad\bin\Release\AutocadToIndevis.dll" Auriez-vous une idée ? Merci
  16. Merci. J'ai eu quelques soucis. mais tout fonctionne à présent.
  17. Bonjour, j'ai trouvé comment insérer une référence de bloc dans le dessin grâce à un code de gile sur un autre forum. 1er problème : apparemment, le bloc inséré perd ses attributs. -> Comment recréer les attributs du bloc ? 2eme problème : le bloc contient des propriétés dynamiques qui permettent de le personnaliser (longueur, largeur, ...). -> Comment modifier ces données ? exemple : la propriété "longueur" du bloc par défaut est 1180, comment la faire passer à 900 ? Merci pour votre aide. Voici le bloc dans l'éditeur de bloc : http://img15.hostingpics.net/pics/290699editbloc.png
  18. ça fonctionne. Merci
  19. Bonjour Je souhaiterai savoir comment envoyer des paramètres à ma commande. Dans la ligne de saisie de commande sur autocad, si j'écris : HelloWorld(1) Cela me répond : Commande inconnue "HelloWorld(1)". Appuyez sur F1 pour obtenir de l'aide. Merci Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.EditorInput Imports Autodesk.AutoCAD.Runtime Namespace HelloWorldSample Public Class HelloWorld <CommandMethod("HelloWorld")> _ Public Sub HelloWorldCmd(byval Parametre as integer) Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor ed.WriteMessage("Hello world " + Parametre.tostring) End Sub End Class End Namespace
  20. L'extraction des blocs et de leur attributs fonctionne bien, merci. j'ai une nouvelle question peut-être simple mais je n'ai pas trouvé de solution. Est-il possible de récupérer les dimensions d'une référence de block ? tel que : http://img15.hostingpics.net/pics/657125dim.png Merci
  21. Bonjour Je dois concevoir une application capable de récupérer les informations (attributs) contenues dans les blocs insérés dans le dessin Autocad (je ne suis pas utilisateur d'Autocad à la base). Je suis sous Autocad 2011 et Visual studio 2010, je ne peux pas installer ObjectARX, donc pour tester mon appli je dois la compiler puis la charger dans Autocad à chaque fois donc pas évident à débuguer. J'ai beaucoup de mal à comprendre la hiérarchie des blocs (BlockTable, BlockTableRecord, BlockReference) et leur mode de construction. J'ai malgré tout réussi à extraire les références de bloc avec le code suivant (récupéré sur ce forum) : Private Function GetBlockReference(ByVal db As Database, ByVal ed As Editor) As ObjectIdCollection Dim result As New ObjectIdCollection Using tr As Transaction = db.TransactionManager.StartTransaction() Dim bt As BlockTable = DirectCast(tr.GetObject(db.BlockTableId, OpenMode.ForRead), BlockTable) For Each id As ObjectId In bt Dim btrA As BlockTableRecord = DirectCast(id.GetObject(OpenMode.ForRead), BlockTableRecord) Dim btr As BlockTableRecord = DirectCast(tr.GetObject(bt(btrA.Name), OpenMode.ForRead), BlockTableRecord) GetRefs(btr, result, ed) For Each anonId As ObjectId In btr.GetAnonymousBlockIds() Dim anonBtr As BlockTableRecord = DirectCast(tr.GetObject(anonId, OpenMode.ForRead), BlockTableRecord) GetRefs(anonBtr, result, ed) Next Next End Using Return result End Function Private Sub GetRefs(ByVal btr As BlockTableRecord, ByVal ids As ObjectIdCollection, ByVal ed As Editor) For Each id As ObjectId In btr.GetBlockReferenceIds(True, False) Dim br As BlockReference = DirectCast(id.GetObject(OpenMode.ForRead), BlockReference) Dim owner As BlockTableRecord = DirectCast(br.OwnerId.GetObject(OpenMode.ForRead), BlockTableRecord) If owner.IsLayout Then ids.Add(br.Id) ed.WriteMessage(" Ref = " + br.Name + " " + owner.Name + " " + vbCrLf) End If Next End Sub Ce qui sort pour le dessin testé : Début de l'extraction Ref = TRIPODE *Paper_Space Ref = EDTOLE *Model_Space Ref = EDTOLE *Model_Space Ref = EDTOLE *Model_Space Ref = ESTOLE *Model_Space Ref = _Cartouche *Model_Space Ref = EDCASE *Model_Space Succès de l'extraction Questions : le bout de code ci-dessus est-il bien indiqués si l'on veut récupérer toutes les références de blocs insérés dans le dessin ? Comment accéder aux informations contenues dans les attributs ? Pour infos, les blocs insérés peuvent être des blocs dynamiques. Merci
×
×
  • 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é