Aller au contenu

capde06

Membres
  • Compteur de contenus

    619
  • Inscription

  • Dernière visite

  • Jours gagnés

    4

Tout ce qui a été posté par capde06

  1. capde06

    Info block

    il faut ajouter cette ligne au debut (vl-load-com)
  2. si tu as le menu express il y a la commande MAINLEV
  3. hello peut etre que la variable "pickadd" est a 0 essai a 2
  4. la commande -purger "r" peux le rétrécir a taper au clavier sans oublier le moins devant
  5. capde06

    DECALER 3D

    ca existe fait une recherche sur le site "decal3d" il y a un poste sur ca
  6. capde06

    recherche de champ

    voir la variable "CTAB"
  7. hello il y a aussi la command "lsp"
  8. capde06

    rotation attribut

    hello une ptit macro pour ca il faut donner un angle par 2 points et apres pointer les attributs ou textes à modifier (defun c:cpatt () ;copie langle dun attribut sur un bloc (setq pt1 (getpoint "\npremier point :")) (setq pt2 (getpoint "\ndeuxieme point :" pt1)) (setq rot (angle (trans pt1 1 0) (trans pt2 1 0))) (while (setq ent (car (nentsel "\nChoix de l'attribut a mettre ajour"))) (setq e (entget ent)) (setq e (entmod (subst (cons 50 rot) (assoc 50 e) e))) (entupd ent) (setq ent nil e nil ) ;_ Fin de setq ) ;_ Fin de while ) ;_ Fin de defun
  9. capde06

    Champ récalcitrant

    non la reference est inseré normalement non lié j'ai testé superposition association ....toujours pareil mais apres le changement le champ s'affiche normalement apres un regen "monxref|nombloc"
  10. hello probleme dans une xref je fais des champs qui me donne le nom du bloc. dans un autre fichier de mise en page xref inseré je vois le champ correct "monbloc" dans un autre fichier de mise en page je vois le champ "monxref|monbloc" avez vous une idee de la variable,,,,??????
  11. capde06

    Cotation dans le bon calque

    hello il y a une super macro sur le site a lee-mac pour ce probleme je l'utilise toujours ca marche avec les reactors et avec plusieurs type de command Voir ici
  12. capde06

    pente entre 2 pts

    hello just for the fun en m'inspirant du lisp plus haut jai fait ca pourcentage de pente entre 2 blocs points. il suffit de cliquer sur l'attribut altitude du premier bloc et sur l'attribut altitude du deuxième bloc point les altitudes sont prise dans l'attibut donc les blocs point peuvent etre inserés en 2D merci a patrick35 pour le point d'insertion du bloc merci a (gile) pour la fonction sur les variant bref, je n'ai pas fait grand chose ............ (defun c:pente% () (prompt "\nAttribut altitude du 1er bloc :") (setq att (vlax-ename->vla-object (setq ent1 (car (nentsel))))) ;;;;;;;;;;;;;;;;; (setq alt1 (atof (cdr (assoc 1 (entget ent1))))) (setq pt1 (trans (gc:VariantToLispData (vla-get-InsertionPoint (vla-objectidtoobject (vla-get-database att) (vla-get-ownerid att)))) 0 1)) (prompt "\nAttribut altitude du 2eme bloc :") (setq att (vlax-ename->vla-object (setq ent1 (car (nentsel))))) ;;;;;;;;;;;;;;;;; (setq alt2 (atof (cdr (assoc 1 (entget ent1))))) (setq pt2 (trans (gc:VariantToLispData (vla-get-InsertionPoint (vla-objectidtoobject (vla-get-database att) (vla-get-ownerid att)))) 0 1) ) (setq pente (* 100 (/ (- alt2 alt1) (distance (list (car pt1) (cadr pt1)) (list (car pt2) (cadr pt2)) ) ) ) ) (entmake (list '(0 . "TEXT") '(10 0. 0. 0.) (cons 11 (trans (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.)) pt1 pt2) 1 0 ) ) (cons 1 (if (minusp pente) (strcat (rtos (abs pente) 2 2) "% >") (strcat "< " (rtos pente 2 2) "%") ) ) (cons 40 (getvar 'textsize)) (cons 50 (+ (angle pt1 pt2) (angle '(0. 0. 0.) (getvar 'ucsxdir))) ) '(72 . 1) '(73 . 2) ) ) (grdraw pt1 pt2 1 -1) ) (defun gc:VariantToLispData (var) (cond ((= (type var) 'variant) (gc:VariantToLispData (vlax-variant-value var))) ((= (type var) 'safearray) (mapcar 'gc:VariantToLispData (vlax-safearray->list var)) ) (var) ) )
  13. capde06

    Ligne de Repère Multiple

    HELLO LA COMANDE EST ANNOMONITOR sinon elle est sous forme d'icone dans la barre d'état en bas a gauche icone en forme de croix
  14. Imbriquer les filtres !!!!! ben la, j'en apprend une. merci patrick
  15. hello peut etre en faisant un "nouveau filtre de groupe"
  16. capde06

    Commande pour Interpolation

    je n'avais pas vu mais ca reste delicat de modifier une fonction d'autre prog l'utilisent comme les courbes de niveau plus haut dans le post mieux vaut la renommer
  17. capde06

    Commande pour Interpolation

    belle méthode Olivier mais ma fonction cap-i3d ne calcul que la position en 2d il faudrai que tu rajoutes le Z a la variable newpt
  18. Les réponses se font rare a cause du mois Août
  19. capde06

    Commande pour Interpolation

    sur un post précédent j'avais posté une macro de courbe de niveau sur des face3d il est tres facile de le modifier pour ne dessiner qu'une courbe a une altitude donnée si ca intéresse ..... le voila modifié (defun c:courbeniv () (setq zmax -9999999.99 zmin 9999999.99 cpx 0 plan 125 listsom nil ;tpoly nil plcourt (getvar "clayer") oldos (getvar "osmode") espace nil ) ;_ Fin de setq (setq oldordretrace (getvar "DRAWORDERCTL")) (setvar "DRAWORDERCTL" 0) (setvar "cmdecho" 0) (setvar "osmode" 0) (if (not (tblsearch "LAYER" "TOPO-COURBES-NIVEAU")) (cap_crea_pl "TOPO-COURBES-NIVEAU" 7) ) (if (not (tblsearch "LAYER" "TOPO-COURBES-NIVEAU-5")) (cap_crea_pl "TOPO-COURBES-NIVEAU-5" 2) ) (if (not (tblsearch "LAYER" "TOPO-COURBES-NIVEAU-10")) (cap_crea_pl "TOPO-COURBES-NIVEAU-10" 3) ) (setvar "clayer" "TOPO-COURBES-NIVEAU") ;(command "scu" "g") (setq sel (ssget '((0 . "3DFACE")))) ;; recherche zmini zmaxi (repeat (sslength sel) (setq ent (ssname sel cpx) dxf10 (cdr (assoc 10 (entget ent))) dxf11 (cdr (assoc 11 (entget ent))) dxf12 (cdr (assoc 12 (entget ent))) dxf10z (caddr dxf10) dxf11z (caddr dxf11) dxf12z (caddr dxf12) ) ;_ Fin de setq (if (> dxf10z zmax) (setq zmax dxf10z) ) ;_ Fin de if (if (> dxf11z zmax) (setq zmax dxf11z) ) ;_ Fin de if (if (> dxf12z zmax) (setq zmax dxf12z) ) ;_ Fin de if (if (< dxf10z zmin) (setq zmin dxf10z) ) ;_ Fin de if (if (< dxf11z zmin) (setq zmin dxf11z) ) ;_ Fin de if (if (< dxf12z zmin) (setq zmin dxf12z) ) ;_ Fin de if (setq listsom (cons (list dxf10 dxf11 dxf12) listsom)) (setq cpx (+ cpx 1)) ) ;_ Fin de repeat (prompt (strcat "\nAltitude maxi : " (rtos zmax 2 0) " - Altitude mini : " (rtos zmin 2 0) ) ;_ Fin de strcat ) ;_ Fin de prompt ;(setq espace (getreal "\nValeur de l'espacement des courbes : ")) (if (not espace) (setq espace 1) ) ;_ Fin de if (setq val (getreal "\nAltitude recherchée ; ")) ;;;; creation liste des coupes (setq listcoupe nil cp (fix zmin) ) ;_ Fin de setq (while (< cp zmax) ; (/(fix (- zmax zmin))espace) (setq cp (+ cp espace)) (setq listcoupe (cons cp listcoupe)) ) ;_ Fin de repeat ;(setq listcoupe (reverse listcoupe)) (setq listcoupe (list val)) ;;========================================================== (foreach plan listcoupe ;(print plan) (setq cpx 0) ;_ Fin de setq (repeat (length listsom) (setq llist (nth cpx listsom)) (setq p1 (car llist) p2 (cadr llist) p3 (caddr llist) ) ;_ Fin de setq (setq mini (min (caddr p1) (caddr p2) (caddr p3) ) ;_ Fin de min maxi (max (caddr p1) (caddr p2) (caddr p3) ) ;_ Fin de max ) ;_ Fin de setq (setq pt1 nil pt2 nil pt3 nil listcal nil ) ;_ Fin de setq (if (and (>= plan mini) (<= plan maxi)) (progn (if (and (<= plan (caddr p1)) (> plan (caddr p2))) (setq listcal (cons (cap-i3d p1 p2 plan) listcal)) ) ;_ Fin de if (if (and (<= plan (caddr p1)) (> plan (caddr p3))) (setq listcal (cons (cap-i3d p1 p3 plan) listcal)) ) ;_ Fin de if (if (and (<= plan (caddr p2)) (> plan (caddr p3))) (setq listcal (cons (cap-i3d p2 p3 plan) listcal)) ) ;_ Fin de if+++ (if (and (>= plan (caddr p1)) (< plan (caddr p2))) (setq listcal (cons (cap-i3d p1 p2 plan) listcal)) ) ;_ Fin de if (if (and (>= plan (caddr p1)) (< plan (caddr p3))) (setq listcal (cons (cap-i3d p1 p3 plan) listcal)) ) ;_ Fin de if (if (and (>= plan (caddr p2)) (< plan (caddr p3))) (setq listcal (cons (cap-i3d p2 p3 plan) listcal)) ) ;_ Fin de if (remove_doubles listcal) (cond ((= (length listcal)1) ;_ Fin de = (if (equal plan (caddr p1)) (setq listcal (cons p1 listcal)) ) (if(equal plan (caddr p2)) (setq listcal (cons p2 listcal)) ) (if(equal plan (caddr p3)) (setq listcal (cons p3 listcal)) ) (cap_cn_pol (car listcal) (cadr listcal)) ) ((> (length listcal) 1) (cap_cn_pol (car listcal) (cadr listcal)) ) ;_ Fin de progn ) ;_ Fin de cond ) ) ;_ Fin de if (setq cpx (+ cpx 1)) ; ) ;_ Fin de repeat ) ;_ Fin de foreach (setq sel (ssget "x" '((0 . "LINE") (8 . "TOPO-COURBES-NIVEAU*")))) ;_ Fin de setq (setvar "peditaccept" 1) (setvar "splinetype" 5) (command "_pedit" "m" sel "" "j" "0" "") (setvar "peditaccept" 0) ;;traitement des couleurs (setq sel (ssget "x" '((0 . "LWPOLYLINE") (8 . "TOPO-COURBES-NIVEAU*")))) ;_ Fin de setq (setq cpt 0) (print "======================") (repeat (sslength sel) (setq ent (ssname sel cpt)) (setq elev (cdr(assoc 38 (entget ent)))) (cond ((= (rem elev 10.) 0.) (upd_ent ent 8 "TOPO-COURBES-NIVEAU-10") ) ((= (rem elev 5.) 0.) (upd_ent ent 8 "TOPO-COURBES-NIVEAU-5") ) ) (setq cpt (+ cpt 1)) ) ;;=========================== (setvar "DRAWORDERCTL" oldordretrace) (setvar "osmode" oldos) (setvar "clayer" plcourt) ) ;_ Fin de defun ;;;fonctions================================================================ (defun c:crea_blk_cn () (if (not (tblsearch "BLOCK" "CNTXT")) (progn (entmake '((0 . "BLOCK") (100 . "AcDbEntity") (8 . "0") (100 . "AcDbBlockBegin") (2 . "CNTXT") (70 . 2) (10 0.0 0.0 0.0) ) ) (entmake '((0 . "LINE") (8 . "0") (62 . 0) (10 -0.5 0. 0.) (11 0.5 0. 0.) ) ) (entmake '((0 . "ATTDEF") (100 . "AcDbEntity") (8 . "0") (62 . 0) (40 . 0.08) (100 . "AcDbText") (10 0.0 0.0 0.0) (100 . "AcDbAttributeDefinition") (3 . "Pente ?") (2 . "PENTE") ) ) (entmake '((0 . "ENDBLK") (8 . "0"))) ) ) ) (defun remove-i (ind lst) (if (or (zerop ind) (null lst)) (cdr lst) (cons (car lst) (remove-i (1- ind) (cdr lst))) ) ) (defun remove_doubles (lst) (if lst (cons (car lst) (remove_doubles (vl-remove (car lst) lst))) ) ) (defun cap_cn_pol (a B) (setq pt1 (list (car a) (cadr a)) pt2 (list (car B) (cadr B)) ) ;_ Fin de setq (if (not (equal pt1 pt2)) (entmake (list '(0 . "LINE") '(8 . "TOPO-COURBES-NIVEAU") (cons 10 (list (car a) (cadr a) plan)) (cons 11 (list (car B) (cadr B) plan)) '(210 0.0 0.0 1.0) ) ;_ Fin de list ) ;_ Fin de entmake ) ;_ Fin de if ) ;_ Fin de defun (defun cap-i3d (p1 p2 comp) (setq c (/ (- (caddr p1) comp) (- (caddr p2) comp)) newx (/ (- (* c (car p2)) (car p1)) (- c 1)) newy (/ (- (* c (cadr p2)) (cadr p1)) (- c 1)) ) ;_ Fin de setq (list newx newy) ) ;_ Fin de defun ;; ; met a jour une entite : entité avant entget + code + valeur (defun upd_ent (obj code txt) (setq obj (entget obj)) (entmod (subst (cons code txt) (assoc code obj) obj)) ) ;_ Fin de defun (defun cap_crea_pl (pl cl) (if (not (tblsearch "LAYER" pl)) (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 pl) '(70 . 0) (cons 62 cl) '(6 . "Continuous") ) ) ) ) (defun cap_cn_pol1 (a B) (setq pt1 (list (car a) (cadr a)) pt2 (list (car B) (cadr B)) ) ;_ Fin de setq (if (not (equal pt1 pt2)) (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(8 . "TOPO-COURBES-NIVEAU") '(100 . "AcDbPolyline") '(90 . 2) '(70 . 128) ;'(43 . 00) (cons 38 plan) ;'(39 . 0.0) (cons 10 pt1) ;'(40 . 0.0) '(41 . 0.0) ;'(42 . 0.0) '(91 . 0) (cons 10 pt2) ; '(40 . 0.0) '(41 . 0.0) ;'(42 . 0.0) '(91 . 0) ; '(210 0.0 0.0 1.0) ) ;_ Fin de list ) ;_ Fin de entmake ) ;_ Fin de if )
  20. capde06

    Commande pour Interpolation

    comme je le dit au debut je sais pas
  21. capde06

    Commande pour Interpolation

    je sais pas mais en lisp ca donne ca... voila (defun c:valalti() (setq oldos (getvar "osmode")) (setq pt1 (trans (getpoint "\n1er point ")1 0)) (setq pt2 (trans (getpoint "\n2eme point ")1 0)) (princ "\n") (princ (caddr pt1)) (princ "\n") (princ (caddr pt2)) (setq val (getreal "\nAltitude recherchée ; ")) (setq newpt (cap-i3d pt1 pt2 val)) (setvar "osmode" 0) (command "point" (trans (list (car newpt)(cadr newpt)val) 0 1) ) (setvar "osmode" oldos) ) (defun cap-i3d (p1 p2 comp) (setq c (/ (- (caddr p1) comp) (- (caddr p2) comp)) newx (/ (- (* c (car p2)) (car p1)) (- c 1)) newy (/ (- (* c (cadr p2)) (cadr p1)) (- c 1)) ) ;_ Fin de setq (list newx newy) )
  22. peut etre que tu as fait "coller en tant que bloc" y faut pas
  23. capde06

    Trouvez l'erreur...

    j'ai trrouvé
  24. capde06

    Attribut

    encore 1 fois merci Patrick
  25. salut à tous mon programme pointe un attribut avec la fonction (nentsel) jusqu’à là tout va bien mais je n'arrive pas a savoir à quel bloc inséré il appartient. si vous avez une idée.....
×
×
  • 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é