Aller au contenu

doua

Membres
  • Compteur de contenus

    107
  • Inscription

  • Dernière visite

Tout ce qui a été posté par doua

  1. Merci boris, pour la commande eattext je la connais ! mais en fait je veux un truc automatique !! j'ai déja un programme mais ce dernier m'extrait toutes les attributs sans exception... :casstet: svp, s'il ya qlq qui peut aider voila mon programme si vous avez une idée!!!??? :( Private Sub bt_fichier_Click() 'gestion des erreurs On Error GoTo fin 'si liste n'est pas vide alors If liste_info.ListCount > 0 Then nom_fichier = ThisDrawing.GetVariable("dwgname") nom_fichier = Left(nom_fichier, Len(nom_fichier) - 4) 'gestion de l'objet commondialog (fenêtre fichier) CommonDialog1.InitDir = ThisDrawing.GetVariable("dwgprefix") CommonDialog1.FileName = nom_fichier CommonDialog1.ShowOpen nom_fichier = CommonDialog1.FileName If nom_fichier = "" Then Exit Sub End If 'création du fichier de données par défaut TXT et dans chemin du fichier DWG Open nom_fichier For Output As #1 'en tête du fichier Print #1, "Liste des attributs de blocs" Print #1, vbCr Print #1, ThisDrawing.GetVariable("dwgprefix") & ThisDrawing.GetVariable("dwgname") Print #1, vbCr Print #1, vbCr ' ajoute les informations For i = 0 To liste_info.ListCount - 1 Print #1, liste_info.List(i) Next i Close #1 msgBox "Fichier bien enregistré." Else MsgBox "La liste est vide." End If fin: End Sub Private Sub bt_lancer_Click() ' declaration des variables Dim element As AcadObject Dim tableau_attribut As Variant Dim compteur_bloc As Integer Dim etiquette_attribut As String Dim valeur_attribut As String Dim i As Integer Dim pt_insertion As Variant Dim rotation As Single ' on vide la liste si elle contient des infos liste_info.Clear 'on affiche une boite à message pour faire patienter Traitement_info.Visible = True Traitement_info.Text = "Traitement en cours...Patience." ' on met un timer sinon la boite à message ' ne s'affiche pas PauseTime = 5 Start = Timer Do While Timer < Start + PauseTime DoEvents Loop 'initialisation des variables compteur_bloc = 0 nb_dec = ThisDrawing.GetVariable("luprec") ' boucle sur les tous les objets For Each element In ThisDrawing.ModelSpace ' si l'objet est un bloc alors If StrComp(element.ObjectName, "AcDbBlockReference", 1) = 0 Then ' si l'objet bloc contient des attributs alors If element.HasAttributes Then compteur_bloc = compteur_bloc + 1 ' stocke les info dans le tableau tableau_attribut = element.GetAttributes ' ajoute dans la liste le nom du bloc liste_info.AddItem "***** " & element.Name & " *****" liste_info.AddItem "------------------------------" ' passe en revu tous les attributs du bloc For i = LBound(tableau_attribut) To UBound(tableau_attribut) 'ajoute dans la liste le nom de l'étiquette de l'attribut ' ainsi que la valeur de l'attribut liste_info.AddItem "Etiq : " & tableau_attribut(i).TagString liste_info.AddItem "Valeur: " & tableau_attribut(i).TextString Next i 'saut de ligne entre chaque bloc liste_info.AddItem " " End If End If Next element ' on rend invisible la boite à message Traitement_info.Visible = False ' inscription du nombre de blocs dans la liste info_compteur = compteur_bloc End Sub merci de votre précieuse aide ! :) :D
  2. salut, à vous tous , en fait j'ai un fichier qui contien que des attributs , et je veux faire un extraction d'attribut vers excel mais je veux extraire que les elements important ! je m'explique c'est un dessin electrique, ok sur ce dernier il ya par exemple des disjoncteurs et des contacteurs etc... et je doit faire une liste materiel pour le service achat . et comme parfois on peut représenter le détail de ces equipements electriques moi je veux juste qu'il mextrait le nom du disjoncteur par exemple + le calibre c'est tous et il me met tous ça sur une liste dans excel... merci de votre aide amicalement doua
  3. doua

    cripté un programme lisp

    salut Patrick, merci pour ton aide !! et merci aussi à Bonus !! je vais tester cela ! bye ;) amicalement doua
  4. doua

    cripté un programme lisp

    salut bonuscad , merci pour ta réponse ! ;) en fait je veux le rendre crypté et l'ouvrir (le décripté par un mot de passe) c'est un peu ça ce que je veux et non pas le crypté une bonne fois pour tous . car parfois tu dois ajouter une commande pour une cause ou une autre j'aimerais ouvrir mon programme avec un mot de passe "En fin qlq chose comme ça?!" je vous remercie pour l'interêt que vous porter à mon problème help !!
  5. salut, et ben voilà ! j'ai un programme en lisp, je voudrais le cripter et le décripter quand je veux pourriez vous me donner un utilitaire ou logiciel qui fait ce travaille merci à l'avance amicalement doua
  6. merci winfield et merci gile ! ;) ça marche trés bien maintenant super ..!! amicalement doua
  7. salut, j'aimerai qu'a chaque ouverture de fichier tous mes programme lisp seront automatiquement charger et pour toujour ...! c'est vraiment enervant de les charger à chaque ouverture de fichier ...n'est ce pas ...!! merci de votre aide amicalement doua
  8. salut tecnopat, je suis vraiment désolée mais j'ai pas vue ta réponse !! :mad2: on fait je t'ai envoyée le programme sur ton adresse e_mail mais il me retourne toujour qu'il ya un problème sur l'adresse as-tu une autre adresse pour que te l'envoie de nouveau :o j'attend ta réponse ou bien evoie moi un message test sur mon adresse : hajarejaki@hotmail.com A+
  9. doua

    message bizzar!!

    salut axx, mon pc ne risque rien si je fait ce nettoyage ! :exclam: ça d'une part d'autre part peux-tu me donner la procedure pour rentrer à ce registre car j'ai fait "regedit" il m'a rien donnée merci d'avance pour ton aide ! :)
  10. doua

    message bizzar!!

    salut, j'ai un programme que j'utilise souvant mais dernièrement quand je l'exécute sur mon poste il me donne ce massage : microsoft visuel basic : erreur de compilation : Mécanisme de bibliothèque d'objets non géré et il ce bloque :casstet: par contre ce même programme je l'ai installer pour d'autre utilisateur et ça marche impécable :P :mad: je ne sais pas c'est quoi le problème et comment je peux le résoudre ! :( merci de votre aide à l'avance amicalement
  11. doua

    FORMATION AUTOCAD

    salut youssef, pour la formation d'autocad, tu peut voir "grand livre autocad" ça existe pour exmeple pour version 2000 et je pense même les autres version ça il peut faire l'affaire car moi aussi j'en ai un et si je me bloque sur une commande je reviens à ce livre ou bien le help sur ton autocad installé sur ton PC. c'est tous et biensûr comme il t'as dit "boris" il a vraiment raison dans ce forum tu vas apprendre plein de chose :D à tel point que pour moi quand je quitte mon travail le soir je sens que chaque jours j'apprend une chose nouvelle de ce fabuleu forum. ;) install "mon aide de cadxp" comme_ça tu pourra toujour consulter facillement les nouvelles de ce forum. rien à dire j'aime bien ce forum !!! :D
  12. salut, mois aussi j'avais ce problème mais j'ai un programme qui fait ce boulot il cherche dans le fichier tous les attributs et les renvoi sur excel mais là enfait j'ai fait un autre programme qui me dépose chaque information dans l'endroit bien définit le voila le programme extraction d'attribut 'Extraction d'attributs vers Excel ' ' Note: Ce programme est basé sur la version française d'Excel ' Pour la version anglaise, ' on remplacera l'expression 'Feuil1' par 'Sheet1' Sub Extraction() ' --------------------------------------------------- 'Section 1. Variables requises. ' --------------------------------------------------- Dim Excel As Object Dim Feuille As Object Dim Rangee As Integer Dim Matrice As Variant Dim Compte As Integer Dim Selection As AcadSelectionSet ' --------------------------------------------------- 'Section 2. Démarrage d'Excel (S'il n'est pas ouvert). ' --------------------------------------------------- On Error Resume Next Set Excel = GetObject(, "Excel.Application") If Err <> 0 Then Err.Clear Set Excel = CreateObject("Excel.Application") If Err <> 0 Then MsgBox "La macro n'a pu ouvrir Excel!", vbExclamation End End If End If On Error GoTo 0 ' --------------------------------------------------- 'Section 3. Préparer Excel pour recevoir les données. ' --------------------------------------------------- Excel.Visible = True Excel.Workbooks.Open Filename:="C:\le nom du fichier excel .xls" 'Excel.Workbooks.Add Excel.Sheets.Add Excel.Sheets("Feuil1").Select Set Feuille = Excel.ActiveWorkbook.Sheets("Feuil1") Feuille.Name = "choisie un nom pour ta feuille" Excel.ActiveWorkbook.Sheets("FL").Activate ' --------------------------------------------------- 'Section 4. Sélection du bloc spécifié. ' --------------------------------------------------- Dim EnTete As Boolean Rangee = 1 EnTete = False If selection_existe("TEMP") Then Set Selection = ThisDrawing.SelectionSets("TEMP") Selection.Clear Else Set Selection = ThisDrawing.SelectionSets.Add("TEMP") End If Dim Point1(2) As Double Dim Point2(2) As Double Dim Codes(1) As Integer Dim Valeurs(1) As Variant Point1(0) = 0#: Point1(1) = 0#: Point1(2) = 0# Point2(0) = 0#: Point2(1) = 0#: Point2(2) = 0# ' On recherche le bloc "................le nom de ton bloc......" Codes(0) = 0: Valeurs(0) = "INSERT" Codes(1) = 2: Valeurs(1) = " le nom de ton bloc" Selection.Select acSelectionSetAll, Point1, Point2, Codes, Valeurs ' --------------------------------------------------- 'Section 4. Extraction des attributs. ' Le premier bloc fournit les noms d'attributs (TAG) ' --------------------------------------------------- Dim Entite As AcadBlockReference For Each Entite In Selection Matrice = Entite.GetAttributes If EnTete = False Then For Compte = LBound(Matrice) To UBound(Matrice) If StrComp(Matrice(Compte).EntityName, "AcDbAttribute", 1) = 0 Then Feuille.Cells(Rangee, Compte + 1).Value = Matrice(Compte).TagString End If Next Compte End If Rangee = Rangee + 1 For Compte = LBound(Matrice) To UBound(Matrice) Feuille.Cells(Rangee, Compte + 1).Value = Matrice(Compte).TextString Next Compte EnTete = True Next ' --------------------------------------------------- 'Section 5. Fermeture (Laissant Excel ouvert) ' --------------------------------------------------- Set Feuille = Nothing Selection.Delete End Sub ' --------------------------------------------------- 'Section 6. effacer la selection "TEMP" ' --------------------------------------------------- Public Function selection_existe(strnom As String) As Boolean Dim control As Boolean control = False On Error Resume Next Set objselection = ThisDrawing.SelectionSets(strnom) If Err Then Err.Clear Set objselection = ThisDrawing.SelectionSets.Add(strnom) If Not Err Then control = True Else control = True End If selection_existe = control End Function j'espère que ça va t'aider ce programme
  13. salut winfield, on faite ce bloc represente pour moi juste une catouche qui contient des fenêtres que ces dérniers représente des détaille d'une pièce "que ça soit dans la charpente ou la mécanique ". qu'on doit fournir ces détails au département fabrication donc les formats des cartouches (dite bloc"fiche lancement") peuvent être variés A1....A(n) suivant le détail de la pièce! c'est pas grave en fait tu m'as déja baucoup aider merci encors winfield,et je te souhaite une trés bonne continuation dans ton travaille ... ;) !!! amicalement doua
  14. :D bonsoir winfield, on fait moi aussi ça m' a étonné qu'il ya qu'une personne qui m'as vraiment aider !! :casstet: dit winfield, ton programme il marche trés trés bien sauf qu'il ya un autre département ici "société" qui utilise tous les formats , est ce qu'on peut pas avoir une instruction qui prend la fiche est vérifié si il est = égale au standard des formats (A0-A1-A2-A3-A4) et si jamais elle trouve qu'il sort du standard il le sort automatiquement en format A4 quelque soit ça forme ?? je demande trop hein....! et bien tu m'excusera winfield, si je te casse la tête mais vraiment avec ton aide et tes explications j'apprend des choses ....!! ;) amicalement doua
  15. :D salut winfield, j'utilise Autocad 2004 ! :casstet: non pas du tout ;) c'est juste que je suis débutante en programmation, et il ya une seule personne qui peux me donner un coup de main mais malheureusement il est toujour en déplacement :casstet: donc s'il yavait pas ce fabuleux forum .....! j'ai tous saisie sauf ça que veut tu dire par transcrire sur.....! ça veux dire que si j'enlève ça j'aurai la possibilité d'imprimer toute les formats que je veux ?! on fait winfield, je suis vraiment désolée de te cassé la tête avec mes questions , mais bon je veux comprendre ce que je fait et je te remercie de l'effort que tu fourni pour me guider et aussi le temps que tu perd pour m'eclaircire ....! merciiiiiiiiiiiiiiiii ;) dit winfield, on fait on a changer notre 1er programme (pas ton programme !!) et j'aimerai bien que tu le voie car il m'imprime tous les blocs mais vide je m'explique : le nombre de fiche blocs inserer dans layout1 =égale au nombre de feuille imprimée et ça je n'arrive pas trouver la cause alors stp ..... voila notre programme : Option Explicit Public Sub VerifierBloc() Dim PlotConfig As AcadPlotConfiguration Dim strNomDuBloc, nomconfig As String Dim a, b, x0, y0, x1, y1 As Double Dim point0(0 To 1), point1(0 To 1) As Double Dim objInsertion As AcadBlockReference Dim intType(0 To 1) As Integer Dim varData(0 To 1) As Variant Dim objSelection As AcadSelectionSet a = 198 b = 285 nomconfig = "Plot" strNomDuBloc = "fiche de lance" intType(0) = 0: varData(0) = "INSERT" intType(1) = 2: varData(1) = strNomDuBloc On Error Resume Next Set objSelection = ThisDrawing.SelectionSets.Add("Temp") If Err Then Err.Clear Set objSelection = ThisDrawing.SelectionSets("Temp") End If objSelection.Select acSelectionSetAll, , , intType, varData For Each objInsertion In objSelection If 0 = StrComp(objInsertion.Name, strNomDuBloc, 1) Then x0 = objInsertion.InsertionPoint(0) y0 = objInsertion.InsertionPoint(1) point0(0) = x0: point0(1) = y0 x1 = x0 + a y1 = y0 + b point1(0) = x1: point1(1) = y1 Set PlotConfig = ThisDrawing.PlotConfigurations(nomconfig) ThisDrawing.ActiveLayout.ConfigName = nomconfig ThisDrawing.ActiveLayout.SetWindowToPlot point0, point1 ThisDrawing.ActiveLayout.GetWindowToPlot point0, point1 ThisDrawing.ActiveLayout.PlotType = acWindow ThisDrawing.Plot.PlotToDevice End If Next objInsertion End Sub merci winfield,:D amicalement
  16. merci bien winfield, mais j'ai encors de question s'il te plait s'il te plait il ya des instructions que j'ai pas bien saisie : bon pour: A) c'est quoi ce mot "BackGroundPlot" (tu sais dans la ligne " VarDataOrigine = ThisDrawing.GetVariable(sysVarName") le programme ce bloque, alors j'ai mis cette ligne hors lecture je ne sais pas est-ce que j'ai bien fait ou non ! B) If Err = 13 Then (le 13 il sinifi quoi??? C) ThisDrawing. SetVariable sysVarName, VarDataTemp ça sinifi quoi aussi !! D)en fait là d'aprés ce que j'ai comprie il selectionne la zone rectangulaire de tout le bloc quelque soit sa forme (A4,A3,A1..) Paysage ou portrait! non !!! parceque j'ai inserer une fiche format A3 il l'a pas imprimer !!* E) j'ai pas comprie l'instruction "GetBoundingBox " merci infinement !!
  17. salut winfield, vraiment je te remercie pour ta précieuse aide !! :D je vais le tester et je te tiendrais au courant ok ! je m'excuse je t'ai pas répondu trés vite car je ne me suis pas connécter de puis mnt une semaine !!! :o merci encors winfield amicalement doua
  18. salut winfield, oui c'est ce que je veux "imprimer bloc par bloc " salut Chrisfs, et merci pour l'interêt que tu as donné à mon problème on fait quand tu dit scaner tu veux dire imprimer non ! parce que moi dans mon dessin il ya plusieurs fiche qui portes le même nom bloc "fiche de lance" ok ! et je veux que mon programme fait une recherche du 1er bloc qu'il trouve = à "fiche de lance" et il m'enregistre ces coordonée pour avoir une fenêtre (x,y) et imprimer. aprés il passe au 2ème bloc qui est aussi = au "fiche de lance" et mémoriser ces coordonées et l'imprimer et ainsi de suite ... voilà ce que je veux faire exctement et bien sûr dans la même feuille de presentation . merci de votre aide
  19. rebonjour tout le monde ! en fait je ne veux pas laisser tombé mon programme car je crois qu'il lui manque un petit qlq chose que j'ignore :( alors je vous demande encors une fois s'il ya qlq qui connaît bien le vba sous autocad de me donnée un coup de main ça sera gentille de ça part !! :) voilà ou je suis arrivée : nb: j'ai plusieurs blocs posés dans le même espace papier "layout1" il ont le même nom et différents format a4 a3 .) alors mon programme il cherche le nom du bloc "xxxx" il trouve le 1er il cherche sont point d'insertion (point0,point1) et doit l'imprime mais il ne le fait pas !!! voila une copie du programme : 'IMPRESSION AUTOMATIQUE Public Sub VerifierBloc() Dim objBloc As AcadBlock Dim PlotConfig As AcadPlotConfiguration Dim objonglets As AcadLayouts Dim objonglet As AcadLayout Dim strNomDuBloc As String Dim nomconfig As String Dim orige(0 To 2) As Double Dim x0 As Double Dim y0 As Double Dim x1 As Double Dim y1 As Double Dim a As Double Dim b As Double a = 198 b = 285 Dim point0(0 To 1) As Double Dim point1(0 To 1) As Double '----------------------------------------------- Set objonglets = ThisDrawing.Layouts Set objonglet = objonglets.Item("layout1") nomconfig = "Plot" strNomDuBloc = "fiche de lance" 'ReDim Preserve point0(0 To 1) 'ReDim Preserve point1(0 To 1) For Each objBloc In ThisDrawing.Blocks If 0 = StrComp(objBloc.Name, strNomDuBloc, 1) Then x0 = objBloc.origin(0) y0 = objBloc.origin(1) point0(0) = x0: point0(1) = y0 x1 = x0 + a y1 = y0 + b point1(0) = x1: point1(1) = y1 Set PlotConfig = ThisDrawing.PlotConfigurations(nomconfig) ThisDrawing.ActiveLayout.ConfigName = nomconfig 'ThisDrawing.PlotConfigurations("layout1").ConfigName = nomconfig 'PlotConfig.SetWindowToPlot (point0, point1) ThisDrawing.ActiveLayout.SetWindowToPlot point0, point1 ThisDrawing.ActiveLayout.GetWindowToPlot point0, point1 ThisDrawing.ActiveLayout.PlotType = acWindow ThisDrawing.Plot.PlotToDevice End If Next objBloc End Sub je vous remerci tous amicalement
  20. salut, j'ai un programme qui extrait les attributs et les envois vers excel si ça t'interesse fait moi signe et tu me donne ton adresse e-mail pour te l'envoyer ok amicalement ;)
  21. doua

    help programme !!

    salut winfield, oui les blocs sont posés les un a coté des autres et je doit imprimer tous mes blocs à la fois ! :casstet: merci pour ton intérêt winfield :) salut sacer85, je te remerci aussi ;) voilà mon adresse e_mail : hajarejaki@hotmail.com merci à vous !! :D
  22. doua

    help programme !!

    salut, merci Patrick_35, mais je suis debutante en vba et plus en lisp mais s'il ya qlq qui peut me répondre en me donnant laprocedure qui marche ça me géne pas si elle est fait en lisp ou *autre longuage ! merci encors de votre interêt ! merci à toi aussi sacer85, oui ça m'interesse ton truc sous autocad2000 ! etje te remerci infinement pour ton interêt merci pour vous tous ;)
  23. doua

    help programme !!

    salut, je me permet de redemander de l'aide conçernant mon problème "impression automatique des ducuments sur autocad" ! ;) j'ai creer un bloc qui s'appel "fiche de lance" dans une présentatiion qui s'appel "layout1" on fait dans ce layout j'ai copier mon bloc une dizaines de fois et je veux imprimer tous ces blocs à la fois automatiquement . bon voilà j'ai fait un programme vba mais je pense que j'ai du oublier quelque instructions ... enfin je crois..!!! bon voila une copie de mon programme : 'Impression automatique public sub bloc() dim objbloc as acadblock dim plotconfig as acadplotconfiguration dim objonglets as acadlayouts dim objonglet as acadlayout dim strnomdubloc as string dim orige (0 to 2) as ddouble dim x0 as double dim y0 as double dim x1 as double dim y1 as double dim a as double dim b as double dim point0(0 to 1)as double dim point1(0 to 1)as double a=198 b=285 '----------------------- set objonglets = thisdrawing.layouts set objonglet = objonglets.item ("layout1") strnomdubloc = "fiche de lance" for each objbloc in thisdrawing.blocks if 0 = strcomp(oobjbloc.name, strnomdubloc,1) x0=objbloc.origin(0) y0=objbloc.origin(1) point0(0) = x0 : point0(1) = y0 x1 = x0 + a y1 = y0 + b point1(0) = x1 : point0(1) = y1 set plotconfig = thisdrawing.plotconfigurations.add("impr") thisdrawing.plotconfigurations ("layout1").configname = "impr" plotconfig.setwindowtoplot point0, point1 thisdrawing.plot.plottodevice end if next objbloc end sub --------------------------------------------------------- svp j'attend votre aide avec impatience !! merci
  24. allo ....alloooo didier !! êtes_vous_ là !? repondez ...!! j'attend tjr votre réponse ... ;)
  25. salut didier, merci pour ton aide précieuse. on fait je voulais charger ce programme mais ça ne marche pas voilà ce que j'ai fait : 1) la commande (_appload plot.lsp correctement chargé(s) Commande: ; erreur: caractère lu incorrect (octal): 0 Commande: ; erreur: caractère lu incorrect (octal): 0 Commande: ; erreur: caractère lu incorrect (octal): 0 Commande: Commande: plot Commande inconnue "PLOT". Appuyez sur F1 pour obtenir de l'aide. voilà ce que j'ai ajouter sur ton programme : (defun c:plot () (setq bg (getpoint"\nbas gauche\n") (setq hd(getpoint"\nhaut droit\n") (setq nombre(getint"\nNombre?\n") ) ) ) (command"_plot" "o" "" "" "A4" "M" "P" "N" bg hd "monochrome.ctb" "O" "" "n" "o" "o" ) (repeat nombre (setq bg (list (-(car bg)21.0) (cadr bg)) hg (list(-(car hd) 21.0 (cadr hd)) ) command "_-plot" "o" "" "" "" "M" "P" "N" "F" bg hd "" "" "" "monochrome.ctb" "O" "" "n" "o" "o" ) ) on fait didier je débute en programmation lsp et vba donc je m'excuse si j'ai fait des erreurs ou si je te casse la tête avec mes questions ! car ce programme et si important pour moi, je vais économiser du temps fou merci infinement pour votre aide ;)
×
×
  • 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é