Aller au contenu

Magdi95

Membres
  • Compteur de contenus

    15
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Magdi95

  1. Bonjour, Super, s'est du grand art comme d'habitude! On vient de me demander (ils n'auraient pas pu le préciser avant...) d'ajouter au tenant et a l'aboutissant le repère du local qui se trouve sous forme de texte simple sur mon plan, est ce que ce serait compliquer d'ajouter cette fonction? Encore Merci
  2. Bonjour, Le voici: Lien bloc
  3. Bonjour Gile, Merci de ton retour, après avoir fait les 3 modifs, j'ai lancé le lisp et le message suivant apparait: "Sélectionnez une étiquette ou valider par Entrée: ; erreur: Demande ADS erronée" Je n'ai pas précisé mais il s'agit d'un bloc dynamique! Une idée? Merci d'avance.
  4. Bonjour, Oui je bosse avec Autocad mais mes câbles ne sont pas représentés donc rien d'exploitable de ce coté! Suivant la position de la prise s'est moi qui détermine le passage du câble suivant les contraintes, chaque cas est différents d'où l'intérêt de pouvoir cliquer successivement sur les repères(attributs)des tronçons qu'empreinte chaque câbles. Merci d'avoir pris le temps
  5. Bonjour à tous, N'ayant pas trouvé de sujet similaire je vous explique mon sujet: Je dois réaliser un fichier Excel devant référencer tous les câbles de mon projet et dans lequel je renseigne de multiples informations (tenant, aboutissant, longueur...) dont le parcours du câble. Pour cela, tous les tronçons du parcours sont repérés par une étiquette contenant deux valeurs d'attributs A et B ce qui me donnera au final une succession de valeurs ABABABABAB... Est il donc possible via une simple sélection sur "A" puis "B" puis "A" puis "B" etc... d'obtenir le résultat en le collant sous forme de texte ou Mtext ou attribut peu m'importe dans le fichier Autocad pour que je puisse le copier via le presse papier puis le recoller dans mon fichier Excel? Merci d'avance. Très bonne journée
  6. Magdi95

    Lisps de Patrick_35

    Bonjour Patrick, J'essai désépérement de trouver la nouvelle version de "PAT.lsp"(j'ai la version 1.01 et je vois qu'il y a la 1.10 car j'au une erreur au lancement) mais soit le telechargement me renvoi sur une page qui me dit qu'Internet Explorer n'est pas parvenu à trouver la page patrick.blog-cao.com. ou sur ton blog (meme en faisant Article plus ancient) je ne le trouve pas. Si quelqu'un peut me depanner je l'en remercie. Très bonne journée. Magdi
  7. Effectivement! s'est pas faute de connaitre les lisp de Gile mais celui ci je suis vraiment passé a coté :huh: depuis tout ce temps Et bien merci a toi et a Gile pour le temps de gagné! Bonne journée
  8. Bonjour a tous et meilleurs voeux, Voici quelque année que j'utilise la selection rapide afin d'isoler ou de selectionner des elements tels que des blocs, des calques, des textes ou encore des type de lignes. Question?: peut-on realiser ce type de manip. uniquement en pointant l'objet desiré? Par exemple je souhaite selectionner tout mes blocs "prise" pour les mettre sur une couche dediée ou pouvoir selectionner un style de texte afin de le remplacer par un autre style. Il faut que le choix reste basic car j'imagine que si je pointe un elements il faut qu'il sache que s'est le "nom du blocs" que je veux selectioner et non pas son calque ou sont echelle ou autre... En esperant avoir ete clair Merci d'avance Magdi
  9. Magdi95

    Etiquette attribut

    Bonjour, Le lien est mort! est-ce possible de le rendre accescible? Meri d'avance
  10. Bonjour à tous, je suis tomber sur ce sujet et je voudrais relever le niveau des electriciens Non, juste partager cette routine dont j'avais deja fait la demande. Principe: La longueur du cable sera renseignée au niveau de l'attribut du bloc "prise" Pointer d'abord l'atrribut puis simuler le parcour du cable en partant du local source (local reartiteur) comme si on tracait une polyligne. lorsque l'on valide on peu passer a la prise suivante et ainsi cumuler la longueur. Bonne journée MEA.LSP
  11. Magdi95

    Lisps de Patrick_35

    Salut Patrick, Ca fait quelque temps que je me dis qu'il faut que je laisse un ptit post pour TE mais aussi Vous remercier du temps que vous passez à nous rendre service, à élargir nos connaissances et mettre a disposition toutes ces routines qui pour ma part me font gagner beaucoup de temps ;) Ca s'est fait! Alors continue(z), continue(z).... @+ Magdi
  12. Magdi95

    Question plus simple!

    Salut,salut Merci pour vos réponses. La modif de MEA répond bien a ma demande Patrick s'est parfait. Petit souci d'explication de ma part :cool: :exclam: au debut mais bien résolu! Bonuscad ton code est aussi très interressant il offre d'autres possibilités que je vais exploiter. Probleme Résolu! ;) Merci à vous Bonne journée
  13. Magdi95

    Question plus simple!

    Re, Merci d'avoir pris le temps. Le resultat n'est pas tout à fait ce que j'attend! Le principe de départ est identique à celui de MES: - pouvoir selectionner plusieurs points (qui correspondent au chemin qu'emprunte mon cable) en cumulant les longueurs entre chaque point. -Puis pouvoir à tous moments renseigner la distance cumulée à un attribut (de mon premier poste informatique) -Pouvoir continuer ma selection de point s puis à nouveau renseigner la distance cumulé depuis le debut a un nouvel attribut (mon second poste de travail). -Puis continuer juqu'a mon prochain attribut etc... J'espere avoir été assez clair sinon je peux poster un petit schéma de principe. Merci d'avance Magdi
  14. Bonjour à tous, Mon dernier poste concernant la modification du lisp DS2 devait faire peur alors qu'il y a surement plus simple avec le lisp MES de Patrick, enfin je l'espere! Voici ce que je souhaiterais pouvoir faire: MES permet de mesurer des distances d'un point à un autre et de les cumuler, est il possible de proposer d'appliquer cette distance cumulé a un attribut sans pour autant perdre le fil càd d'appliquer cette valeur a un attribut quand je le souhaite? Ci joint le code MES: (defun c:mes (/ pt1 pt2 tot) (setq tot 0) (if (setq pt1 (getpoint "\nPremier point : ")) (while (setq pt2 (getpoint pt1 "\nPoint suivant : ")) (setq tot (+ tot (distance pt1 pt2))) (princ (strcat "\n Distance cumulée : " (rtos tot) " --> Distance mesurée : " (rtos (distance pt1 pt2)))) (setq pt1 pt2) ) ) (princ) ) Si ma demande n'est pas realisable merci de m'en faire part je comprendrais Bonne journée à toute la comunauté :D Magdi
  15. Magdi95

    Evolution DS2

    Bonjour à tous, J'utilise le lisp suivant: ; ;; allows for continuous distance measurements ;; with an enity selection option and a total ;; of all measurements made (defun ERR_DIS (ERR_MSG) ; error control (prompt "\nOuch... ") (DIS_BACK) ) ; end defun err_dis (defun DIS_SET () (setq DIS_ERR *ERROR*) (setq *ERROR* ERR_DIS) (setvar "cmdecho" 0) (princ) ) ; end dis_set (defun DIS_BACK () (setq *ERROR* DIS_ERR) (if (/= DIS_DEL NIL) (progn (foreach DIS_E DIS_DEL (entdel DIS_E) ) ;end foreach ) ;end progn ) ;end if (setvar "cmdecho" 1) (princ) ) ; end dis_back ; (defun ASO (NUM LST) (cdr (assoc NUM LST)) ) ;_ end of defun ;********************* ;; Main routine start (defun C:DS2 (/ DIS_LIST DIS_UNIT DIS_SIG DIS_VAL DIS_REAL DIS_SHOW DIS_LAST DIS_START DIS_PT1 DIS_PT2 GO_SEL );DIS_POP (DIS_SET) (princ "\nDistance ") (setq DIS_LIST NIL) (setq DIS_START NIL) (setq DIS_UNIT (getvar "lunits")) (setq DIS_SIG (getvar "luprec")) (setq DIS_DEL NIL) (initget 128 "S") (setq DIS_PT1 (getpoint "\nFirst point or (S)elect entity: ")) (cond ((/= DIS_PT1 "S") (setq GO_SEL "nope") (setq DIS_START DIS_PT1) ) ((= DIS_PT1 "S") (setq GO_SEL "yep") (DIS_SEL) ) ) ;end cond (while (/= DIS_PT1 NIL) (cond ((= GO_SEL "nope") (initget 128 "N S C") (setq DIS_PT2 (getpoint DIS_PT1 "\nNext point, (N)ew point, (S)elect entity or : " ) ;_ end of getpoint ) ;_ end of setq (if (= DIS_PT2 NIL) (setq DIS_PT1 NIL) ) ;_ end of if ) ((= GO_SEL "yep") (setq DIS_PT2 NIL) (setq GO_SEL "nope") (initget 128 "S C") (setq DIS_PT1 (getpoint "\nFirst point or (S)elect entity or : " ) ;_ end of getpoint ) ;_ end of setq (if (or (= DIS_PT1 "S") (= DIS_PT1 "C")) (setq DIS_PT2 DIS_PT1) ) ;_ end of if ) ) ;end cond (cond ((and (/= DIS_PT2 NIL) (/= DIS_PT2 "N") (/= DIS_PT2 "S") (/= DIS_PT2 "C") ) ;_ end of and (setq GO_SEL "nope") (setq DIS_VAL (distance DIS_PT1 DIS_PT2)) (setq DIS_REAL (rtos DIS_VAL DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ DIS_REAL) (if (/= DIS_LIST NIL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (setq DIS_LIST DIS_SHOW) ) ;_ end of if (DIS_LINE DIS_PT1 DIS_PT2) (setq DIS_PT1 DIS_PT2) ) ((= DIS_PT2 "N") ; new point option (setq GO_SEL "nope") (setq DIS_PT1 (getpoint "\nFirst point: ")) ) ((= DIS_PT2 "S") ; select entity option (setq GO_SEL "yep") (DIS_SEL) ) ((= DIS_PT2 "C") ; close option (setq DIS_VAL (distance DIS_PT1 DIS_START)) (setq DIS_REAL (rtos DIS_VAL DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ DIS_REAL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (DIS_LINE DIS_PT1 DIS_START) (setq DIS_PT1 DIS_START) ) ) ;end cond ) ;end while (if (/= DIS_LIST NIL) (progn ; 3 (setq DIS_POP (rtos DIS_LIST DIS_UNIT DIS_SIG)) (princ (strcat "\nDistance totale : " DIS_POP)) ) ;end progn 3 ) ;end if (DIS_BACK) (princ) ;; Complément par F.Loutan, le 02.09.2005 (setq dml1 (atof DIS_POP));transformer en réel (setq dml2 (/ dml1 100)) ;facteur d'échelle du résultat (setq dml3 (rtos dml2 2 2));transformer esn string pour ajouter le ml (setq dml2 (strcat dml3 "ml")) (alert (strcat "\nLa longueur de l'objet est de: " dml2)) ; (setvar "cmdecho" cmdecho) (setq e (car (nentsel "\choix de l'attribut"))) (setq ent (entget e)) ;(prompt "\nSelectionnez le texte de l'attribut a remplacer ...:") (entmod (subst (cons 1 dml2) (assoc 1 ent) ent)) (entupd e) ;(command "changer" pause "" "" "" "" "" "" taire2) (prompt "\nBy FL 02.09.2005 ") (princ) ) ;end DS ; (defun DIS_LINE (ONE TWO / DIS_TRACE DIS_LAST DIS_GOT DIS_NM) ; distance tracing function one (setq DIS_TRACE (list (cons 0 "LINE") (cons 10 ONE) (cons 11 TWO) (cons 62 5) ) ;_ end of list ) ;_ end of setq (entmake DIS_TRACE) (setq DIS_LAST (entlast)) (setq DIS_GOT (entget DIS_LAST)) (setq DIS_NM (ASO -1 DIS_GOT)) (if (/= DIS_DEL NIL) (setq DIS_DEL (cons DIS_NM DIS_DEL)) (setq DIS_DEL (list DIS_NM)) ) ;_ end of if ) ;end dis_line ; (defun DIS_COPY (/ SEL_LAY SEL_NO SEL_CHK SEL_LIST SEL_LAST SEL_GOT SEL_NM) ; distance tracing function two (setq SEL_LAY (getvar "clayer")) (setq SEL_LIST NIL) (foreach SEL_NO SEL_GET (setq SEL_CHK (car SEL_NO)) (if (and (/= SEL_CHK -1) (/= SEL_CHK 5)) (progn (cond ((= SEL_CHK 8) (setq SEL_NO (cons 8 SEL_LAY)) ) ((and (= ANG_GO "yep") (= SEL_CHK 50)) (setq SEL_NO (cons 50 SEL_ANG1)) ) ((and (= ANG_GO "yep") (= SEL_CHK 51)) (setq SEL_NO (cons 51 SEL_ANG2)) ) ) ;end cond (if (/= SEL_LIST NIL) (setq SEL_LIST (cons SEL_NO SEL_LIST)) (setq SEL_LIST (list SEL_NO)) ) ;_ end of if ) ;end progn ) ;end if ) ;end foreach (setq SEL_LIST (cons (cons 62 5) SEL_LIST)) (setq SEL_LIST (reverse SEL_LIST)) (entmake SEL_LIST) (setq SEL_LAST (entlast)) (setq SEL_GOT (entget SEL_LAST)) (setq SEL_NM (ASO -1 SEL_GOT)) (if (/= DIS_DEL NIL) (setq DIS_DEL (cons SEL_NM DIS_DEL)) (setq DIS_DEL (list SEL_NM)) ) ;_ end of if ) ;end dis_copy ; (defun DIS_SEL (/ SEL_GO SEL_NENT SEL_PNT SEL_GET SEL_TYPE DIS_ANS1 DIS_ANS2 SEL_CEN SEL_RAD SEL_ANG1 SEL_ANG2 DIS_ANS SEL_PI SEL_DLTA SEL_BEG SEL_END SEL_LEN SEL_NO SEL_CHK DIS_REAL DIS_SHOW ) ; entity selection option (setq DIS_PT1 NIL) (setq SEL_GO "yep") (while (= SEL_GO "yep") (setq SEL_NENT NIL) (setvar "osmode" 512) (setq SEL_PNT (getpoint "\nSelect entity: ")) (setvar "osmode" 0) (if (= SEL_PNT NIL) (setq SEL_GO "out") ) ;_ end of if (if (/= SEL_PNT NIL) (setq SEL_NENT (nentselp SEL_PNT)) ) ; even if in a block (if (/= SEL_NENT NIL) (progn ; 1 (setq SEL_GET (entget (car SEL_NENT))) ; get entity data (setq SEL_TYPE (ASO 0 SEL_GET)) (cond ((= SEL_TYPE "ARC") ; arc distance (setq ANG_GO "nope") (setq DIS_ANS1 NIL) (setq DIS_ANS2 NIL) (setq SEL_CEN (ASO 10 SEL_GET)) (setq SEL_RAD (ASO 40 SEL_GET)) (setq SEL_ANG1 (ASO 50 SEL_GET)) (setq SEL_ANG2 (ASO 51 SEL_GET)) (initget "S") (setq DIS_ANS (getkword "\n(S)elect points on arc or ? " ) ;_ end of getkword ) ;_ end of setq (if (/= DIS_ANS NIL) (progn ; 1 (setq ANG_GO "yep") (setvar "osmode" 512) (setq DIS_ANS1 (getpoint "\nFirst point: ")) (if (/= DIS_ANS1 NIL) (setq DIS_ANS2 (getpoint "\nSecond point: ")) ) ;_ end of if (setvar "osmode" 0) (if (/= DIS_ANS2 NIL) (progn ; a (setq SEL_ANG2 (angle SEL_CEN DIS_ANS1)) (setq SEL_ANG1 (angle SEL_CEN DIS_ANS2)) ) ;end progn a (princ "**The arc's original endpoints were used.**") ) ;end if ) ;end progn 1 ) ;end if (setq SEL_PI (* pi 2.0)) (setq SEL_DLTA (- SEL_ANG2 SEL_ANG1)) (if (>= SEL_DLTA SEL_PI) (setq SEL_DLTA (- SEL_PI SEL_DLTA)) ) ;_ end of if (if (< SEL_DLTA 0) (setq SEL_DLTA (+ SEL_PI SEL_DLTA)) ) ;_ end of if (setq DIS_REAL (rtos (* SEL_RAD SEL_DLTA) DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ DIS_REAL) (if (/= DIS_LIST NIL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (setq DIS_LIST DIS_SHOW) ) ;_ end of if (setq DIS_PT1 (polar SEL_CEN SEL_ANG2 SEL_RAD)) (if (= DIS_START NIL) (setq DIS_START (polar SEL_CEN SEL_ANG1 SEL_RAD)) ) ;_ end of if (DIS_COPY) ) ((= SEL_TYPE "LINE") ; line distance (setq SEL_BEG (ASO 10 SEL_GET)) (setq SEL_END (ASO 11 SEL_GET)) (setq SEL_LEN (distance SEL_BEG SEL_END)) (setq DIS_REAL (rtos SEL_LEN DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ DIS_REAL) (if (/= DIS_LIST NIL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (setq DIS_LIST DIS_SHOW) ) ;_ end of if (setq DIS_PT1 SEL_END) (if (= DIS_START NIL) (setq DIS_START SEL_BEG) ) ;_ end of if (DIS_COPY) ) ((or (= SEL_TYPE "LWPOLYLINE") (= SEL_TYPE "POLYLINE")) ; polyline distance (command "_AREA" "o" SEL_NENT) (setq SEL_LEN (getvar "perimeter")) (setq DIS_REAL (rtos SEL_LEN DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ DIS_REAL) (if (/= DIS_LIST NIL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (setq DIS_LIST DIS_SHOW) ) ;_ end of if (setq SEL_BEG NIL) (foreach SEL_NO SEL_GET (setq SEL_CHK (car SEL_NO)) (if (= SEL_CHK 10) (progn (setq SEL_END (cdr SEL_NO)) (if (= SEL_BEG NIL) (setq SEL_BEG SEL_END) ) ;_ end of if ) ;end progn ) ;end if ) ;end foreach (setq DIS_PT1 SEL_END) (if (= DIS_START NIL) (setq DIS_START SEL_BEG) ) ;_ end of if (DIS_COPY) ) ((= SEL_TYPE "CIRCLE") ; circle circumference (command "_AREA" "o" SEL_NENT) (setq SEL_LEN (getvar "perimeter")) (setq DIS_REAL (rtos SEL_LEN DIS_UNIT DIS_SIG)) (setq DIS_SHOW (distof DIS_REAL DIS_UNIT)) (princ (strcat "circumference " DIS_REAL)) (if (/= DIS_LIST NIL) (setq DIS_LIST (+ DIS_LIST DIS_SHOW)) (setq DIS_LIST DIS_SHOW) ) ;_ end of if (setq DIS_PT1 SEL_PNT) (if (= DIS_START NIL) (setq DIS_START SEL_PNT) ) ;_ end of if (DIS_COPY) ) ) ;end cond ) ;end progn 1 ) ;end if ) ;end while ) ;end dis_sel Il m'est utile pour faire des mettrés de cables pour des postes de travail informatique. Le seul probleme est qu'il me propose d'appliquer la longueur totale a un seul attribut donc obliger de faire cette manip a chaque fois, meme pour un poste a quelque metres :mad: . Comment faire pour qu'il me propose d'appliquer la valeur "cumulée" donc à chaque pointage :exclam: . D'autre part la distance totale renseignée dans la fenetre de texte d'autocad (ex:13.87) est bien en metre mais lorsqu'il renseigne l'attribut il met 0.13ml. Peut-on avoir la distance 13.87 dans l'etiquette et sans "ml". Par avance Merci Bonne journée Magdi[Edité le 31/3/2010 par Magdi95]
×
×
  • 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é