-
Compteur de contenus
813 -
Inscription
-
Dernière visite
-
Jours gagnés
7
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Curlygoth
-
Insertion d\'une reference externe plan dwg avec macro vba
Curlygoth a répondu à un sujet dans Routines VBA
as tu toujours besoin d'aide ? (2011 le topic XD bon ben on verra XD) -
je deterre ce topic : tu cherches toujours à importer tes points ? je veux bien mais je te propose de gérer tes options depuis autocad et non depuis excel comme ça tu vas chercher ton fichier de point depuis autocad ! j'attends ta réponse
-
OPTIMISATION DE DECOUPE
Curlygoth a répondu à un(e) sujet de PHILPHIL dans Devis, métré, estimation, quantitatif
Mmmm... si tu as X barres ou plaques de telle dimension comment sortir un maximum de piece ? Je veux bien tester la programmation d'un problème comme celui ci ^^ -
Bonojur, je ne sais pas si vous connaissez ce jeu solo pour les etudiant en étude qui s'ennuie... On fais une grille de 5x5 puis on dois la remplir de 1 à 25 mais en respectant des déplacements pour poser le numéro suivant ! attention il y a un fichier TEMP.xls c'est pour jouer au fichier "jeu du 25" en lecture seul si le fichier est deja ouvert par quelqu'un d'autres sur un réseau et enregistrer le score :-) ! allez dite moi ce que vous en pensez ! je ne l'ai pas inventé j'ai juste digitalisé ce jeu en excel xD JEU DU 25.zip
-
Proposer la fusion de calques
Curlygoth a répondu à un(e) sujet de Aleck_Ultimate dans AutoCAD, liste de souhaits
je pose la question avant mais je peux te faire ça => En VBA, ça t'irais ? -
[WIP] Une polyligne de découpe
Curlygoth a répondu à un(e) sujet de Curlygoth dans Programmer en s'amusant
Mmm.. oui mais si tu veux mesurer faut le faire automatiquement et suivant plein de paramètres (calque, propriétés, Extraire ce qui t'interresse etc etc...) et donc pas coupé ce qui ne doit pas l'être... et d'ailleurs pour les métrés je l'ai deja ;-) donc bon... du coup, je vais prendre la même base de code l'améliorer et faire l'inverse ^^ (pour l'extérieur du polygone) Là, c'est plus pour faire un nouvel outil avec une autre fonction qui est beaucoup plus simpliste ^^ on est dans le forum de programmer en s'amusant hein =) -
Bonjour, Je me lance dans différents "challenge" pour la programmation de modules sur autocad (en VBA car je sais que vous n'aimez pas ça XD). J'ai réussi à calculer les longueurs de certains réseaux dans un polygone, et extraire les longueurs qui sont à l’intérieur dans un tableur (oui un peu comme pour les IC-OL)... Mais, il m'arrive parfois de travailler sur des dessin dwg très (trop) grand et plûtot que de mettre en reference mes fonds de plan et de les délimiter (rassurez vous c'est ce que je fais mais bon là : c'est pour le jeu). Les règles : Créer une forme : Tous les objets en contact avec cette polyligne seront coupées ! Tout ce qui est à l'extérieur de cette forme sera effacer ! Avancement : 1°) Détecter les objets dans une polyligne 2°) Couper les intersections 3°) Supprimer les objets à l'exterieur 4°) PRET ! 5°) J'ai aperçu un petit problème ! vous pouvez le télécharger pour voir où est le bug si le coeur vous en dit ! A appeler : SUPP_EXT_FEN.dvb!SUPP_EXT_FEN.SUPP_EXT_FEN SUPP_EXT_FEN.zip
-
mmm... sur Covadis je sais pas... par contre en VBA c'est possible.. et surement en Lisp (mais je connais pas le Lisp...)
-
Rotation de N Blocs en fonction d une Valeur d Attribut
Curlygoth a répondu à un(e) sujet de lecrabe dans Routines LISP
VBA interdit ? -
Bonjour à tous, Je programme souvent de mon coté et je n'en fait profiter personne... car le vba blabliblablo... Je vais donc tester de vous partager un Work in Progress qui sera utile (pour peut-etre plein de monde). Avant les critiques : je signale que je vais faire du VBA pour ce projet et Je vous invite à aller voir mes outils...Si la curiosité vous en dit...(voir ma signature) Pas de référence à ajouter (histoire que cela circule) en piece jointe l'interface ! que je me permettrais de mettre à jour en fonction de vos avis ! Je mettrais ce topic à jour dès que mon programme évoluera ! Données : L'idée est de réaliser un explorerateur sans référence. Alimenter une liste avec les documents favoris à ajouter dans le programme. et si vous avez d'autres idées n'hésitez pas ! Avancement : 1°) L'interface est créée (du moins la première version) 2°) Le code pour extraire les noms des dossiers dans le dossier courant (liste de gauche est faite) Le code pour extraire le nom des fichiers du dossier courant (liste de droite est faite) 3°) La naviguation fonctionne grâce au bouton retour ! (Vous pouvez coller votre chemin pour y accéder plus vite si besoin ! et cliquer sur le label "Dossier Courant") 4°) Les chemins favoris peuvent etre enregistré dans une liste (avec un nom que vous choisirez) 5°) Le chemin courant peut etre ouvert (ajout d'un bouton d'ouverture) 6°) Ajout d'une liste pour sélectionner un chemin réseau et y accéder (utile pour les serveur en local) 7°) Ajout d'un bouton retour... (pour revenir au dossier précédent qui n'est pas le parent par exemple) 8°) Possibilité de sélectionner plusieurs fichiers.. en controlant qu'il n'a pas été deja sélectionné 9°) Voir les infos des fichiers au survol de la souris du fichier sélectionné en dessous (Date de modification et taille du fichier suivant l'unité la plus raisonnable !) 10°) Verification si un fichier est deja sélectionné 11°) Retour au dossier précédent jusqu'au dossier source 12°) Installation manuelle ou par code : ThisDrawing.Application.LoadDVB DossierDudvb & "\Explorer.dvb" une démonstration sans son : DEMONSTRATION de l'outil en exclusitivé (SANS VOIX) Important la fonction à cibler : USF_EXPLORER.fichiers_liste et renvoie la liste des fichiers en liste dans la page option Mon mail et mon site(toujours en construction) sous dispo et sont cliquable. utilité ? - Boite de dialogue indépendante plus besoin de passer par uneboite de dialogue externe via excel acess ou autre... - Import de fichiers de points - Envoie de mail directement via Autocad avec des pièces jointes - Import de Xref ou d'image - créer des dossiers favoris pour "juste" les ouvrirs (meme utilité que windows sauf qu'il peuvent etre appellé par une entrée clavier !) Explorer.zip
-
Problème d'impression avec PDF Creator depuis AutoCAD (2019)
Curlygoth a répondu à un(e) sujet de hmezan dans AutoCAD 2019
tu peux ajouter un format personnalidé avec DWG to PDF ! -
je développe des modules de smon cotés si tu as besoins je te laisse lire ma signature ^^ je te laisse découvrir ma chaine :
-
heu un truc comme ça ?
-
pour infos : tu peux le programmer facilement en VBA il suffit juste de creer 2 bloc : ton nord et ta "croix" Tu choisi ton echelle, ton ecart, ton ecart entre les points Ensuite tu fais 2 boucles l'une pour les coordonnées X l'autre pour les cordonnées Y tu sélectionnes ta polyligne et tu verifies que le point est dans ta forme. ensuite tu insert ta "nuée" de carroyage
-
La meme chose existe en VBA (code) : Function Point_dans_Polyligne(PolyLigne, Pt1) As Boolean Dim Pt1(0 To 2) As Double Dim Pt2(0 To 2) As Double Dim Droite As AcadRay Dim Points As Variant Pt2(0) = Pt1(0) + 1 Pt2(1) = Pt1(1) Pt2(2) = Pt1(2) Set Droite = ThisDrawing.ModelSpace.AddRay(PT_TEST, Pt2) Droite.Update PointsINT = PolyLigne.IntersectWith(Droite, acExtendNone) Droite.Delete Dim NbrePoints As Integer NbrePoints = UBound(PointsINT) / 3 Point_dans_Polyligne = False If NbrePoints Mod 2 = 0 Then Point_dans_Polyligne = False Else Point_dans_Polyligne = True End If End Function
-
pour apprendre le VBA la base c'est Excel ^^ (les Methodes sont bien plus simple et tu trouveras beaucoup plus d'aide) pour autocad le VBA est moins intuitif mais une fois que je gérera bien sur excel tu verras q'uil n'y aura plus beaucoup de difficulté faut connaitre autocad par coeur par contre en anglais c'est un plus ;-) moi si je devais copier coller en vba d'un dessin à un autre, je ferais surement la methode de gile en VBA ensuite du pete le bloc et tu as tes objet. sinon tu crées un groupe que tu passes a un autre dessin ;-) un peu comme quand tu copies une shape d'un tableur execl à un autre ^^
-
(Résolu) - Liste des matériaux du document
Curlygoth a répondu à un(e) sujet de LElemurien dans Débuter en LISP
il n'y a pas QUE le Lisp qui ajoute des fonctionnalités ;-) -
A ce point ? x) Ne sois pas si allergique, il a peut être eu des bons exemples ;-p En gros, tu veux copier chaque Objet de ton dessin ? (vu que tu sélectionnes tout) ? tu peux envoyer des objet vers un autre dessin si tu veux (en un créant un).
-
Des dessinateurs électriques ici ?
Curlygoth a répondu à un(e) sujet de Ricard_76 dans Emploi, monde du travail
Hello, pour ma part, j'ai créé un module sur Autocad pour dessiner et extraire des données pour tout types de dessin ! Vive les bibliothéques dynamique ! renseigne toi mais je pense que tu peux te faire quelque chose de facile en Lisp ou VBA ^^ surtout pour de l'extraction ! -
Qu utilisez vous pour vos métrés ?
Curlygoth a répondu à un(e) sujet de Marc Blancher dans Devis, métré, estimation, quantitatif
Si je peux me permettre : renseigne toi aupres de la programmation tu auras ce que tu veux, tes rendus personnalisés (Covadis et autres) sont payants et "bridés" (non modifiable). alors qu'apprendre est gratuit et rapide ! suivant les clients (ou domaine comme le dit mon VDD) : je dois rendre des documents sous support différents et la programmation est heureusement la pour ça ! Au début : on commence petit : extraire les longueurs et surface par rapport au calque dans une fenetre puis les entrées dans un txt => puis dans un excel => puis un pdf => puis envoie direct par mail ...etc etc Ensuite, tu vas y faire des stats puis la génération de fichier dwg et gestionnaire calque qui reflechira à ta place. a la fin tu ne ferais plus de dessin mais c'est ton programme qui fera 90% de ton boulots ^^ et ça n'aura pas couté 1€ ^^ -
Legende, quantité automatique selon le nom du bloc.
Curlygoth a répondu à un(e) sujet de Oeil2bidule dans Suggestions de développements
Hello, Alors personnellement je peux te proposer ce qui va suivre. Il faut parcourir le dessin et compter le nombre de fois que tu as ton blocs et enfin remplir ton tableau. met ça en fonction : tu pourras boucler sur tous tes nom de blocs ca va te donner des listes Function NB_BLOC(NOM_BLOC) For i = 0 To ThisDrawing.ModelSpace.Count - 1 Set entity = ThisDrawing.ModelSpace.Item(i) NOMCALQUE = entity.Layer If entity.ObjectName = "AcDbBlockReference" Then Set blocref = entity if blocref.effectivename = NOM_BLOC then cp1 = cp1 + 1 else end if next i NB_BLOC = cp1 et ensuite la table sub remplir_tableau ... 'Remplir une table en bouclant sur la function ... Point = ThisDrawing.Utility.GetPoint(, "Selectionner l'endroit où implanter la table ") NBLIGNE = NB_BLOC_TOTAL + 1 'Pour le titre de ton champ) NBCOL = 3 'nombre de colonne Dim MyModelSpace As AcadModelSpace Set MyModelSpace = ThisDrawing.ModelSpace Set MT = MyModelSpace.AddTable(Point, NBLIGNE, NBCOL, H_LIGNE, L_COLONNE) 'H_LIGNE Hauteur de la ligne / L_COLONNE la largeur de la colonne On Error Resume Next MT.Layer = "0" MT.Layer = Calque MT.StyleName = "Standard" MT.StyleName = STYLE_TABLE On Error GoTo 0 MT.SetText 0, 0, "TON TITRE" MT.SetText 1, 0, "NOM" MT.SetText 1, 1, "QTE" MT.SetText 1, 1, "BLOC" 'Tu fais une boucle pour remplir le tableau en fonction de ta table: L = 'ta ligne C = 'ta colonne MT.SetText L,C,VALEUR 'et tu remplis avec les corrdonnées -
Bonjour, Je sais pas si je peux t'aider car le lisp. (J'ai du mal... (Peut être trop de parenthèse ?) Par contre en VBA, je sais créer des fenetres pour générer et nommer tes présentations plutot que de le faire manuellement. et les parcourirs pour recupérer des infos dans tes blocs 'parcours les présentations (meme l'onglet Model) For each layout in ThisDrawing.Layout If layout.name = "Model" then 'si la présentation s'appelle Model on passe else For b = 0 To ThisDrawing.PaperSpace.Count - 1 'on parcours les objets qui sont dans la présentation Set Entity = ThisDrawing.PaperSpace.Item(B) If Entity.ObjectName = "AcDbBlockReference" Then 'on verifier que l'objet est un bloc Set blockRefObj = Entity if blockRefObj.EffectiveName = "NOM_BLOC" then 'on verif le nom du bloc de ton cartouche 'code sur ton bloc For Each Att In blockRefObj.GetAttributes 'on parcours les attribut du bloc If Att.TagString = "ATTRIBUT1" Then 'On rechecrhe l'attribut de nom ATTRIBUT1 VAR1 = Att.TextString 'on met les valeurs dans une variable temporaire Else End If If Att.TagString = "ATTRIBUT2" Then 'On rechecrhe l'attribut de nom ATTRIBUT2 VAR2 = Att.TextString 'on met les valeurs dans une variable temporaire Else End If '.... etc c'est vrai c'est pas sexy mais tu peux te faire une fonction avec l'attribut a extraire par exemple ! Next Att TEXTE = TEXTE & VAR1 & ";" & VAR2 & chr(10) 'donc tu mets par exemple tes colonnes separées par un ";" VAR1 = "" VAR2 = "" else end if else end if end if next 'EDIT On peut creer un CSV ou le mettre directement dans Excel ! CHEMIN = ThisDrawing.Path & "\" & "Mon fichier texte dans le répertoire que le dessin.csv" Set fs = CreateObject("Scripting.FileSystemObject") Set A = fs.CreateTextFile(CHEMIN, True) 'on créé le fichier A.WriteLine TEXTE 'On ecris dans le fichier A.Close 'on ferme le fichier TEXTE = "" Voila je ne l'ai pas tester mais bon si tu as des soucis on développera pour télécharger le module : Lien vers module VBA oui contrairement au lisp le vba n'est pas natif dans autocad mais les posibilités sont les mêmes (ou à quelques détails prêt ?)
-
Alors : Ce n'est pas du VBA mais à mon avis du .NET En gros c'esta avec Visual Studio qui pourra te permettre de voir les code dans les Form etc... j'ai pas tout ça sur moi XD SBar.SimpleText = Sbar doit avoir une propriété qui s'appelle SimpleText CMD.Action = un évenement ??? CMD.FileName = Renvoie le nom du fichier de l'objet CMD et donc ça ne marche pas car peut etre que c'est pas bien régler au niveau de version autocad ... regarde ici avec quel framework tu dois compiler pour tel ou tel version d'autocad... je sais pas si ça marchera apres mais bon faut essayer ^^ http://cad.kerlom.fr/developpement_vb.php
-
c'est vrai que je ne vois pas la partie qui calcul tes dégrader pour chaque face ... tu n'as pas d'autres modules ?
-
c'est quoi le but de ton programme ? j'utilise uniquement les méthodes ActiveX. Que souhaites tu faire ?
