Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. Salut, après un petit coup d'oeuil sur ton lisp, je te propose de modifier la logique en faisant ceci : 1 - Tu crées la polyligne (1) 2 - tu la mets dans une variable (entlast) 3 - tu la copie (2), puis tu mets la copie dans une variable 3 - tu fais un "entmod" pour chaque polyligne, pour modifier le calque : pas besoin de vérifier l'existence du calque, entmod et entmake crée automatiquement le calque !!! ... et ça devrait marcher.... Fais moi signe si tu ne t'en sort pas ! ;) Bon courage ! [Edité le 24/7/2007 par Bred]
  2. Salut lecrabe, non non, tu as bien compris, je cherche bien à tester la connection. Je n'avais pas pensé à "shell" en passant par la commande, mais j'étais en train de regarder le moyen de le faire en activeX (avec shell aussi d'ailleur).... et je ne trouve pas..... Donc je vais jeté un coup d'oeuil à ta poposition. merci !
  3. Salut, je cherche un moyen rapide de savoir si la connexion à distance fonctionne. Aussi rapide qu'un "ping"... Vous auriez des solutions ? merci ! ;) [Edité le 23/7/2007 par Bred]
  4. Bred

    Selection automatique

    La couleur de l'objet tu veux dire je pense : (setq Coul-Objet (cdr (assoc 62 (entget (ssname sel 0))))) Mais attention !!! il faut que tu fasses un test sur son existence, car si couleur objet = couleur DuCalque, le code 62 n'existe pas !!! ;) Je te laisse faire.... Pour info, il y a une une section LISP dans CADxp....
  5. Bred

    Simpsonisez-vous la face

    Ah ben ça fait plaisir, tiens !
  6. Bred

    Selection automatique

    Re, (setq coul-CLAQUE (cdr (assoc 62 (entget (tblobjname "LAYER" CALQUE)))))
  7. Bred

    Simpsonisez-vous la face

    Génial ! :D c'est du photo-réalisme !!! (non, je ne fairait pas le mien.... :P )
  8. Bred

    Selection automatique

    Re, (setq sel (ssget "_X" (list '(0 . "LWPOLYLINE")(list 10 0.0 0.0)))) (if (= (sslength sel) 1) (setq CALQUE (cdr (assoc 8 (entget (ssname sel 0))))) (princ "\n Plusieurs LwPolylignes en 0,0 ! \n Annulé.") )
  9. Bred

    Selection automatique

    Salut e bienvenue ! ta question n'est vraiment pas clair ! mais bon : Choix d' objets à 0 0 0 : (setq sel (ssget (list (list 10 0.0 0.0 0.0)))) Claque du premier objet selectionné : (setq lay (cdr (assoc 8 (entget (ssname sel 0))))) ... mais soit plus explicite dans ta question, afin que nous puissions mieux répondre ! (type d'objet, de selection, ce que tu veux faire du nom du calque....) voir, poste ton code !
  10. Bred

    TABLEAU (coordonnées de points)

    Pour cela il faudrait donc nommer ces points sur le plan ! C'est possible à automatiser, mais il faudrait donner plus de détail sur ce que tu veux.
  11. Bred

    TABLEAU (coordonnées de points)

    Re, Résupérer les coordonnées des points et les mettre "en vrac" dans un tableau est simple : mais que veux-tu en faire après ?
  12. Bred

    TABLEAU (coordonnées de points)

    Salut et bienvenue ! cespoints sont sous quelle forme ? (blocs, attributs, ...)
  13. Bred

    curseur invisible

    Salut, et non... sauf une fois : ma fille m'avait collé une gomette sur l'écran. Je pensais que c'était une hachure "solid" au début ... ;)
  14. Salut, tu l'ouvres (outils/personnaliser/paramètre de programme (acad.pgp) puis tu l'enregistre à un endoit ou tu puisses le retrouver.
  15. Bred

    ssget polygone

    Salut, http://xs117.xs.to/xs117/07295/2007-07-20_094558.jpg
  16. ?... :casstet: c'est plaisant... je n'utilise en effet jamais les commandes systèmes avec Autocad actif.... mais cela m'a permis d'apprendre encore quelque chose.... ....aussi bien sur Autocad que sur un participant au forum.... :mad2:
  17. Bred

    Routines pour TEXT/MTEXT

    Re, j'ai ouvert un sujet ici concernat le classement des polylignes. (le sujet de ce post n'avais rien à voir).
  18. Salut, Comme le post ici s'étalait et était hors-jujet, je poste ici une routine demandé par lecrabe : Celle-ci permet de mettre les (lw)polylignes 2D et 3D dans des calques selons le critère de longueur ou de surface (une fourchette de valeur). Vous devez, pour personnaliser la routine, modifier/rajouter des écarts dans la routine "list_tri_poly". (et modifier aussi "Nom_du_calque") commande "tri-poly" Choix de classement par défaut : Longueur Nota : 1- je ne savais pas comment trouver la surface d'une polyligne "simple" (dites 3D), donc j'ai créer une routine qui calcul cette surface (vla-get-area2Dpoly3D) en projetant les point sur un plan. 2-repiquage de la routine LST2MAT et SUBLST de (gile). ;;; tri polyligne selon Surface ou longueur ;;;;;;; ;;;par Bred. [b]; fourchette - à modifier- (defun list_tri_poly () (list "Nom_du_calque" (cons 0 3) (cons 4 9) (cons 10 19) ) )[/b] ;prog tri (defun c:tri-poly (/ A I L LST Q SEL X) (vl-load-com) (initget "L S") (setq Q (getkword "\n Tris des (LW)Polylignes par Calque : Longueur ou Surface (L/S) ? ")) (if (not Q )(setq Q "L")) (setq sel (ssget '((0 . "*POLYLINE"))) lst (list_tri_poly)) (repeat (setq i (sslength sel)) (setq L (vla-get-length (vlax-ename->vla-object (ssname sel (setq i (1- i)))))) (if (equal (vla-get-ObjectName (vlax-ename->vla-object (ssname sel i))) "AcDb3dPolyline") (setq A (vla-get-area2Dpoly3D (vlax-ename->vla-object (ssname sel i)))) (setq A (vla-get-area (vlax-ename->vla-object (ssname sel i)))) ) (if (equal Q "L") (repeat (1- (setq x (length lst))) (if (and (>= L (car (nth (setq x (1- x)) lst))) (<= L (cdr (nth x lst)))) (entmod (subst (cons 8 (strcat (car lst) "-" (rtos (car (nth x lst))) "_" (rtos (cdr (nth x lst))))) (assoc 8 (entget (ssname sel i))) (entget (ssname sel i)) )))) (repeat (1- (setq x (length lst))) (if (and (>= A (car (nth (setq x (1- x)) lst))) (<= A (cdr (nth x lst)))) (entmod (subst (cons 8 (strcat (car lst) "-" (rtos (car (nth x lst))) "_" (rtos (cdr (nth x lst))))) (assoc 8 (entget (ssname sel i))) (entget (ssname sel i)) )))) ) ) (princ) ) ;;; LST2MAT Retourne un liste de listes du nombre ;;; d'éléments spécifié (matrice) ;;; (lst2mat '(1 2 3 4 5 6) 2) -> ((1 2) (3 4) (5 6)) ;;; (lst2mat '(1 2 3 4 5 6) 3) -> ((1 2 3) (4 5 6)) (defun lst2mat (lst n) (if (and lst (zerop (rem (length lst) n))) (cons (sublst lst 1 n) (lst2mat (sublst lst (1+ n) (- (length lst) n)) n) ) ) ) ;;; SUBLST Retourne une sous-liste ;;; Premier élément : 1 ;;; (sublst '(1 2 3 4 5 6) 3 2) -> (3 4) ;;; (sublst '(1 2 3 4 5 6) 3 -1) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 12) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 nil) -> (3 4 5 6) (defun sublst (lst start leng / rslt) (if (not (<= 1 leng (- (length lst) start))) (setq leng (- (length lst) (1- start))) ) (repeat leng (setq rslt (cons (nth (1- start) lst) rslt) start (1+ start)) ) (reverse rslt) ) ; routine surface (2D) Polyligne (3D) (defun vla-get-area2Dpoly3D (vla-poly3D / ACDOC AIRE COORD COORDF PLINE) (setq AcDoc (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) ) coordF nil coord (lst2mat (vlax-safearray->list (vlax-variant-value (vla-get-coordinates vla-poly3D))) 3)) (foreach n coord (setq coordF (append coordF (list (car n) (cadr n) 0.0)))) (setq pline (vla-addPolyline AcDoc (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length coordF))))coordF)))) (setq Aire (vla-get-area pline)) (vla-delete pline) Aire )
  19. ah ben oui ! merci !
  20. Bred

    Routines pour TEXT/MTEXT

    je suis en 2008, mais je teste aussi en 2006 (rapidement).
  21. Salut, en faisant une fausse manipulation, j'ai tapé "sh" en commande, j'ai alors eu droit à "SE:", puis à une fenêtre "***Interpéteur de commandes AUTOCAD actif***" .... Pour mon instruction, quelqu'un pourrait me dire à quoi ceci sert ? :casstet: merci !
  22. Bred

    Routines pour TEXT/MTEXT

    Ah oui ! je pensais en fait que je le faisais, mais j'avais inverser un test "if" ... j'ai édité le code précédent, test le et tiens moi au courant....
  23. Salut, es-tu allez voir dans les lisp de Patrick_35 ? Je pense que le lisp REA devrait répondre (en partie) à tes besoins...
  24. Bred

    Routines pour TEXT/MTEXT

    Re, Les polylignes(3D) lissée sont traités (j'avais oublié de mettre une routine : SUBLST de (gile) ) Par contre, ce que tu appel polyligne "spinées", c'est quoi, des spines ou autre chose ? (pour moi une spline n'est pas un polyligne)
  25. Bred

    Routines pour TEXT/MTEXT

    Re, Alors, à tester : commande "tri-poly" Choix de classement par défaut : Longueur Nota : 1- je ne savais pas comment trouver la surface d'une polyligne "simple" (dites 3D), donc j'ai créer une routine qui calcul cette surface (vla-get-area2Dpoly3D) en projetant les point sur un plan. 2-repiquage de la routine LST2MAT de (gile). ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tri polyligne selon Surface ou longueur ;;;;;;; ; par Bred ; [b]fourchette - à modifier-[/b] (defun list_tri_poly () (list "Nom_du_calque" (cons 0 3) (cons 4 9) (cons 10 19) ) ) ;prog tri (defun c:[b]tri-poly[/b] (/ A I L LST Q SEL X) (vl-load-com) (initget "L S") (setq Q (getkword "\n Tris des (LW)Polylignes par Calque : Longueur ou Surface (L/S) ? ")) (if (not Q )(setq Q "L")) (setq sel (ssget '((0 . "*POLYLINE"))) lst (list_tri_poly)) (repeat (setq i (sslength sel)) (setq L (vla-get-length (vlax-ename->vla-object (ssname sel (setq i (1- i)))))) (if (equal (vla-get-ObjectName (vlax-ename->vla-object (ssname sel i))) "AcDb3dPolyline") (setq A (vla-get-area2Dpoly3D (vlax-ename->vla-object (ssname sel i)))) (setq A (vla-get-area (vlax-ename->vla-object (ssname sel i)))) ) (if (equal Q "L") (repeat (1- (setq x (length lst))) (if (and (>= L (car (nth (setq x (1- x)) lst))) (<= L (cdr (nth x lst)))) (entmod (subst (cons 8 (strcat (car lst) "-" (rtos (car (nth x lst))) "_" (rtos (cdr (nth x lst))))) (assoc 8 (entget (ssname sel i))) (entget (ssname sel i)) )))) (repeat (1- (setq x (length lst))) (if (and (>= A (car (nth (setq x (1- x)) lst))) (<= A (cdr (nth x lst)))) (entmod (subst (cons 8 (strcat (car lst) "-" (rtos (car (nth x lst))) "_" (rtos (cdr (nth x lst))))) (assoc 8 (entget (ssname sel i))) (entget (ssname sel i)) )))) ) ) (princ) ) ;;; LST2MAT Retourne un liste de listes du nombre ;;; d'éléments spécifié (matrice) ;;; (lst2mat '(1 2 3 4 5 6) 2) -> ((1 2) (3 4) (5 6)) ;;; (lst2mat '(1 2 3 4 5 6) 3) -> ((1 2 3) (4 5 6)) (defun lst2mat (lst n) (if (and lst (zerop (rem (length lst) n))) (cons (sublst lst 1 n) (lst2mat (sublst lst (1+ n) (- (length lst) n)) n) ) ) ) ;;; SUBLST Retourne une sous-liste ;;; Premier élément : 1 ;;; (sublst '(1 2 3 4 5 6) 3 2) -> (3 4) ;;; (sublst '(1 2 3 4 5 6) 3 -1) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 12) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 nil) -> (3 4 5 6) (defun sublst (lst start leng / rslt) (if (not (<= 1 leng (- (length lst) start))) (setq leng (- (length lst) (1- start))) ) (repeat leng (setq rslt (cons (nth (1- start) lst) rslt) start (1+ start)) ) (reverse rslt) ) [b]; routine surface (2D) Polyligne (3D)[/b] (defun [b]vla-get-area2Dpoly3D[/b] (vla-poly3D / ACDOC AIRE COORD COORDF PLINE) (setq AcDoc (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) ) coordF nil coord (lst2mat (vlax-safearray->list (vlax-variant-value (vla-get-coordinates vla-poly3D))) 3)) (foreach n coord (setq coordF (append coordF (list (car n) (cadr n) 0.0)))) (setq pline (vla-addPolyline AcDoc (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length coordF))))coordF)))) (setq Aire (vla-get-area pline)) (vla-delete pline) Aire ) [Edité le 19/7/2007 par Bred] [Edité le 19/7/2007 par Bred]
×
×
  • 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é