Netparty
Membres-
Compteur de contenus
152 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Netparty
-
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
-
Bonjour @Curlygoth Merci mais comment je peux lier ma selectionset avec mon getattribute
-
Bonjour @Curlygoth Merci pour l'information Aurais-tu un bout de code pour me diriger dans la bonne voix merci
-
@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
-
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
-
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
-
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
-
Bonjour @Luna Merci je vais jeter un œil à cela Bonne journée
-
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
-
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
-
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
-
Bonjour à tous Est-il possible via VBA de copier les valeurs des attributs d'un bloc vers un autre bloc. Merci
-
@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
-
@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
-
Bonjour @Luna Encore merci Je vais essayer de tester tout cela Bonne journée
-
@JPhil Je compte sortir avec la touche "Echap"
-
@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
-
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.
-
@Luna Voilà j'ai mis le initget à 4 Merci
-
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
-
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
-
@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
-
@JPhilMerci pour ton exemple.
-
@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) )
-
@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)
