-
Compteur de contenus
169 -
Inscription
-
Dernière visite
-
Jours gagnés
5
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Lommig
-
Dans le cas, les triangles "TN" n'ont pas de nature de surface. Ils récupèrent donc la définition "DU CALQUE" dans lequel se trouve le MNT-Objet. Si tu modifies la couleur de ce calque, les triangles "TN" doivent prendre cette couleur. Guillaume
-
Bonjour, D'après ce que j'ai compris : => MNT-Faces3D : (Fonctionnement AutoCAD) La "surface" est définie par un ensemble de faces3D (objets AutoCAD). Ces faces3D sont dissociées par calques : "TN", "Talus" et "Projet". La gestion de la couleur et du matériau se fait donc "PAR CALQUE". (pour gérer le matériau par calque, on peut utiliser la commande "ATTACHERMATERIAU") => MNT-Objet : (Fonctionnement COVADIS) La "surface" est définie par un unique MNT-Objet COVADIS. Les natures de surface permettent de dissocier les triangles "TN", "Talus" et "Projet". La gestion de la couleur et du matériau se fait donc "PAR NATURE DE SURFACE". - La commande "MNTOBJNATSFCAFFECT" permet de visualiser les natures de surface sur un MNT et de gérer l'affectation des triangles. Elle ne permet pas de modifier la définition des natures de surface. - La commande "MNTOBJNATSFCGESTION" permet de gérer les natures de surface dans le dessin. Elle permet de modifier la couleur et le matériau définissant la nature de surface (et donc aux triangles du MNT). En résumé, si tu souhaites modifier la couleur des triangles dans un MNT-Objet : - Avec la commande "MNTOBJNATSFCAFFECT", tu identifies la nature de surface affectée aux triangles. - Avec la commande "MNTOBJNATSFCGESTION", tu modifies la définition de cette nature de surface (couleur et matériau). Guillaume
-
Bonjour, Sous AA2014, j'ai déjà rencontré le même problème : - Décalage d'épaisseur = "-1" (réél négatif) => la valeur est acceptée ! - Décalage d'épaisseur = "-7 + BT" => la valeur est acceptée ! La variable "épaisseur de base" est remplacée par le terme "BT" dans le tableau. - Décalage d'épaisseur = "-7 + EB*-1" (formule avec EB négative) => "cette valeur n'a pas un format correct" SOLUTION: Si je saisis directement la formule "-7 + BT*-1", alors elle est acceptée et elle devient "-7 + EB*-1" dans le tableau !!! Il y a bien une confusion entre le terme "EB" (Epaisseur de Base) et "BT" (Base Thickness). La variable "épaisseur de base" devient le terme "BT" SAUF si on lui applique un diviseur/multiplicateur, alors elle devient "EB", mais elle n'est pas acceptée ! Guillaume
-
Bonjour, Pour ceux que ça intéresse : Lien Autodesk Compte-rendu PDF de l'étude Guillaume
-
Bonjour, Lorsque je dois modéliser un garde-corps, j'utilise AutoCAD Architecture ou Revit Architecture. Ils ont un objet "Garde-Corps" qui génère un dessin 2D/3D. Par contre, le paramétrage est assez complexe... AutoCAD Architecture Revit Architecture Guillaume
-
Bonjour, Il n'existe pas de commande directe, mais il est possible de détourner la commande "Affecte Z selon Texte". Cette méthode ne fonctionne que si tes codes sont exclusivement numériques ! Le principe est d'échanger temporairement les attributs ALT et COD : - Renommer l'attribut ALT en ALT2 - Renommer l'attribut COD en ALT - Utiliser la commande "Affecte Z selon Texte" - Renommer les attributs : ALT en COD et ALT2 en ALT (pour un retour à la normale) Si tes codes ne sont pas numériques, tu peux utiliser "Extraction de données" (sur les points et les textes), faire un tri sous Excel, exporter un fichier CSV et charger de nouveaux points topo sous AutoCAD. Guillaume
-
gabarit Excel pour export nomenclature
Lommig a répondu à un(e) sujet de angelique dans AutoCAD Architecture
Bonjour, Si tu passes par le clic-droit sur une table de nomenclature, effectivement tu n'as pas accès à la case "Utiliser la table existante". Pour avoir accès à cette case, tu dois directement saisir la commande "SCHEDULEEXPORT". Mais je ne vois pas comment associer un gabarit Excel... Guillaume -
Bonjour, Je viens de faire qq essais et en effet, l'élévation n'est pas toujours conservée... C'est flagrant quand je passe en vue "Haut" : l'élévation est redéfinie à 0 ! (sous AA2012 et AA2014) Guillaume
-
Bonjour, Par "élévation courante", tu parles bien de la commande "SPECIFYOFFSET" et de la valeur écrite en bas à droite de l'écran ? J'ai fait un test sous AA2014 et l'élévation est bien conservée à la réouverture ! Peux-tu faire un essai sur un fichier vierge ? Guillaume
-
[résolu] fonction Raccord avec les murs [AA2014]
Lommig a répondu à un(e) sujet de Circus dans AutoCAD Architecture
Bonjour, Je suis sous AA2014 et je te confirme que la commande "raccord" fonctionne sur des objets "mur". Quel est ton rayon de raccordement ? Il est à 0 par défaut... (apres avoir lancé la commande "raccord", il faut choisir l'option "rayon") Guillaume -
Bonjour, Dim FilterType(0) As Integer Dim FilterData(0) As Variant [...] ' On prépare un filtre de sélection sur les insertions de bloc FilterType(0) = 0 FilterData(0) = "INSERT" FiltersType = FilterType FiltersData = FilterData L'extrait précédent permet de définir un filtre de sélection. Actuellement, la commande sélectionne toutes les références de blocs ( objet de type "INSERT" ). Pour sélectionner seulement les blocs "Repère", on peut faire : Dim FilterType(1) As Integer Dim FilterData(1) As Variant [...] FilterType(0) = 0 FilterData(0) = "INSERT" FilterType(1) = 2 FilterData(1) = "Repère" FiltersType = FilterType FiltersData = FilterData Un article (en anglais) sur le sujet : http://adndevblog.typepad.com/autocad/2012/07/vba-how-to-setup-selectionset-filters-for-a-block-or-layer.html Guillaume
-
Bonjour, Ce sujet (en anglais) peut t'intéresser : http://forums.augi.com/showthread.php?55147-Select-only-objects-in-the-active-layout Cette routine VBA parcourt les objets de la présentation nommée "Présentation1" : Sub TEST() Dim MaPrésentation As AcadLayout Set MaPrésentation = ThisDrawing.Layouts("Présentation1") For Each obj In MaPrésentation.Block ' Si l'objet est une référence de bloc : If TypeOf obj Is AcadBlockReference Then ' ... TON CODE ... End If Next obj End Sub Guillaume
-
Bonjour, Oui, je pense que c'est possible en VBA. Je te propose cette procédure : 1) récupérer le nom de chaque présentation 2) trier cette liste par ordre alpha-numérique 3) forcer la position d'onglet de chaque présentation Cette routine VBA parcourt les espaces en affichant leur nom et leur position actuel : Sub LISTE() Dim Esp As AcadLayout For Each Esp In ThisDrawing.Layouts MsgBox Esp.Name & " - " & Esp.TabOrder Next Esp End Sub (On obtient des messages du genre : "Model - 0", "Présentation1 - 1", "Présentation2 - 2", ...) Cette routine VBA force la présentation "Présentation1" au 3ème onglet : Sub MODIF() Dim MaPrésentation As AcadLayout Set MaPrésentation = ThisDrawing.Layouts("Présentation1") MaPrésentation.TabOrder = 2 End Sub Ce n'est qu'un début de réponse... Je te conseille de poster ton ébauche de code. Guillaume
-
Finir une commande avec une sélection (vb.net)
Lommig a répondu à un(e) sujet de Lommig dans ObjectARX/DBX, C++, .NET, RealDWG
Merci pour vos réponses ! Utilisant VBA avant, je ne m'y connais pas en API.NET... Il ne me reste plus qu'à apprendre ! Une petite question : Apparemment "SetImpliedSelection" accepte un jeux de sélection (comme dans l'exemple de (gile)) ou un tableau d'ObjectID. Cette deuxieme méthode m'intéresse pour traiter un tableau d'objets sans passer par une sélection. En cherchant sur Internet, j'ai réussi à récupérer le tableau des ObjectID avec : Imports Autodesk.AutoCAD.DatabaseServices Dim TableauID() As ObjectId ' Pour chaque objet AutoCAD dans ma liste For Each Objet In Liste ' Récupération de l'Handle Dim hn As Handle = New Handle(Convert.ToInt64(Objet.Handle, 16)) ' Conversion en ObjectID Dim id As ObjectId = db.GetObjectId(False, hn, 0) ' Ajout à mon tableau TableauID(i) = id i = i + 1 next Objet ' Afficher la sélection ed.SetImpliedSelection(TableauID) Est-ce la bonne méthode ? (quitte à commencer avec l'API.NET, autant bien commencer...) -
Finir une commande avec une sélection (vb.net)
Lommig a posté un sujet dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, Je cherche à terminer une commande avec une sélection d'objets à l'écran (dans le même genre que "sélection rapide" ...). Mes objets peuvent être stockés sous deux formes : - UN JEUX DE SELECTION Dim Selection As AcadSelectionSet ' La sélection suit un filtre OU - UN TABLEAU D'OBJETS Dim ListeObjets() As AcadEntity ' Si l'objet (point, bloc, polyligne, ...) répond à des critères particuliers, je l'ajoute à la liste... A la fin de ma commande, je souhaite avoir ces objets sélectionnés à l'écran. (Actuellement, je contourne le problème en créant un groupe, en y ajoutant les objets et en utilisant SendCommand("Select g " & NomDuGroupe) à la fin de ma commande...) Avez-vous une méthode plus "propre" ? sans utiliser "SendCommand" ? Merci d'avance pour vos conseils -
Dans un nouveau dessin, j'ai créé plusieurs présentations avec différents noms de traceur. La macro VBA suivante permet de réaffecter "Aucun" à tous les noms de traceur : Sub AucunNomTraceur() Dim Presentation As AcadLayout For Each Presentation In ThisDrawing.Layouts Presentation.ConfigName = "Aucun" Next Presentation End Sub Elle fonctionne sur mon AutoCAD... Peux-tu faire ce simple test ? Concernant les styles de tracé, le fichier "monochrome.stb" (et non "monochrome.sbt") n'est pas accepté dans un dessin basé sur des styles CTB... Il faut vérifier la variable PSTYLEMODE (= 0 pour un dessin basé sur des STB) avant d'utiliser "StyleSheet".
-
Bonjour, Concernant le nom du traceur, il s'agit peut-être d'une erreur sur le terme "aucun". Quelle est ta version d'AutoCAD ? Cette macro fonctionnne sur un AutoCAD 2010-2011-... français : Sub AucunNomTraceur() 'On Error Resume Next Dim Presentation As AcadLayout For Each Presentation In ThisDrawing.Layouts Presentation.ConfigName = "Aucun(e)" Next Presentation End Sub Guillaume
-
Bonjour, Ta variable "docName" est définie dans une procédure et inconnue dans les autres... Je te propose simplement : (car si j'ai bien compris, ton bouton "CommandButton3" n'est pas vraiment utile...) Guillaume
-
Bonjour, ThisDrawing.Name te retourne le nom du dessin courant. (pour information, ThisDrawing.FullName te retourne le chemin complet) Guillaume
