Aller au contenu

michouka

Membres
  • Compteur de contenus

    22
  • Inscription

  • Dernière visite

Tout ce qui a été posté par michouka

  1. Tout simplement merci. C'est exactement ce dont j'avais besoin. Quelle maitrise
  2. Bonjour, Plutôt que de dire que c'est vite fait, moi je dirais qu'en plus d'être vite fait, c'est bien fait !! Un grand merci à toi. Par contre histoire d'être encore plus exigent, est-il possible d'obtenir le résultat de la différence avec un facteur de 1000? Mon calcul serait plutôt du genre 247.607-247.549 = 58 et non 0.058 et s'il était même possible de toujours ajouter d= comme préfixe (je sais, je commence à être plus qu'exigent !!) Comme ça la valeur affichée serait d=58. Petite question en plus, pour définir le style du texte, sa hauteur, etc.. : tu vas bien rechercher la valeur par défaut dans Autocad de mon style de texte ou c'est "(list 5 (getvar "TEXTSIZE") 5 "Standard" (getvar "CLAYER") 0.0 0)" qui lui impose ?
  3. Salut Didier, Non, je te rassure, je parle bien de texte et non pas d'attribut. Dans ma grande entreprise de transport ... nous utilisons des applications locales pour importer notre semis de points et dont l'altitude est reprise par un texte au même point d'insertion que le point lui même.
  4. Salut, Je ne dis pas que ce n'est pas possible avec les champs. En effet, ta méthode fonctionne, je l'ai déjà utilisée à plusieurs reprises. Mais moi dans mon cas, je souhaite faire ça à la volée... J'ai pas mal de points à faire, et je gagnerai du temps en utilisant un lisp plutôt que de devoir refaire la même démarche par couple de points en passant par la boite de dialogue des champs. D'autant plus que les valeurs de départ correspondent à un semis de points de topo : du coup elles ne changent pas et donc les champs n'ont plus vraiment d'utilité dans mon cas. Merci tout de même pour ta réponse.
  5. Bonjour à tous, J'aurais besoin d'un petit coup de main (plutôt d'un gros d'ailleurs) n'étant pas très familier avec le lisp. Voilà, je voudrais pouvoir insérer un texte (ou un bloc) dont la valeur serait la différence d'altitude entre deux points. Concrétement, je souhaiterais cliquer sur le texte (déjà présent sur mon dessin) qui indique l'altitude de mon 1er point puis cliquer sur le second texte(lui aussi présent sur mon dessin) et ensuite cliquer sur le point d'insertion de mon nouveau texte (ou bloc) qui serait bien la différence entre les deux index de mes sélections précédentes. J'ai bien vu une chose un peu similaire sur les champs, mais je suis incapable de l'adapter à mon cas. Merci d'avance.
  6. michouka

    Visibilité bloc dynamique

    merci pour vos réponses. C'est bien ça qui m'intéresse Gile merci encore.
  7. Bonjour à tous, je voulais savoir s'il y avais un moyen de pouvoir identifier l'état de visibilité dans lequel se trouve le bloc dynamique et de récupérer cette info en VBA. Merci d'avance
  8. michouka

    Lisps de gile

    (gile), Je viens d'essayer LATT c'est intéresant mais malheureusement, ça ne correspond pas à mes besoins. Dans mon cas, c'est à l'insertion du bloc, que j'ai besoin d'incrémenter l'attribut. Pour entrer un peu dans les détails, j'utilise ton lisp lors d'un relevé topographique sur le terrain. La manip consiste à insérer un bloc nommé "POINT" au fur et à mesure du levé. Le problème est que je dois sans cesse interrompre le lisp pour indiquer des informations complémentaires à mes points et du coup je suis obligé de relancer le lisp et de refaire la manip, à savoir : rechercher du bloc "POINT" dans la liste déroulante et ensuite retrouver à quel numéro je me suis arreté précedemment. En tout cas, merci pour tes conseils
  9. michouka

    Lisps de gile

    Salut, Tout d'abord au rique de paraitre original, un grand merci (gile) pour ton travail. Petite suggestion: Je viens de découvrir le lisp INCATT et dans mon cas, j'ai besoin d'incrémenter toujours le même attribut du même bloc et ce qui m'aiderais vraiment ce serait de pouvoir appliquer le script toujours sur mon bloc nommé "POINT" (sans devoir le choisir dans la liste déroulante) et en plus de pouvoir repartir de ma dernière valeur d'incrémentation même si entre temps, j'ai effectué une nouvelle commande. Est-ce possible? Merci en attendant et encore bravo
  10. michouka

    sélection blocs dynamiques

    Merci pour l'info (Gile). Par contre, une dernière petite question sur le sujet : comment je peux purger mon filtre à la fin de mon programme pour ne pas avoir un bug au cas où je relance ma macro ??
  11. michouka

    sélection blocs dynamiques

    Sacha, je viens de mettre en application ton exemple de filtre, ça marche impeccable, mais ne connaissant pas le système de filtre, peux-tu m'éclairer sur le choix des valeurs de BaliseBlock(1)=67 ; BaliseBlock(2) =8 etc... Merci d'avance
  12. michouka

    sélection blocs dynamiques

    Merci à vous pour votre aide, je mets ça en application dès que possible, en testant avec les filtres.
  13. Bonjour, Je souhaite pouvoir faire une sélection sur les blocs dymamiques de mon dessin, et pouvoir retranscrire certaines valeurs d'attributs dans un fichier Excel. Pour le moment, je n'ai pas trouvé comment boucler uniquement sur les blocs dynamiques. A défaut, je tourne sur tous les objets du document. Si je pouvais avoir un petit coup de pouce. Merci. Sub quantitatif() Dim blockrefobj As AcadBlockReference Dim nom, proprietes, distance, designation, pkd, pkf Dim activeDoc As AcadDocument Dim varAttributes As Variant Dim Excelobj As Excel.Application Dim ExcelobjSheet As Excel.Worksheet Set Excelobj = New Excel.Application Excelobj.Visible = True Set ExcelobjWorkbook = Excelobj.Workbooks.Add Excelobj.Sheets("Feuil1").Name = "Quantitatifs" Excelobj.Cells(1, 1).Value = "Pk Début" Excelobj.Cells(1, 2).Value = "Pk Fin" Excelobj.Cells(1, 3).Value = "Zone de chantier" Excelobj.Cells(1, 4).Value = "Longueur (m)" Excelobj.Cells(1, 6).Value = "Designation" Excelobj.Cells(1, 7).Value = "Longueur (m)" Excelobj.Cells(1, 9).Value = "Connexes" Excelobj.Cells(1, 10).Value = "Longueur (m)" 'on met la 1ère ligne en gras Excelobj.Rows("1").Font.Bold = True 'on met la colonne C en gras Excelobj.Columns("C").Font.Bold = True 'on centre horizontalement les textes Excelobj.Columns("A:J").HorizontalAlignment = 3 'on modifie le format des colonnes Excelobj.Columns("A:J").NumberFormat = "0" 'on recupere le document actif Set activeDoc = ThisDrawing.Application.ActiveDocument 'on boucle sur les objets du document 'on defini j pour le nombre de blocs dynamique Dim j j = 0 For i = 0 To activeDoc.ModelSpace.Count - 1 Set nom = activeDoc.ModelSpace.Item(i) ' on teste le calque contenant les blocs zone travaux If nom.Layer = "ZONE_TRAVAUX" Then proprietes = nom.GetDynamicBlockProperties distance = proprietes(10).Value * 5 varAttributes = nom.GetAttributes designation = varAttributes(2).TextString pkd = varAttributes(0).TextString pkf = varAttributes(1).TextString Excelobj.Cells(2 + j, 1).Value = pkd Excelobj.Cells(2 + j, 2).Value = pkf Excelobj.Cells(2 + j, 3).Value = designation Excelobj.Cells(2 + j, 4).Value = distance j = j + 1 End If 'fin de boucle Next 'on defini k pour le nombre de blocs dynamique Dim k k = 0 For i = 0 To activeDoc.ModelSpace.Count - 1 Set nom = activeDoc.ModelSpace.Item(i) ' on teste le calque contenant les blocs armement futur If nom.Layer = "ARMEMENT_FUTUR" Then proprietes = nom.GetDynamicBlockProperties distance = proprietes(6).Value * 5 varAttributes = nom.GetAttributes designation = varAttributes(2).TextString Excelobj.Cells(2 + k, 6).Value = designation Excelobj.Cells(2 + k, 7).Value = distance k = k + 1 End If 'fin de boucle Next 'on defini l pour le nombre de blocs dynamique Dim l l = 0 For i = 0 To activeDoc.ModelSpace.Count - 1 Set nom = activeDoc.ModelSpace.Item(i) ' on teste le calque contenant les blocs connexes If nom.Layer = "CONNEXES" Then proprietes = nom.GetDynamicBlockProperties distance = proprietes(4).Value * 5 varAttributes = nom.GetAttributes designation = varAttributes(2).TextString Excelobj.Cells(2 + l, 9).Value = designation Excelobj.Cells(2 + l, 10).Value = distance l = l + 1 End If 'fin de boucle Next 'on créer un filtre Excelobj.Cells.Select Excelobj.Selection.AutoFilter 'on ajuste les colonnes Excelobj.Columns.AutoFit 'retour selection cellule A1 Excelobj.Range("A1").Select End Sub
  14. merci de ton aide Didier, je suis finalement passé par la fonction Rouund (X / 50,2) * 50 ça marche impec
  15. Bonjour à tous, Voilà ce qui m'ammène, je dois arrondir mes valeurs de textes au demi centimètre, mais je patine un peu quand à la façon de procéder. J'ai bien pensé à passer par Excel et ainsi utiliser la formule " =ARRONDI(X/50;2)*50" mais étant donné que je débute en VBA, je me demandais s'il n'y avait pas une façon plus simple de gérer ça. Une idée....
  16. Merci pour ton intervention Patrick, de mon côté, grâce aux connaissances d'un collégue voici ce à quoi nous sommes arrivés:
  17. Je pense qu'un petit dessin permettra de mieux cibler mon problème!!! http://nsa05.casimages.com/img/2009/02/18/090218110412463611.png Voilà, en fait je désire pouvoir isoler sur un autre caque tous les blocs verts et bleus (nommés blocs A et B) qui n'ont pas de bloc rouge associé (bloc C), je dois comparer les coordonnées en X de A et B par rapport à C mais mes connaissances en VBA sont très limitées!!! [Edité le 18/2/2009 par michouka]
  18. Bonjour à tous, Je cherche le moyen de pouvoir sélectionner un type de bloc A dans mon dessin uniquement si un type de bloc B posséde la même coordonnée en X, sachant que je débute en VBA. j'espère être assez clair. Merci d'avance pour votre aide...
  19. Christian, Merci pour ta proposition pour la convertion de DXF vers DWG mais avec A9converter c'est rien que du bonheur!! En tout cas merci quand même. Mickael
  20. Bonjour Eric, Tout d'abord merci pour l'adresse du convertisseur DXF DWG.Enfin un bon programme!!! Deuxième chose, je viens de télécharger la version 0.9 et laisse moi te dire que ça n'a rien à voir avec le reste. Je n'ai plus les nombreux plantages que j'ai connu sur la version précédante et que dire de la vitesse, c'est incomparable. En plus, le fait de pouvoir supprimer directement les .BAK est une très bonne chose. Et pour finir, le fait de lancer directement Autocad avec SAS est une petite "révolution". Que de temps de gagner. Donc pour conclure,je ne dirai qu'une chose félicitation pour cette nouvelle version. Mickael
  21. Salut christian Et oui c'est vrai comme tu le dis, tant que c'est gratuit, l'utilisateur est exigeant. Pour répondre à ta question, oui ma seul manip avec les DXF c'est de les ouvrir pour les convertir en DWG pour ensuite utiliser SUPERAUTOSCRIPT. J'ai bien trouvé des convertisseurs dxf en dwg mais la plupart du temps celà ne permet que de selectionner que 3 fichiers à la fois ou alors le logiciel est payant. Mickaël
  22. Salut Eric Je me sers de SuperAutoScript depuis un petit moment déjà. Le problème est qu'on ne peut utiliser que des fichiers DWG. Pense tu un jour pouvoir intégrer également les fichiers DXF. Moi perso ça me faciliterai la vie!!! 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é