capde06
Membres-
Compteur de contenus
619 -
Inscription
-
Dernière visite
-
Jours gagnés
4
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par capde06
-
il faut ajouter cette ligne au debut (vl-load-com)
-
Dessin de Polyligne - Orthophoto Pierres
capde06 a répondu à un(e) sujet de Thygraig dans AutoCAD 2015
si tu as le menu express il y a la commande MAINLEV -
hello peut etre que la variable "pickadd" est a 0 essai a 2
-
la commande -purger "r" peux le rétrécir a taper au clavier sans oublier le moins devant
-
ca existe fait une recherche sur le site "decal3d" il y a un poste sur ca
-
voir la variable "CTAB"
-
[Résolu] Comment lister tous les lisp au démarage d'AutoCAD
capde06 a répondu à un(e) sujet de Steven dans AutoCAD 2015
hello il y a aussi la command "lsp" -
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
-
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"
-
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,,,,??????
-
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
-
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) ) )
-
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
-
Filtre de calques - Ne pas faire apparaitre certains calques
capde06 a répondu à un(e) sujet de La Lozère dans AutoCAD 2015
Imbriquer les filtres !!!!! ben la, j'en apprend une. merci patrick -
Filtre de calques - Ne pas faire apparaitre certains calques
capde06 a répondu à un(e) sujet de La Lozère dans AutoCAD 2015
hello peut etre en faisant un "nouveau filtre de groupe" -
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
-
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
-
Les réponses se font rare a cause du mois Août
-
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 )
-
comme je le dit au debut je sais pas
-
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) )
-
Un bloc avec attribut qui ne se met pas à jour, d’un onglet à l’autre.
capde06 a répondu à un(e) sujet de jmb37 dans AutoCAD 2011
peut etre que tu as fait "coller en tant que bloc" y faut pas -
encore 1 fois merci Patrick
-
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.....
