Aller au contenu

Autodesk Map

Logiciel de la société Autodesk pour la création, la maintenance, l'analyse et le partage de vos données de conception et spatiales.


752 sujets dans ce forum

    • 4 réponses
    • 1,3 k vues
    • 1 réponse
    • 994 vues
    • 1 réponse
    • 1,1 k vues
    • 0 réponse
    • 2,7 k vues
    • 18 réponses
    • 13,3 k vues
    • 1 réponse
    • 4,6 k vues
    • 2 réponses
    • 98 vues
    • 0 réponse
    • 94 vues
    • 12 réponses
    • 773 vues
    • 15 réponses
    • 1 k vues
    • 2 réponses
    • 432 vues
    • 10 réponses
    • 561 vues
    • 10 réponses
    • 940 vues
  1. Import fichier *.GML

    • 14 réponses
    • 2,9 k vues
    • 0 réponse
    • 288 vues
    • 9 réponses
    • 768 vues
    • 10 réponses
    • 1,1 k vues
    • 0 réponse
    • 633 vues
    • 4 réponses
    • 784 vues
    • 12 réponses
    • 3,5 k vues
    • 1 réponse
    • 826 vues
  2. Concaténer 2 textes cote à cote

    • 7 réponses
    • 842 vues
  3. Plusieurs questions

    • 2 réponses
    • 617 vues
    • 4 réponses
    • 829 vues
  4. etat de visibilité changeante

    • 0 réponse
    • 474 vues


  • Statistiques des forums

    • Total des sujets
      49,4 k
    • Total des messages
      299,4 k
  • Sujets

  • Messages

    • Bonjour @Scout OK, je comprends mieux maintenant. Basiquement, j'ai commencé par un simple ATTSYNC et j'ai bien constaté le dysfonctionnement cité. Étonné, je suis allé voir dans l'éditeur étendu et là… surprise ! Le bloc contient 53 étiquettes d'attributs, voir le gif. La seule chose à faire est de la reconstruire proprement à partir de nouvelles définitions d'étiquettes. J'ai testé et ça marche parfaitement. Par contre, je n'ai aucune idée d'où vient votre erreur, est-ce un copier-coller raté ? je n'en sais rien. Je remarque qu'il n'y a aucune entité graphique (ligne,point,cercle...) mais que des ATTDEF. Je me permets de déconseiller ce genre de définition de bloc, car le point d'insertion est difficile à trouver. En effet, si vous voulez une ligne qui part du point d'insertion de ce bloc, vous allez choisir l'accrochage INSERTION et AutoCAD va trouver autant d'insertions qu'il y a d'ATTDEF sans jamais trouver le VRAI point d'insertion du bloc. Conseil : mettre un POINT au point d'insertion (point de définition du bloc) et si vous ne voulez pas le voir mettre PDMODE à 1.   Amicalement    
    • bonjour Didier oui j'aurai du dire mes attributs voici le Bloc avec les Attributs Merci Attributs.dwg
    • c'est cool le Bordereau à demander au support et à installer comme un programme, vraiment top, surtout lorsque l'on est pas administrateur de son poste et qu'il faut faire intervenir un informaticien pour l'installer... ce n'est ni une surprise lorsque l'on a besoin de faire un quantitatif sensé prendre 15 minutes, ni une perte de temps pour soit et l'informaticien...  il y a d'autres petits trucs de ce genre dans le package ?
    • Un grand merci MR LECRABE, je pense que la fabuleuse DLL de OLIVIER ECKMANN est l'outil tant rechercher depuis qu'on nous demande de travailler avec les  attributs d'objets. Là j'attends plus que le service informatique veule bien me l'installer sur mon post. Respect MR!
    • Salut, Il m'a semblé que la question pouvait être un bon exemple pour une palette C#/WPF. Télécharger LayoutPaletteSetup.msi. Débloquer le fichier et lancer l'installation. La commande LAYOUTS affiche la palette (compatible toutes versions d'AutoCAD pleines ou verticales depuis 2013). Pour ceux que ça intéresse, le code (de plus amples explications à propos des interfaces utilisateur en .NET sur cette page). La classe CustomPaletteSet définit un jeu de palette. using Autodesk.AutoCAD.Windows; using System; using AcCoreAp = Autodesk.AutoCAD.ApplicationServices.Core.Application; namespace LayoutPaletteNetCore { internal class CustomPaletteSet : PaletteSet { static bool wasVisible; public CustomPaletteSet() : base("Layouts", "LAYOUTS", new Guid("{92007042-8476-48DB-9003-AD5AA0E47C98}")) { Style = PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.ShowCloseButton | PaletteSetStyles.ShowPropertiesMenu; MinimumSize = new System.Drawing.Size(150, 450); AddVisual("Layouts", new LayoutControl()); var docs = AcCoreAp.DocumentManager; docs.DocumentBecameCurrent += (s, e) => Visible = e.Document != null && wasVisible; docs.DocumentCreated += (s, e) => Visible = wasVisible; docs.DocumentToBeDeactivated += (s, e) => wasVisible = Visible; docs.DocumentToBeDestroyed += (s, e) => { wasVisible = Visible; if (docs.Count == 1) Visible = false; }; } } } Le fichier PaletteControl.xaml définit le contrôle WPF (palette) <UserControl x:Class="LayoutPaletteNetCore.LayoutControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:LayoutPaletteNetCore" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> <Grid Background="WhiteSmoke"> <ListBox Margin="5" ItemsSource="{Binding LayoutList}" SelectionMode="Single" SelectedItem="{Binding CurrentLayout}"/> </Grid> </UserControl> Le fichier PaletteControl.xaml.cs définit la logique d'interaction du contrôle using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using System.Collections; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Threading.Tasks; using System.Windows.Controls; using AcCoreAp = Autodesk.AutoCAD.ApplicationServices.Core.Application; namespace LayoutPaletteNetCore { public partial class LayoutControl : UserControl, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); private string currentLayout; public ObservableCollection<string> LayoutList { get; private set; } public string CurrentLayout { get { return currentLayout; } set { currentLayout = value; SetCurrentLayout(); NotifyPropertyChanged(nameof(CurrentLayout)); } } public LayoutControl() { InitializeComponent(); DataContext = this; LayoutList = new ObservableCollection<string>(); AcCoreAp.DocumentManager.DocumentActivated += OnDocumentActivated; var doc = AcCoreAp.DocumentManager.MdiActiveDocument; if (doc != null) { UpdateLayouts(); HandleEvents(LayoutManager.Current); } } private async void SetCurrentLayout() { var docs = AcCoreAp.DocumentManager; await docs.ExecuteInCommandContextAsync( (_) => { LayoutManager.Current.CurrentLayout = CurrentLayout; return Task.CompletedTask; }, null); } private void OnDocumentActivated(object sender, DocumentCollectionEventArgs e) { UpdateLayouts(); HandleEvents(LayoutManager.Current); } private void HandleEvents(LayoutManager layoutManager) { layoutManager.LayoutCopied += (_, _1) => UpdateLayouts(); layoutManager.LayoutCreated += (_, _1) => UpdateLayouts(); layoutManager.LayoutRemoved += (_, _1) => UpdateLayouts(); layoutManager.LayoutRenamed += (_, _1) => UpdateLayouts(); layoutManager.LayoutsReordered += (_, _1) => UpdateLayouts(); layoutManager.LayoutSwitched += (_, _1) => CurrentLayout = layoutManager.CurrentLayout; } private void UpdateLayouts() { var db = HostApplicationServices.WorkingDatabase; using (var tr = new OpenCloseTransaction()) { LayoutList.Clear(); var layouts = ((DBDictionary)tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead)) .Cast<DictionaryEntry>() .Select(e => (Layout)tr.GetObject((ObjectId)e.Value, OpenMode.ForRead)) .OrderBy(l => l.TabOrder) .Select(l => l.LayoutName); foreach (string layoutName in layouts) { LayoutList.Add(layoutName); } CurrentLayout = LayoutManager.Current.CurrentLayout; } } } } La commande pour afficher la palette. using Autodesk.AutoCAD.Runtime; [assembly: CommandClass(typeof(LayoutPaletteNetCore.Commands))] namespace LayoutPaletteNetCore { public class Commands { static CustomPaletteSet palette; [CommandMethod("LAYOUTS")] public static void ShowLayoutsPalette() { if (palette == null) { palette = new CustomPaletteSet(); } palette.Visible = true; } } }  
  • Sujets

×
×
  • 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é