Aller au contenu

Netparty

Membres
  • Compteur de contenus

    152
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Netparty

  1. Netparty

    Aide code VBA

    Bonjour @Curlygoth@didier Je reviens vers vous car je n'arrive pas à trouver la solution à mon problème pour récupérer les valeurs des attributs dans mes textbox de mon formulaire. Pourriez-vous m'avancer sur ce problème. Se serait super de votre part. Merci d'avance
  2. Netparty

    Aide code VBA

    Bonjour @Curlygoth Merci mais comment je peux lier ma selectionset avec mon getattribute
  3. Bonjour @Curlygoth Merci pour l'information Aurais-tu un bout de code pour me diriger dans la bonne voix merci
  4. Netparty

    Aide code VBA

    @didier Est-on obliger de faire une boucle même si je n'ai qu'un seul bloc dont je dois récupérer les attribut? Car dans : ThisDrawing.Utility.GetEntity objENT, basepnt, "pick block : " attribs = objENT.GetAttributes Je ne vois pas ou mettre le jeu de selection Est-ce genre Thisdrawing.Nomdujeude selection. Merci
  5. Netparty

    Aide code VBA

    Bonjour @didier Merci pour le code. Par contre comment je peux récupérer les infos de mes attributs dans mes textbox Avant j'avais ceci : ThisDrawing.Utility.GetEntity objENT, basepnt, "pick block : " attribs = objENT.GetAttributes TextBox1 = attribs(2).TextString TextBox2 = attribs(3).TextString TextBox3 = attribs(4).TextString TextBox4 = attribs(5).TextString TextBox5 = attribs(6).TextString Merci
  6. Netparty

    Aide code VBA

    Bonjour à tous J'utilise ce code pour choisir un bloc : Dim objENT As AcadEntity Dim objBlk As AcadBlock Dim objBlkRef As AcadBlockReference Dim pt1 As Variant Dim attribs As Variant On Error Resume Next ThisDrawing.Utility.GetEntity objENT, basepnt, "pick block : " attribs = objBlk.objENT.GetAttributes Mais comment faire pour attribuer directement un nom de bloc sans devoir le choisir. Exemple la selection se fait directement sur le bloc qui s'appelle "BlocTest" qui se trouve dans l'espace papier. Merci
  7. Bonjour à tous J'ai commencé un bout de code, mon premier listbox (LB_Onglet_Source) m'affiche tous les onglets de mon dessin quand je sélectionne un onglet je doit afficher dans mon deuxième listbox (LB_Bloc_Source) la liste des blocs de cet onglet, mais mon problème est que tous les blocs de chaque onglet se retrouve de le deuxième listbox. J'aimerais si je clique sur presentation1 je n'ai que les blocs de presentation1 et ainsi de suite. Ci-joint mon code Merci d'avance Dim AcadApp As Object Dim AcadDoc As Object ' ********************************************************************************************************** Private Sub UserForm_Initialize() Dim AcadApp As Object Dim AcadDoc As Object Set AcadApp = GetObject(, "AutoCAD.Application") Set AcadDoc = AcadApp.ActiveDocument Dim onglet As AcadLayout On Error Resume Next 'Check if AutoCAD application is open. If is not opened create a new instance and make it visible. Set AcadApp = GetObject(, "AutoCAD.Application") Set AcadDoc = AcadApp.ActiveDocument If AcadApp Is Nothing Then If MsgBox("AUTOCAD n'est pas ouvert" & vbLf & "Voulez-vous ouvrir AUTOCAD", 36, "Ouvrir AUTOCAD") = vbYes Then Set AcadApp = CreateObject("AutoCAD.Application") AcadApp.Visible = True End If End If LB_Onglet_Source.Clear For Each onglet In AcadDoc.Layouts 'If onglet.Name <> "Model" Then LB_Onglet_Source.AddItem onglet.Name 'End If Next onglet End Sub ' ********************************************************************************************************** ' ********************************************************************************************************** Private Sub LB_Onglet_Source_Change() Dim obj_onglets As AcadLayouts Dim obj_onglet As AcadLayout Dim index As Integer Dim position As Integer Dim totaux As Integer For index = 0 To LB_Onglet_Source.ListCount - 1 If LB_Onglet_Source.Selected(index) = True Then position = index totaux = totaux + 1 End If Tb_Onglet_Source = LB_Onglet_Source.List(position) Dim nbrblocs As Integer 'nombre de calques dans le dessin courant Dim numbloc As Integer 'nième calque dans la liste nbrblocs = ThisDrawing.Blocks.Count For numbloc = 1 To nbrblocs Me.LB_Bloc_Source.AddItem ThisDrawing.Blocks(numbloc - 1).Name Next numbloc Next index Set obj_onglets = ThisDrawing.Layouts End Sub
  8. Bonjour @Luna Merci je vais jeter un œil à cela Bonne journée
  9. Voici un fichier exemple Pour être un peu plus précis : je dois pouvoir choisir quel indice à copier mais la destination n'est pas forcement le même indice exemple je copie l'indice A de la présentation 1 vers l'indice B de la présentation 2. Si je choisi de copier l'indice A je dois inclure tout ce qui va avec c'est à dire ( DATEA , DESSINATEURA , VERIFICATEURA et EMISSIONA ) Dessin_Test.dwg
  10. Bonjour @Luna J'aimerai que se soit visuel, Le nom du bloc sera toujours identique, sauf qu'il seront dans des présentations différente. Le bloc est le bloc CARTOUCHE, mon idée est de ne pas devoir réécrire chaque nouvel indice de chaque présentation surtout si il sont identique
  11. Bonjour @didier J'ai commencer un formulaire qui me permettrai de sélectionner chaque présentation (Source et destination) Quand je clique sur présentation1 dans source j'aimerais pouvoir choisir le bloc source avec les attributs a copier vers la destination. J'aimerais pouvoir lister les attributs dans une listbox et sélectionner celui que je veux copier. Exemple attribut source : IND_A à copier vers l'attribut destination IND_B Merci
  12. Bonjour à tous Est-il possible via VBA de copier les valeurs des attributs d'un bloc vers un autre bloc. Merci
  13. Netparty

    Aide premier Lisp

    @Luna@JPhil Merci à vous 2 pour votre aide et votre patience. Désolé de vouloir aller trop vite, je me suis vite emballé promis je vais prendre le temps de lire plus en profondeur les sujets que vous m'avez proposé. Passez de bonne fêtes de fin d'année
  14. Netparty

    Aide premier Lisp

    @Luna Pour le fun j'ai ajouté le changement de couleur (cons "cOuleur" (list 'color (list 5 "1 2 3 4 5 6 7") (list 'getreal))) J'ai encore quelques questions : Quand tu mets list 5 ou list 7 est-ce l'équivalent de initget 5 ? Est-il possible dans la liste de choix, par exemple pour les couleurs d'afficher en plus du numéro de la couleur avoir le fond qui correspond a la couleur ou juste un texte exemple 1 (Rouge) ? Merci
  15. Netparty

    Aide premier Lisp

    Bonjour @Luna Encore merci Je vais essayer de tester tout cela Bonne journée
  16. Netparty

    Aide premier Lisp

    @JPhil Je compte sortir avec la touche "Echap"
  17. Netparty

    Aide premier Lisp

    @JPhil Oui je crois que je vais resté sur plusieurs petits programmes. Par contre est-il possible si on clique dans le vide de ne pas sortir du programme ? Merci
  18. Netparty

    Aide premier Lisp

    Re à tous Comme je suis lancé voici ma version pour les épaisseurs de ligne : (defun c:EP_LIGNE (/ epaisseur e) (initget "DuCalque 0.00 0.05 0.09 0.13 0.15 0.18 0.20 0.25 0.30 0.35 0.40 0.50 0.53 0.60 0.70 0.80 0.90 1.00 1.06 1.20 1.40 1.58 2.00 2.11") (setq epaisseur (cdr (assoc (getkword "\nEpaisseur [DuCalque/0.00/0.05/0.09/0.13/0.15/0.18/0.20/0.25/0.30/0.35/0.40/0.50/0.53/0.60/0.70/0.80/0.90/1.00/1.06/1.20/1.40/1.58/2.00/2.11] <0.00> : " ) '((nil . 0) ("DuCalque" . -1) ("0.00" . 0.00) ("0.05" . 5) ("0.09" . 9) ("0.13" . 13) ("0.15" . 15) ("0.18" . 18) ("0.20" . 20) ("0.25" . 25) ("0.30" . 30) ("0.35" . 35) ("0.40" . 40) ("0.50" . 50) ("0.53" . 53) ("0.60" . 60) ("0.70" . 70) ("0.80" . 80) ("0.90" . 90) ("1.00" . 100) ("1.06" . 106) ("1.20" . 120) ("1.40" . 140) ("1.58" . 158) ("2.00" . 200) ("2.11" . 211) ) ) ) ) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (vla-put-lineweight (vlax-ename->vla-object e) epaisseur) ) (princ) ) Cela fonctionne mais j'ai quand même une question. ici je choisi mon épaisseur et ensuite de clique sur chaque ligne pour modifier l'épaisseur. Si je dois choisir une autre épaisseur je dois quitter la routine et la relancer pour une nouvelle épaisseur. Est-il possible si on termine l'action de revenir sur le menu de choix des épaisseur.
  19. Netparty

    Aide premier Lisp

    @Luna Voilà j'ai mis le initget à 4 Merci
  20. Netparty

    Aide premier Lisp

    Merci @Lunapour tes conseils Voilà ce que j'ai modifié : (defun c:ECH_LIGNE (/ echelle e) (initget "25") (if(null(setq echelle (getreal "\nQuelle échelle : <25> "))) (setq echelle 25)) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (setpropertyvalue e "LinetypeScale" echelle) ) (princ) ) J'ai modifier le initget mais je ne sais plus interdire les valeurs négative
  21. Netparty

    Aide premier Lisp

    Bonjour @Luna@JPhil Je reviens sur mon petit lisp. J'essaye de mettre une valeur par défaut j'ai essayé ceci : (defun c:ECH_LIGNE (/ echelle e) (initget 7 "25") (setq echelle (getreal "\nQuelle échelle : <25> ")) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (setpropertyvalue e "LinetypeScale" echelle) ) (princ) ) Il propose bien une valeur par défaut mais je la prend pas en compte car il ne considère pas la valeur comme une valeur numérique. Que dois-je changer ? Merci
  22. Netparty

    Aide premier Lisp

    @Luna@JPhil Merci à vous deux pour votre aide. J'essaye de progresser doucement, les lisp sont pour mon usage personnel et j'essaye de rassembler les commandes que j'utilise le plus souvent. Je reviendrai au fur et a mesure sur l'avancement de mon lisp pour avoir votre avis et conseil Bonne journée
  23. Netparty

    Aide premier Lisp

    @JPhilMerci pour ton exemple.
  24. Netparty

    Aide premier Lisp

    @Luna Voilà j'ai enfin réussi à le faire fonctionner Je continue mes recherche pour l'améliorer. (defun c:Outil_Ligne ( / choix) (initget "? echelle epaisseur eXit") (setq choix (cond ((getkword "\nEnter and option [echelle/epaisseur] <eXit>: ")) ("eXit"))) (cond ((= choix "?") ) ((= choix "echelle") (ECH_LIGNE)) ((= choix "epaisseur") (EP_LIGNE)) ((= choix "eXit") (princ "... Terminé."))) (princ) ) (defun ECH_LIGNE (/ echelle e) (initget 7) (setq echelle (getint "\nQuelle échelle : ")) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (vla-put-LineTypeScale (vlax-ename->vla-object e) echelle) ) (princ) ) (defun EP_LIGNE (/ epaisseur e) (initget 7) (setq epaisseur (getint "\nQuelle epaisseur : ")) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (vla-put-lineweight (vlax-ename->vla-object e) epaisseur) ) (princ) )
  25. Netparty

    Aide premier Lisp

    @Luna Merci pour les différents codes, c'est plus clair. A l'aide de la commande getkword je pourrais avoir un menu de choix. (defun c:Outil_ligne ( / choix) (initget "? Echelle Epaisseur eXit") (setq chosen (cond ((getkword "\nChoisir [Echelle/Epaisseur] <eXit>: ")) ("eXit"))) (cond ((= choix "?") ) ((= choix "Echelle") (command"ECH_LIGNE")) ((= choix "Epaisseur") (command "EP_LIGNE")) ((= choix "eXit") ) (princ) ) (defun c:ECH_LIGNE (/ echelle e) (initget 7) (setq echelle (getint "\nQuelle échelle : ")) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (vla-put-LineTypeScale (vlax-ename->vla-object e) echelle) ) (princ) ) (defun c:EP_LIGNE (/ echelle e) (initget 7) (setq echelle (getint "\nQuelle échelle : ")) (while (and (setq e (car (entsel "\nSélectionner une ligne :"))) (wcmatch (cdr (assoc 0 (entget e))) "*LINE")) (vla-put-lineweight (vlax-ename->vla-object e) echelle) ) (princ) ) Mais comment appeler les 2 fonctions (ECH_LIGNE et EP_LIGNE)
×
×
  • 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é