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
-
Ouverture plusieurs Autocad par Windows 7
capde06 a répondu à un(e) sujet de phil_vsd dans AutoCAD 2010
il y a aussi la variable BARRETACHES -
hello je n'arrive pas a contrôler en lisp le value= :slider {key="nbrdeci";width = 1;value=valslider;min_value=0;max_value=4;} si vous avez une idée, je prend merci
-
je ne sais pas quelle version tu as mais la il y en a une récente http://sites.google.com/site/captopo/Home
-
salut je ne sais pas si on peut l'installer avec covadis jamais testé maintenant peut être que tu as plusieurs "acad.lsp" tape (findfile "acad.lsp") tu dois trouver celui de captopo pour l'instal lance le lisp qui est dans \captopo\menu\charge config.LSP ca mettra a jour les chemins de recherche des fichiers
-
pour le finaliser il faudrait mettre un cercle sur les faces horizontales
-
bravo t'es au top
-
je met en ligne le dernier né création de courbes de niveau sur un MNT le style de programmation et la méthode n'est pas très académique, mais bon.... le lissage a la fin du traitement ne satisfait pas vraiment, mais si vous avez des idées..... (defun c:courbeniv () ::auteur Capde06 - CapTopo (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 (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 ;;;; 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 327.22)) ;;========================================================== (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 (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) 2) (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 "osmode" oldos) (setvar "clayer" plcourt) ) ;_ Fin de defun ;;;fonctions================== (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") ) ) ) ) [Edité le 4/5/2010 par capde06][Edité le 5/5/2010 par capde06] [Edité le 12/5/2010 par capde06]
-
je viens de relire ce post il est tres instructif, il a interressé beaucoup de monde donc je vais publier un autre lisp qui devrait faire le buzz sur cadxp
-
regarder cette fonction elle fait un truc vraiment con créer un calque qui a la couleur du calque impensable........et ca marche en plus (if (not (tblsearch "LAYER" "toto")) (entmake '((0 . "LAYER") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLayerTableRecord") (2 . "toto") (70 . 0) (62 . 256) (6 . "Continuous") ) ) ) [Edité le 20/3/2010 par capde06]
-
je ne trouve pas la variable qui gère le type de lissage de la command pedit je voudrai avoir par défaut la méthode lissé et non le 3eme ordre merci
-
si tu as le menu express il y a la commande BCOUNT
-
le nouveau code insère les pourcentages de pente pas encore optimisé a la mode (gile) mais bon.... il me faut du temps pour comprendre.... (defun c:pente-mnt (/ p1 p2 p3 g pt1 pt2 pt3 pt4 pt5 sel i) (if (not (member "geomcal.arx" (arx))) (arxload "geomcal") ) ;_ Fin de if (setvar "attreq" 0) ;variable pour inserser bloc (command "scu" "g") (setq oldpl (getvar "clayer") oldos (getvar "osmode") oldcolor (getvar "cecolor") HT 0.15 ) (setvar "cmdecho" 0) (setvar "osmode" 0) ;(setvar "styletext" "standard") (If (Not (tblsearch "BLOCK" "Fleche-pente23")) (progn (setvar "aflags" 8) (setvar "osmode" 0) (setvar "cmdecho" 0) (setq oldpl (getvar "clayer") pt1 (list 0 -0.5 0) pt2 (list 0 0 0) pt3 (list 0 0.5 0) pt4 (list 0.125 0.125 0) pt5 (list -0.125 0.125 0) pt6 (list -0.15 -0.5 0) pt7 (list -0.15 0.5 0) ent nil ent (ssadd) Hatt 0.15 sel nil ) ;_ Fin de setq (setvar "clayer" "0") (command "polylign" pt1 pt2 pt3 pt4 pt5 pt3 "") (setq ent (ssadd (entlast))) (command "-calque" "et" "Pente-Attribut" "" ) ;_ Fin de command ; créer l'attribut (command "-attdef" "v" "" "NUM" "Pente de la face 3D" "0" "s" "standard" pt6 Hatt pt7) (setq ent (ssadd (entlast) ent)) (command "-bloc" "Fleche-pente23" pt2 ent "") (setvar "clayer" oldpl) (setvar "aflags" 0) ) ) ;_ Fin de If (If (Not (tblsearch "LAYER" "Pente-Fleche")) (command "-calque" "n" "Pente-Fleche" "" ) ;_ Fin de command ) (setvar "clayer" "Pente-Fleche") ;sélection des points d'une face 3D (prompt "\nSelection du MNT :") (setq sel (ssget '((0 . "3DFACE"))) i 0 ) ;_ Fin de setq (repeat (sslength sel) ;selection des entités un à un (setq ent (ssname sel i) p1 (cdr (assoc 10 (entget ent))) p2 (cdr (assoc 11 (entget ent))) p3 (cdr (assoc 12 (entget ent))) g (mapcar '(lambda (x1 x2 x3) (/ (+ x1 x2 x3) 3.)) p1 p2 p3) n (cal "nor(p1,p2,p3)") Xg (car g) Yg (cadr g) Xn (car n) Yn (cadr n) Zn (caddr n) ) ;calcul de la pente (setq pente-tx (strcat (rtos (* 100 (/ (sqrt (+ (expt Xn 2) (expt Yn 2))) (abs Zn))) 2 1) "%")) ;calcul de la direction de la pente (setq liste (list (+ Xg Xn) (+ Yg Yn))) ;insertion du bloc avec l'attribut (setq ang (angtos (angle g liste))) (command "-inserer" "Fleche-pente23" g "0.5" "0.5" ang) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (upd_blk (entlast) "NUM" 1 pente-tx) (setq i (+ i 1)) ) ;_ Fin de repeat (command "scu" "p") (setvar "clayer" oldpl) (setvar "osmode" oldos) (setvar "cecolor" oldcolor) ) (defun upd_blk(obj eti code txt) (setq ent_att (entnext obj)) (while (/= (cdr (assoc 0(entget ent_att))) "SEQEND") (if (= (cdr(assoc 2(entget ent_att))) eti) (progn (setq e (entget ent_att)) (entmod (subst (cons code txt) (assoc code e)e)) (entupd obj) ) ) (setq ent_att (entnext ent_att)) ) )
-
attention mon bloc et celui de (gile) est construit avec une orientation différente donc comparison impossible avant d'utiliser les 2 programmes il faut changer les noms du bloc dans l'un des 2 prog mon résultat a été comparé par lili2006 avec covadis : résultat identique (gile) jai regardé le post sur le SCO ben la ca dépasse mes compétences en math mais je vais mi penché
-
bravo j'ai testé sur un gros fichier le temps de traitement est presque instantané on voit la différence entre un pro et un amateur autodidacte merci pour la leçon. mais il y a des mystères dans la fonction entmake quand on regarde tes blocs ils ont tous la même valeur de rotation "200g" pas sur mon prog quand on regarde les codes DXF des blocs inseré avec entget le code 50 ne varie pas seul le code 210 est diffèrent ???? la j'avoue, je ne comprend pas.
-
quand on lance la commande HACHURE et que la commande ne trouve pas de quoi hachurer la command fait des cercles au endroit critique qui grossissent en même temps que le zoom ma question est : peut on utiliser cet objet en vlisp ou vlisp???? [Edité le 17/3/2010 par capde06]
-
F7
-
SHIFT+ESPACE
-
pour le chemin du fichier n'oublie pas de changer le signe du répertoire ex : "c:\dir\monfichier.lin" il faut écrire ca "c:\\rep\\monfichier.lin" ou ca "c:/rep/monfichier.lin"
-
Gerer differentes echelles selon les presentations
capde06 a répondu à un(e) sujet de metvlux dans AutoCAD 2010
oui ca s' appel les objets annotatif je sujet et assez vaste regarde dans l'aide -
un entier (fix 20.15) > 20 (setq a(fix(/ b 20))) en texte (rtos 20.15 2 0) > "20" [Edité le 15/3/2010 par capde06]
-
je pense que ton problème est dans le style de texte il faut mettre la hauteur du texte a 0.0 et la tu pourras modifier la hauteur dans le style de ligne de repère a tester [Edité le 15/3/2010 par capde06]
-
pas mieux :D [Edité le 11/3/2010 par capde06]
-
c'est possible dans le style de cotation que tu utilses > style de cotation > onglet Unites principales facteur d'echelle il suffit de mettre un facteur 100 [Edité le 11/3/2010 par capde06]
-
oui daccord mais une case a cocher serait si simple
-
je suis souvent en SCU mon souhait est de pouvoir insérer une référence externe sans passé par le SCG il suffirait d'une case à cocher dans la boite de dialogue des références. Insérer dans le système général je ne sais pas vous mais moi j'oublie souvent de repasser en SCG
