Aller au contenu

Maxence DELANNOY

Membres
  • Compteur de contenus

    140
  • Inscription

  • Dernière visite

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

  1. A la réflexion, j'ai dit une bêtise. GetSnapPoints est appelé à chaque fois que la souris se déplace, donc avec un accrochage PROCHE, tu dois retourner le point sur l'entité qui est le plus proche du curseur (en tenant compte de la distance ; variable système APERTURE ?).
  2. Je pense qu'il faut que tu calcules la position des points lors du WorlDraw, puis tu les stockes dans des données étendues avec un code 1011 (DxfCode.ExtendedDataWorldXCoordinate) pour qu'ils soient transformés avec l'entité support. J'ai déjà bricolé avec ça dans le passé, mais je ne me souviens plus trop de comment ça marche exactement. Il me semble que pour l'accrochage proche, ça doit se passer dans le PointFilter. Il faudrait demander à (gile), il a déjà implémenté des accrochages personnalisés dans son complément OsnapPalette : https://apps.exchange.autodesk.com/ACD/fr/Detail/Index?id=appstore.exchange.autodesk.com%3aosnappalette_windows32and64%3afr
  3. Quand je rencontre des problèmes de performances, j'utilise la classe StopWatch (dans System.Diagnostics) pour mesurer le temps d'exécution de chaque bloc de code, ce qui me permet de localiser la portion de code problématique. Tu peux également utiliser un profileur comme dotTrace par exemple (personnellement j'ai toujours trouvé ces outils peu pratique à utiliser). Ton test avec les décalages n'est pas représentatif pour moi car dans un cas, AutoCAD ne fait que transformer les entités en primitives graphiques lors de la régénération, alors que dans le deuxième il doit générer des courbes en plus. Pour le reste, tu as un exemple d'utilisation d'un OsnapOverrule ici ; http://through-the-interface.typepad.com/through_the_interface/2013/12/disabling-snapping-to-specific-autocad-objects-using-net-part-1.html
  4. Normalement il suffit d'assigner ton menu contextuel à la propriété ContextMenuStrip de ton dataGridView : this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1; Le contrôle DataGridView se charge ensuite de positionner correctement le menu. Sinon pour convertir du système de coordonnées de la cellule au système de coordonnées de la grille, tu peux utiliser GetCellDisplayRectangle : var dgv = (DataGridView) sender; Rectangle rect = dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false); contextMenuStrip1.Show(dgv, new Point(rect.Left + e.X, rect.Top + e.Y));
  5. Perso, je n'ai jamais eu de problème avec VS 2013. En même temps, je ne mets jamais l'action de génération sur aucun (j'exclus le fichier du projet), donc s'il y avait un problème à ce niveau je ne m'en serai pas aperçu. Et j'utilise généralement C# au lieu de VB.NET. Et pour ce qui est du Edit & Continue, je ne l'utilise pas car Revit ne le supporte pas (avec Revit, il faut activer le mode de compatibilité managé, ce qui désactive le Edit & Continue).
  6. Maxence DELANNOY

    RIA

    http://seek.autodesk.com/product/locale/adsk/revit/families/mep/empty/Revit_MEP1036 ou http://bimbandit.com/bimdetails.php?detailsid=272 Cherche Fire Hose Reel Revit sur Google
  7. Maxence DELANNOY

    fond d'écran

    Je ne suis pas sur de bien comprendre ta question. Sur Revit, tu as un thème sombre et un thème clair qui permet de changer la couleur de certains éléments de l'interface comme la barre de titre par exemple (le réglage se trouve dans Options > Interface utilisateur > Thème actif). Mais ça n'affecte pas le ruban lui même qui reste toujours clair. Avec Revit 2016, tu peux aussi changer la couleur du fond de la zone de travail qui est blanche par défaut dans Revit (Options > Graphique > Couleurs > Arrière-plan).
  8. Tu peux filtrer directement sur l'étiquette d'attribut avec DxfCode.AttributeTag : PromptSelectionResult psr = ed.SelectAll(new SelectionFilter(new TypedValue[] { new TypedValue((int) DxfCode.AttributeTag, "TOTO") })) Attention, ça te renvoie les références de bloc qui contiennent la référence d'attribut, pas la référence d'attribut elle-même.
  9. Maxence DELANNOY

    Catégorie de famille

    Non. Les catégories sont "Built-in" et tu ne peux pas en créer de nouvelles.
  10. Maxence DELANNOY

    Passage à REVIT

    Tant que j'y suis, au niveau matériel, rien ne vaut un bon SSD pour améliorer les temps de démarrage et de chargement.
  11. Maxence DELANNOY

    Passage à REVIT

    Une Quadro 410 ou K620 c'est un peu plus de 150 €. Une solution milieu de gamme (Quadro K2000) c'est 400 € (Davis Hasselhoff en est très content ;) ).
  12. Maxence DELANNOY

    Passage à REVIT

    Autodesk certifie les cartes graphiques pour un usage avec leurs produits. Vous pouvez vérifier que votre carte est certifiée ici : http://usa.autodesk.com/adsk/servlet/syscert?id=18844534&siteID=123112 Je pense qu'il n'y a que les cartes professionnelles qui sont certifiées (NVIDIA Quadro ou AMD FireGL). Utiliser une carte non certifiée est risqué car ça joue énormément sur la stabilité du système. Il est préférable d'investir quelques centaines d'euros dans une carte plutôt que de subir des plantages à répétition qui vont se traduire par une perte de productivité importante. Si le prix est vraiment un problème, il y a plein de cartes pro d'occasion sur PriceMinister.
  13. C'est parce que le matériau qui sert de finition intérieure pour ton mur (plaque de BA13) a sa transparence à 100% (onglet Graphiques, section Ombrage).
  14. Tu peux aussi obtenir le nom de l'espace courant avec la variable système WSCURRENT : var wsCurrent = (string)Application.GetSystemVariable("WSCURRENT");
  15. Tu peux utiliser PDFtk pour concaténer tes PDF. C'est un exécutable qui n'est pas trop gros, donc tu peux le distribuer avec ton programme. Sinon la commande PUBLIER offre plus de possibilités que PLOT pour obtenir des PDF ou DWF multipages, mais il y a des limitations. Si tu as plusieurs zones à tracer dans la même présentation, je ne pense pas que ça puisse marcher.
  16. Extensible storage : http://thebuildingcoder.typepad.com/files/cp6760-l_tammik_estorage.pdf
  17. Je ne suis sur de bien comprendre ta question mais avec l'API .NET on peut créer des objets transitoires qui réagissent aux clics de souris : http://through-the-interface.typepad.com/through_the_interface/2012/09/creating-reactive-transient-autocad-geometry-using-net.html
  18. Pour stocker des données binaires dans un dictionnaire. A Pattern for Storing Structured Data in AutoCAD entities.pdf
  19. Le plus propre ce serait d'afficher ta barre de progression dans une autre boite de dialogue modale qui s'afficherait avant ta boite de dialogue principale. Ça ne sert à rien d'afficher des contrôles si l'utilisateur ne peut pas s'en servir. En plus tu pourrais ainsi afficher en plus un bouton Annuler.
  20. Il ne faut utiliser SendCommand qu'en dernier recours. Tu peux obtenir très simplement des points à intervalles réguliers sur ta courbe avec Curve.GetPointAtParameter et ensuite tu crées des insertions de bloc sur chaque point.
  21. La fonction ne doit prendre qu'un seul argument de type ResultBuffer : <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal args As ResultBuffer) As ResultBuffer
  22. Même si ta fenêtre est modeless, tu dois bien lancer ton traitement sous la forme d'une commande non ? Donc tu lances ta transaction dans cette commande. En général, tu ne dois ouvrir qu'une seule transaction, sauf si tu dois annuler certains parties du traitement (comme l'option Annuler dans la commande LIGNE qui permet d'annuler le dernier segment).
  23. Pour les performances, un article intéressant (manque TransactionManager.GetObject malheureusement) : http://spiderinnet1.typepad.com/blog/2012/08/autocad-net-real-performances-of-objectidopengetobject-transaction-and-openclosetransaction.html
  24. Il ne faut pas démarrer une transaction dans une fonction. Utilise TransactionManager.GetObject pour obtenir ton objet via la transaction de plus haut niveau (TopTransaction). Tu peux aussi utiliser ObjectId.GetObject mais il parait que c'est un peu plus lent : http://adndevblog.typepad.com/autocad/2012/07/objectidgetobject.html
  25. Je pense qu'il faut la supprimer et la recréer avec Database.AttachXref
×
×
  • 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é