Aller au contenu

PHILPHIL

Membres
  • Compteur de contenus

    1 256
  • Inscription

  • Dernière visite

  • Jours gagnés

    10

Tout ce qui a été posté par PHILPHIL

  1. hello sinon BATTMAN, doit pouvoir le faire, j'ai testé hier, sélection et synchronisation et le tour est joué, meme changer la typo de l'attribut. Phil
  2. PHILPHIL

    Lisps de gile

    hello Gile pour ton plug in INCREMENT, tu ne devais pas rajouter pour "SELECTION" un bouton de selection de bloc comme dans "ATTRIBUT", ( plus facile pour choisir les bloc deja mis en place ) Merci Phil
  3. Hello Gile mercii je suppose que pt, lowerleft, upperright sont des coordonnées ( 0,0,0) ( 2.0223,123.52,0) c'est bien ce que je me disais, j'aurais ecris 20 lignes d'usine a gaz Merci Phil
  4. hello il n'y a pas de code encore, mais si vous en aviez un bout ou la méthode. c'est surtout pour pas que j'écrive une usine a gaz quoi. sinon je fais la méthode que j'ai décris plus haut. Phil
  5. hello. je cherche une méthode ou un bout de lisp permettant de vérifier si les coordonnées d'un point ou de points est a l'intérieur ou sur une polyligne rectangle. je vais en avoir quelque millier ( de points ) je pense a vérifier par rapport a des centaines de polylignes. j'avais pensé a cette méthode la : récupérer les coordonnées des points de mon rectangle. les "x" et "y" inférieurs, les "x" et "y" supérieurs. a vérifier si le "x" du point etait a la fois supérieur aux "x" inférieurs du rectangle et inférieur aux "x" supérieurs du rectangle. pareil pour les "y", si le cas le point est dans le rectangle. mais ca doit faire beaucoup de calcul ca. j'ai trouvé ca aussi comme méthode de Maxence qui doit etre sur le forum de tps en tps. http://maxence.delannoy.pagesperso-orange.fr/pt_poly.htm avez vous une méthodes plus rapide et efficace ? merci Phil
  6. hello Benoit c'est justement une volonté. de ranger ses affaires et ca ne pose pas de probleme d'activation, désactivation de blocs. puisque l'on gele, degele, ..... LE calque voulue. tu geles les chaussettes, meme si c'est rangé avec les slips. lolll Phil
  7. Hello Sylarr et ne jamais rien dessiner dans le calque "0" ( meme les entites d'un bloc ) meme si on te diras le contraire sur le forum. zero, 0, ca ne veux rien dire. ca veux surtout dire que tu ne sais pas ce que tu dessines en fait. et puis quand tu ramennes les fichiers en XREF, et bien le calque 0 du fichier fils se superpose avec le calque 0 du fichier pere. et apres pour les geler ca "merdouille". les anciens me confirmeront ou pas, mais le calque 0 a été créer pour la base de tous les autres calques, celui que l'on copie en changeant son nom pour créer un nouveau calque.( plus simple en informatique ). on ne pourra jamais purger le calque 0; ( et c'est tant mieux) ha et aussi commencer a dessiner proche du point scu 0,0,0. croisement de file de repérage au point 0,0,0, par exemple. Phil
  8. PHILPHIL

    rotation bloc 90degré

    hello Yusuken82 un truc comme ca ? Phil ; -------------------------------------------- ; ROTATION SUIVANT LE POINT INSERTION DES BLOC ; -------------------------------------------- (defun c:rri () (setvar "cmdecho" 0) (setvar "dimzin" 0) (setvar "ucsfollow" 0) (setq osm (getvar "osmode")) (setvar "osmode" 0) (setq rotp (atof (getcfg "APPDATA/ROTP"))) (setq tmp (getdist (strcat "\nENTRER LA VALEUR DE ROTATION <" (rtos rotp 2 8) ">: " ) ) ) (if tmp (setq rotp tmp) ) (setcfg "APPDATA/ROTP" (rtos rotp 2 8)) (prompt (strcat "\nCLIQUER SUR LES OBJETS A TOURNER : < ROTATION = " (rtos rotp 2 8) " >: " ) ) (setq bl nil) (while (null bl) (setq bl (ssget (list (cons 0 "insert") ) ) ) ) (command-s "scu" "") (setq ent nil) (setq compt 0) (setq com (sslength bl)) (while (< compt com) (progn (setq ent (entget (ssname bl compt))) (setq point10 (cdr (assoc 10 ent)) noment (cdr (assoc -1 ent)) ) (command-s "ROTATION" noment "" point10 rotp) (setq compt (1+ compt)) ) ) (initget "n N") (setq ans (getkword "\nEST CE LE BON COTE ? (O/N):")) (if (OR (= ans "n") (= ans "N")) (progn (command-s "ANNULER" compt) (setq ent nil) (setq compt 0) (setq com (sslength bl)) (while (< compt com) (progn (setq ent (entget (ssname bl compt))) (setq point10 (cdr (assoc 10 ent)) noment (cdr (assoc -1 ent)) ) (command-s "ROTATION" noment "" point10 (- 0 rotp)) (setq compt (1+ compt)) ) ) ) ) (princ) (setvar "osmode" osm) (command-s "scu" "p") (setvar "dimzin" 8) )
  9. Hello mise a jour du lisp BELTB. replace les entités d'un bloc dans le meme calque que celui dans lequel il est implanté. s'il y a fonction : BELTB - un par un BELTB_1_00 - plusieurs a la fois BELTB_1_00_ducalque - plusieurs a la fois couleur en DUCALQUE et épaisseur de ligne en DUCALQUE Phil BELTB.lsp
  10. hello lecrabe tous les blocs ne sont pas implantes dans le meme calque. avec le Lisp de Eric, je devrais m'en tirer. pour le moment il travail un bloc a la fois, quand je l'aurais modifie pour sélectionner plusieurs blocs, je le remettrais ici. merci a tous, Phil
  11. hello lecrabe je viens de tester et je n'arrive pas a le modifier correctement. je récupère bien un nom de calque d'un bloc, mais apres il le redistribue a toutes les entites des tous les autres blocs sélectionnés
  12. hello je voudrais changer les entites des blocs sélectionnes vers un nouveau calque. puis apres coup pour certains je les explose.
  13. hello merci, ca peut servir en effet. sauf que je ne veux pas forcement les exploser tous, mais forcement ranger les entites ailleurs que sur zero. Phil
  14. bonjour il existe le lisp RB_2_02 de Patrick_35 qui passe toutes les entites des blocs dans le calque 0. auriez vous l'inverse ? j'ai des blocs composés de blocs, que je décompose, pas de soucis et ils sont bien implantés dans un calque bien nommé, donc on sait ce que c'est. par contre ces blocs sont composés d'entités toutes dessinées sur le calque 0 ZERO ( haaaaaa grrrrr). donc une fois décomposé je ne sais plus ce que c'est. avez vous un lisp qui remettrais les entites internes des blocs dans le calque d'implantation de celui ci. pour que une fois décomposé pour certains je sache leurs utilités. en le faisant en sélectionnant plusieurs blocs en meme temps Merci Phil
  15. hello Gilles avait ecrit ca Le souci c'est que ca ne sauvegarde pas la largeur définitivement. des que l'on retouche a la cote , la largeur de texte revient. @(gile) SVP si tu passes par la ... Phil ;;;---------------------------------------------- ;;;modifier le "width" des texte de cote a zero 0 ;;;---------------------------------------------- ;;;gile (defun dimtextwidthto0 (dim / blk break ent dxf) (setq blk (tblsearch "block" (cdr (assoc 2 (entget dim)))) ent (cdr (assoc -2 blk)) ) (while (and ent (not break)) (if (= (cdr (assoc 0 (setq dxf (entget ent)))) "MTEXT") (progn (entmod (subst '(41 . 0.0) (assoc 41 dxf) dxf)) (setq break t)) (setq ent (entnext ent)) ) ) ) (defun c:setdimwidth0 (/ jsel i name ent entlist) (if (setq jsel (ssget '((0 . "DIMENSION")))) (progn (repeat (setq i (sslength jsel)) (setq name (ssname jsel (setq i (1- i))) entlist (tblsearch "BLOCK" (cdr (assoc 2 (entget name)))) ent (cdr (assoc -2 entlist)) ) (dimtextwidthto0 name) ) (command "_REGENALL") ) ) (princ) )
  16. PHILPHIL

    gc-vpfreeze de Gile

    Hello Gile grand merci, je ne connaissais pas ce parametre LAYOUTREGENCTL, au bout de 25 ans j'ai pas encore fouillé tout autocad donc. ca marche. Phil
  17. hello Gile j'ai un lisp ou j'utilise ta fonction "gc-vpfreeze" avec le DLL "LispExtension_2013.dll" ( qui date de 05/06/2018 ) j'ai une liste de calque ( listisoannocote ) mon lisp permet de choisir des fenetres dans les espaces papier, en fonction de leurs ENAME et echelle je crais une liste "listesous" en focntion de l'échelle de la fenetre que je soustrais a "listisoannocote" qui donne "listecalque" puis j'applique "gc-vpfreeze" a la VIEWPORT avec la liste "listecalque" pour chaque fenetres sélectionner. et rien ne se passe pourtant en faisant un "DXFL" sur la fenetre j'ai ca j'en conclus que les (331 . <Nom d'entité: 12870e14e20>) ... signifie qu'un calque <Nom d'entité: 12870e14e20> est gelé dans la fenetre. ai je tort ? et quand je désactive active la fenetre ca devient normal. est ce que apres le "gc-vpfreeze" il y a une fonction a utilisé sur LA fenetre ? ou forcer ViewportOn = 0 ViewportOn = -1 de la fenetre pour voir les modifications. merci Phil Commande: DXFL [Entité/Sous-entité]< E >: Sélectionnez un objet: (-1 . <Nom d'entité: 12816c58730>) (0 . "VIEWPORT") (5 . "AE5B") (102 . "{ACAD_XDICTIONARY") (360 . <Nom d'entité: 12816c58740>) (102 . "}") (330 . <Nom d'entité: 12816c586d0>) (100 . "AcDbEntity") (67 . 1) (410 . "A4H PM 1-X PL002-") (8 . "T_FENETRE") (100 . "AcDbViewport") (10 -148.5 117.0 0.0) (40 . 291.0) (41 . 180.0) (68 . 2) (69 . 2) (12 -814.971 -689.106 0.0) (13 0.0 0.0 0.0) (14 10.0 10.0 0.0) (15 10.0 10.0 0.0) (16 0.0 0.0 1.0) (17 1222.97 1283.11 28.0774) (42 . 50.0) (43 . -28.0774) (44 . -28.0774) (45 . 180.0) (50 . 0.0) (51 . 0.0) (72 . 1000) (331 . <Nom d'entité: 128654b02e0>) (331 . <Nom d'entité: 128654b0320>) (331 . <Nom d'entité: 128654b03a0>) (331 . <Nom d'entité: 128654b03e0>) (331 . <Nom d'entité: 128654b0480>) (331 . <Nom d'entité: 1286b6979e0>) (331 . <Nom d'entité: 1286b697aa0>) (331 . <Nom d'entité: 1286b697b50>) (331 . <Nom d'entité: 1286b697b60>) (331 . <Nom d'entité: 1286b697b70>) (331 . <Nom d'entité: 1286b697b80>) (331 . <Nom d'entité: 1286b697b90>) (331 . <Nom d'entité: 1286b697ba0>) (331 . <Nom d'entité: 1286b697bb0>) (331 . <Nom d'entité: 1286b697bd0>) (331 . <Nom d'entité: 1286b697be0>) (331 . <Nom d'entité: 1286b697bf0>) (331 . <Nom d'entité: 1286b697c00>) (331 . <Nom d'entité: 1286b697c10>) (331 . <Nom d'entité: 1286b697c20>) (331 . <Nom d'entité: 1286b697c30>) (331 . <Nom d'entité: 1286b697c40>) (331 . <Nom d'entité: 1286b697c50>) (331 . <Nom d'entité: 1286b697c60>) (331 . <Nom d'entité: 1286b697c70>) (331 . <Nom d'entité: 1286b697c80>) (331 . <Nom d'entité: 1286b697c90>) (331 . <Nom d'entité: 1286b697ca0>) (331 . <Nom d'entité: 1286b697cb0>) (331 . <Nom d'entité: 1286b697cc0>) (331 . <Nom d'entité: 1286b697cd0>) (331 . <Nom d'entité: 1286b697ce0>) (331 . <Nom d'entité: 1286b697cf0>) (331 . <Nom d'entité: 1286b697d00>) (331 . <Nom d'entité: 1286b697d10>) (331 . <Nom d'entité: 1286b697d20>) (331 . <Nom d'entité: 1286b697d30>) (331 . <Nom d'entité: 1286b697d40>) (331 . <Nom d'entité: 1286b697d50>) (331 . <Nom d'entité: 1286b697d60>) (331 . <Nom d'entité: 1286b697d70>) (331 . <Nom d'entité: 1286b697d80>) (331 . <Nom d'entité: 1286b697d90>) (331 . <Nom d'entité: 1286b697da0>) (331 . <Nom d'entité: 1286b697db0>) (331 . <Nom d'entité: 1286b697dc0>) (331 . <Nom d'entité: 1286b697dd0>) (331 . <Nom d'entité: 1286b697de0>) (331 . <Nom d'entité: 1286b697df0>) (331 . <Nom d'entité: 1286b697e00>) (331 . <Nom d'entité: 1286b697e20>) (331 . <Nom d'entité: 1286b697e30>) (331 . <Nom d'entité: 1286b697e40>) (331 . <Nom d'entité: 1286b697e50>) (331 . <Nom d'entité: 1286f8bd040>) (331 . <Nom d'entité: 128700ce820>) (331 . <Nom d'entité: 128700ce830>) (331 . <Nom d'entité: 128700ce840>) (331 . <Nom d'entité: 128700ce850>) (331 . <Nom d'entité: 128700ce880>) (331 . <Nom d'entité: 128700d2d60>) (331 . <Nom d'entité: 128700d2d70>) (331 . <Nom d'entité: 128700d2d90>) (331 . <Nom d'entité: 128700d2da0>) (331 . <Nom d'entité: 128700d2db0>) (331 . <Nom d'entité: 128700d2dc0>) (331 . <Nom d'entité: 128700d2dd0>) (331 . <Nom d'entité: 12870e12960>) (331 . <Nom d'entité: 12870e12980>) (331 . <Nom d'entité: 12870e12990>) (331 . <Nom d'entité: 12870e129a0>) (331 . <Nom d'entité: 12870e129b0>) (331 . <Nom d'entité: 12870e129c0>) (331 . <Nom d'entité: 12870e129d0>) (331 . <Nom d'entité: 12870e14df0>) (331 . <Nom d'entité: 12870e14e20>) (90 . 835648) (1 . "") (281 . 0) (71 . 1) (74 . 0) (110 -10000.0 2000.0 0.0) (111 1.0 -7.27596e-17 0.0) (112 7.27596e-17 1.0 0.0) (79 . 0) (146 . 0.0) (170 . 0) (61 . 5) (348 . <Nom d'entité: 128712f7af0>) (292 . 1) (282 . 1) (141 . 0.0) (142 . 0.0) (63 . 250) (421 . 3355443) (defun c:gele_calque_echelle_annotation_isolation_cote_dans_fenetres (/ cav com comlistefen compt ech1 echl1 echl10 id_fen li1 listecalque listefen listesous listisoannocote listobj lists1 listtest listtest2 obj pre_name selectfen viewport viewport1 ) (setq cav (getvar "clayer")) (command-s "-calque" "ch" "0" "") (setq selectfen nil listefen nil listobj nil lists1 nil compt 0 listtest nil listtest2 nil listesous nil listisoannocote (list "H_ISOLATION 1" "H_ISOLATION 2" "H_ISOLATION 2.5" "H_ISOLATION 5" "H_ISOLATION 10" "H_ISOLATION 20" "H_ISOLATION 25" "H_ISOLATION 50" "H_ISOLATION 100" "H_ISOLATION 500" "H_TEXTE ANNOTATION 1" "H_TEXTE ANNOTATION 2" "H_TEXTE ANNOTATION 2.5" "H_TEXTE ANNOTATION 5" "H_TEXTE ANNOTATION 10" "H_TEXTE ANNOTATION 20" "H_TEXTE ANNOTATION 25" "H_TEXTE ANNOTATION 50" "H_TEXTE ANNOTATION 100" "H_TEXTE ANNOTATION 200" "H_TEXTE ANNOTATION 250" "H_TEXTE ANNOTATION 500" "H_COTE 1" "H_COTE 2" "H_COTE 2.5" "H_COTE 5" "H_COTE 10" "H_COTE 20" "H_COTE 25" "H_COTE METAL 1" "H_COTE METAL 2" "H_COTE METAL 2.5" "H_COTE METAL 5" "H_COTE METAL 10" "H_COTE METAL 20" "H_COTE METAL 25" "H_COTE INTERIEURE 20" "H_COTE EXTERIEURE 20" "H_COTE INTERIEURE 25" "H_COTE EXTERIEURE 25" "H_COTE INTERIEURE 50" "H_COTE INTERIEURE PROCESS 50" "H_COTE EXTERIEURE 50" "H_COTE EXTERIEURE PROCESS 50" "H_COTE FONDATION 50" "H_COTE INTERIEURE VENTE 50" "H_COTE EXTERIEURE VENTE 50" "H_COTE INTERIEURE 100" "H_COTE INTERIEURE PROCESS 100" "H_COTE EXTERIEURE 100" "H_COTE EXTERIEURE PROCESS 100" "H_COTE FONDATION 100" "H_COTE INTERIEURE VENTE 100" "H_COTE EXTERIEURE VENTE 100" "H_COTE INTERIEURE 200" "H_COTE EXTERIEURE 200" "H_COTE FONDATION 200" "H_COTE INTERIEURE 250" "H_COTE EXTERIEURE 250" "H_COTE INTERIEURE 500" "H_COTE EXTERIEURE 500" "H_COTE INTERIEURE STRUCTURE 20" "H_COTE EXTERIEURE STRUCTURE 20" "H_COTE INTERIEURE STRUCTURE 25" "H_COTE EXTERIEURE STRUCTURE 25" "H_COTE INTERIEURE STRUCTURE 50" "H_COTE EXTERIEURE STRUCTURE 50" "H_COTE INTERIEURE STRUCTURE 100" "H_COTE EXTERIEURE STRUCTURE 100" "H_COTE INTERIEURE STRUCTURE 200" "H_COTE EXTERIEURE STRUCTURE 200" "H_COTE INTERIEURE STRUCTURE 250" "H_COTE EXTERIEURE STRUCTURE 250" "H_COTE AXE 1" "H_COTE AXE 2" "H_COTE AXE 2.5" "H_COTE AXE 5" "H_COTE AXE 10" "H_COTE AXE 20" "H_COTE AXE 25" "H_COTE AXE 50" "H_COTE AXE 100" "H_COTE AXE 200" "H_COTE AXE 250" "H_COTE AXE 500" "H_COTE NIVEAU 1" "H_COTE NIVEAU 2" "H_COTE NIVEAU 2.5" "H_COTE NIVEAU 5" "H_COTE NIVEAU 10" "H_COTE NIVEAU 20" "H_COTE NIVEAU 25" "H_COTE NIVEAU 50" "H_COTE NIVEAU 100" "H_COTE NIVEAU 200" "H_COTE NIVEAU 250" "H_COTE NIVEAU 500" ) ;;; listiso (list "H_ISOLATION 1" "H_ISOLATION 2" "H_ISOLATION 2.5" "H_ISOLATION 5" "H_ISOLATION 10" "H_ISOLATION 20" "H_ISOLATION 25" "H_ISOLATION 50" "H_ISOLATION 100" "H_ISOLATION 500") ;;; listanno (list "H_TEXTE ANNOTATION 1" "H_TEXTE ANNOTATION 2" "H_TEXTE ANNOTATION 2.5" "H_TEXTE ANNOTATION 5" "H_TEXTE ANNOTATION 10" ;;; "H_TEXTE ANNOTATION 20" "H_TEXTE ANNOTATION 25" "H_TEXTE ANNOTATION 50" "H_TEXTE ANNOTATION 100" "H_TEXTE ANNOTATION 200" ;;; "H_TEXTE ANNOTATION 250" "H_TEXTE ANNOTATION 500" ;;; ) ;;; listcote (list "H_COTE 1" "H_COTE 2" "H_COTE 2.5" "H_COTE 5" "H_COTE 10" ;;; "H_COTE 20" "H_COTE 25" "H_COTE METAL 1" "H_COTE METAL 2" "H_COTE METAL 2.5" ;;; "H_COTE METAL 5" "H_COTE METAL 10" "H_COTE METAL 20" "H_COTE METAL 25" "H_COTE INTERIEURE 20" ;;; "H_COTE EXTERIEURE 20" "H_COTE INTERIEURE 25" "H_COTE EXTERIEURE 25" "H_COTE INTERIEURE 50" "H_COTE INTERIEURE PROCESS 50" ;;; "H_COTE EXTERIEURE 50" "H_COTE EXTERIEURE PROCESS 50" "H_COTE FONDATION 50" "H_COTE INTERIEURE VENTE 50" "H_COTE EXTERIEURE VENTE 50" ;;; "H_COTE INTERIEURE 100" "H_COTE INTERIEURE PROCESS 100" "H_COTE EXTERIEURE 100" "H_COTE EXTERIEURE PROCESS 100" "H_COTE FONDATION 100" ;;; "H_COTE INTERIEURE VENTE 100" "H_COTE EXTERIEURE VENTE 100" "H_COTE INTERIEURE 200" "H_COTE EXTERIEURE 200" "H_COTE FONDATION 200" ;;; "H_COTE INTERIEURE 250" "H_COTE EXTERIEURE 250" "H_COTE INTERIEURE 500" "H_COTE EXTERIEURE 500" "H_COTE INTERIEURE STRUCTURE 20" ;;; "H_COTE EXTERIEURE STRUCTURE 20" "H_COTE INTERIEURE STRUCTURE 25" "H_COTE EXTERIEURE STRUCTURE 25" "H_COTE INTERIEURE STRUCTURE 50" "H_COTE EXTERIEURE STRUCTURE 50" ;;; "H_COTE INTERIEURE STRUCTURE 100" "H_COTE EXTERIEURE STRUCTURE 100" "H_COTE INTERIEURE STRUCTURE 200" ;;; "H_COTE EXTERIEURE STRUCTURE 200" "H_COTE INTERIEURE STRUCTURE 250" "H_COTE EXTERIEURE STRUCTURE 250" ;;; "H_COTE AXE 1" "H_COTE AXE 2" "H_COTE AXE 2.5" "H_COTE AXE 5" "H_COTE AXE 10" ;;; "H_COTE AXE 20" "H_COTE AXE 25" "H_COTE AXE 50" "H_COTE AXE 100" "H_COTE AXE 200" ;;; "H_COTE AXE 250" "H_COTE AXE 500" "H_COTE NIVEAU 1" "H_COTE NIVEAU 2" "H_COTE NIVEAU 2.5" ;;; "H_COTE NIVEAU 5" "H_COTE NIVEAU 10" "H_COTE NIVEAU 20" "H_COTE NIVEAU 25" "H_COTE NIVEAU 50" ;;; "H_COTE NIVEAU 100" "H_COTE NIVEAU 200" "H_COTE NIVEAU 250" "H_COTE NIVEAU 500" ;;; ) ) (setq selectfen (ssget "X" '((0 . "VIEWPORT") (-4 . "<NOT") (69 . 1) (-4 . "NOT>")))) (setq com (sslength selectfen)) (while (< compt com) (progn (setq obj (ssname selectfen compt) listobj (cons obj listobj) pre_name (cdr (assoc 410 (entget obj))) id_fen (cdr (assoc 69 (entget obj))) echl1 (vla-get-customscale (vlax-ename->vla-object (cdr (assoc -1 (entget obj))))) li1 (strcat pre_name " / " (rtos id_fen 2 0) " / " " 1/" (rtos (/ 10 echl1) 2 0) " [ " (rtos echl1 2 4) " ]" " " ) ) (setq listefen (cons li1 listefen)) ) (setq compt (1+ compt)) ) (setq viewport1 (getlviewport1 listefen "CHOSISSEZ LES FENETRES A MODIFIER" t)) (setq comlistefen (length listefen)) (foreach ele viewport1 (progn (setq lists1 (cons (- comlistefen (length (member ele listefen))) lists1))) ) ;;; (setq listobj (reverse listobj)) (setq lists1 (reverse lists1)) (foreach l1 lists1 (progn (setq viewport (nth l1 listobj) ech1 (/ 10 (vla-get-customscale (vlax-ename->vla-object (cdr (assoc -1 (entget viewport)))))) listecalque nil listesous nil ) ;;; (setq listtest2 (cons (list l1 viewport ech1) listtest2)) ;;; (gc-vpfreeze viewport listiso) ;;; (gc-vpfreeze viewport listanno) ;;; (gc-vpfreeze viewport listcote) (if (= ech1 2.5) (setq echl10 (rtos ech1 2 1)) (setq echl10 (rtos ech1 2 0)) ) ;;; (cond (if(/= (tblsearch "layer" (strcat "H_ISOLATION " echl10)) nil) (setq listesous (cons (strcat "H_ISOLATION " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_TEXTE ANNOTATION " echl10)) nil) (setq listesous (cons (strcat "H_TEXTE ANNOTATION " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE " echl10)) nil) (setq listesous (cons (strcat "H_COTE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE METAL " echl10)) nil) (setq listesous (cons (strcat "H_COTE METAL " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE " echl10)) nil) (setq listesous (cons (strcat "H_COTE INTERIEURE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE " echl10)) nil) (setq listesous (cons (strcat "H_COTE EXTERIEURE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE VENTE " echl10)) nil) (setq listesous (cons (strcat "H_COTE INTERIEURE VENTE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE VENTE " echl10)) nil) (setq listesous (cons (strcat "H_COTE EXTERIEURE VENTE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE PROCESS " echl10)) nil) (setq listesous (cons (strcat "H_COTE INTERIEURE PROCESS " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE PROCESS " echl10)) nil) (setq listesous (cons (strcat "H_COTE EXTERIEURE PROCESS " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE STRUCTURE " echl10)) nil) (setq listesous (cons (strcat "H_COTE INTERIEURE STRUCTURE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE STRUCTURE " echl10)) nil) (setq listesous (cons (strcat "H_COTE EXTERIEURE STRUCTURE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE AXE " echl10)) nil) (setq listesous (cons (strcat "H_COTE AXE " echl10) listesous)) ) (if(/= (tblsearch "layer" (strcat "H_COTE NIVEAU " echl10)) nil) (setq listesous (cons (strcat "H_COTE NIVEAU " echl10) listesous)) ) ;;; ) (setq listecalque (vl-remove-if '(lambda (x) (member x listesous)) listisoannocote)) ;;;(gc-vpfreeze viewport '("H_ISOLATION 1" "H_ISOLATION 2" )) (gc-vpfreeze viewport listecalque) ;;; (setq listtest (cons (list viewport echl10) listtest)) ) ) (setvar "clayer" cav) (princ) )
  18. PHILPHIL

    rendre un bloc unique

    hello Gile j'ai modifie ton lisp en rajoutant un "inputbox" ca doit etre de ce lisp que parle Philsogood, par contre je ne sais plus sur quel post je l'ai mis. Phil ;;;----------------------------- ;;;créer un clone avec un nom different ;;;----------------------------- ;; NBL -03/08/07- version 2.2 ;; Crée un nouvelle définition de bloc semblable à celle de la référence sélectionnée. ;; La référence sélectionnée est remplacée par une référence de la nouvelle définition ;; qui conserve ses propriétés. (defun c:nbl2 (/ old-ref new-name acdoc space blocks old-name old-block new-block obj new-ref) (vl-load-com) (while (not (and (setq old-ref (car (entsel "\nSélectionner le bloc à re-créer: "))) (= "INSERT" (cdr (assoc 0 (entget old-ref)))) ) ) (princ "\nObjet incorrect.") ) (while (not (and (setq new-name (getstring t "\nEntrez le nouveau nom pour le bloc: ")) (/= new-name "") (null (tblsearch "BLOCK" new-name)) ) ) (princ "\nNom incorrect.") ) (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-paperspace acdoc) (vla-get-modelspace acdoc) ) blocks (vla-get-blocks acdoc) old-ref (vlax-ename->vla-object old-ref) old-name (if (vlax-property-available-p old-ref 'effectivename) (vla-get-effectivename old-ref) (vla-get-name old-ref) ) old-block (vla-item blocks old-name) new-block (vla-add blocks (vlax-3d-point '(0 0 0)) new-name) ) (vlax-for o old-block (setq obj (cons o obj))) (vlax-invoke acdoc 'copyobjects obj new-block) (and (vlax-property-available-p old-block 'units) (vla-put-units new-block (vla-get-units old-block)) ) (setq new-ref (vla-insertblock space (vlax-3d-point '(0 0 0)) new-name (vla-get-xscalefactor old-ref) (vla-get-yscalefactor old-ref) (vla-get-zscalefactor old-ref) (vla-get-rotation old-ref) ) ) (vla-put-normal new-ref (vla-get-normal old-ref)) (vla-put-insertionpoint new-ref (vla-get-insertionpoint old-ref)) (if (= (vla-get-hasattributes old-ref) :vlax-true) (progn (setq old-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke old-ref 'getattributes)) new-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke new-ref 'getattributes)) ) (foreach att new-att (foreach prop (list 'alignment 'backward 'color 'fieldlength 'height 'insertionpoint 'invisible 'layer 'textstring 'linetype 'linetypescale 'lineweight 'material 'normal 'obliqueangle 'rotation 'scalefactor 'stylename 'textstring 'thickness 'truecolor 'upsidedown 'visible ) (if (vlax-property-available-p (cdr (assoc (car att) old-att)) prop) (vlax-put (cdr att) prop (vlax-get (cdr (assoc (car att) old-att)) prop)) ) ) ) ) ) (vla-delete old-ref) (princ (strcat "Le bloc \"" new-name "\" a été créé.")) (princ) ) ;; NBL -09/06/16- version 2.3 ;; gile ;; Crée un nouvelle définition de bloc semblable à celle de la référence sélectionnée. ;; La référence sélectionnée est remplacée par une référence de la nouvelle définition ;; qui conserve ses propriétés. (defun c:nbl (/ old-ref new-name acdoc space blocks old-name old-block new-block obj new-ref) (vl-load-com) (while (not (and (setq old-ref (car (entsel "\nSélectionner le bloc à re-créer: "))) (= "INSERT" (cdr (assoc 0 (entget old-ref)))) ) ) (princ "\nObjet incorrect.") ) (setq old-ref (vlax-ename->vla-object old-ref) old-name (if (vlax-property-available-p old-ref 'effectivename) (vla-get-effectivename old-ref) (vla-get-name old-ref) ) ) (while (not (and (progn (setq boite "MODIFICATION DU NOM DE BLOC") (setq message "NOUVEAU NOM") (inputbox2 boite message old-name) ;;; (setq new-name ret) (snvalid (setq new-name ret)) ) (/= new-name "") (null (tblsearch "BLOCK" new-name)) ) ) (princ "\nNOM INCORRECT.") ) (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-paperspace acdoc) (vla-get-modelspace acdoc) ) blocks (vla-get-blocks acdoc) old-block (vla-item blocks old-name) new-block (vla-add blocks (vlax-3d-point '(0 0 0)) new-name) ) (vlax-for o old-block (setq obj (cons o obj))) (vlax-invoke acdoc 'copyobjects obj new-block) (and (vlax-property-available-p old-block 'units) (vla-put-units new-block (vla-get-units old-block)) ) (setq new-ref (vla-insertblock space (vlax-3d-point '(0 0 0)) new-name (vla-get-xscalefactor old-ref) (vla-get-yscalefactor old-ref) (vla-get-zscalefactor old-ref) (vla-get-rotation old-ref) ) ) (vla-put-normal new-ref (vla-get-normal old-ref)) (vla-put-insertionpoint new-ref (vla-get-insertionpoint old-ref)) (if (= (vla-get-hasattributes old-ref) :vlax-true) (progn (setq old-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke old-ref 'getattributes)) new-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke new-ref 'getattributes)) ) (foreach att new-att (foreach prop (list 'alignment 'backward 'color 'fieldlength 'height 'insertionpoint 'invisible 'layer 'textstring 'linetype 'linetypescale 'lineweight 'material 'normal 'obliqueangle 'rotation 'scalefactor 'stylename 'textstring 'thickness 'truecolor 'upsidedown 'visible ) (if (vlax-property-available-p (cdr (assoc (car att) old-att)) prop) (vlax-put (cdr att) prop (vlax-get (cdr (assoc (car att) old-att)) prop)) ) ) ) ) ) (vla-delete old-ref) (princ (strcat "Le bloc \"" new-name "\" a été créé.")) (princ) )
  19. PHILPHIL

    rendre un bloc unique

    hello Gile ca doit venir de moi, j'ai du reposter le lisp NBL sur le site, un peu modifié, et j'avais modifié "inputbox" en "inputbox2" PHIL
  20. hello salvanorigatore regarde dans le lisp, ca regroupe pas mal de lisp de gile et autres, certains lisp modifies je n'ai peut etre pas mis toutes les boites de dialogues, la plupart sont sur cadxp. sinon demande je les mettrais ici. fonction "selection_speciale" pour la recherche des blocs SPECIAL SELECTIONS.lsp
  21. PHILPHIL

    rendre un bloc unique

    hello Philsogood ;; InputBox (gile) ;; Ouvre une boite de dialogue pour récupérer une valeur ;; sous forme de chaine de caractère ;; ;; Arguments ;; tous les arguments sont de chaines de caractère (ou "") ;; box : titre de la boite de dialogue ;; msg : message d'invite ;; val : valeur par défaut ;; ;; Retour ;; une chaine ("" si annulation) ;; ;; Modifié par Patrick_35 pour inclure le caractère \n ;; comme retour chariot (defun inputbox2 (box msg val / subr temp file dcl_id ;;ret ) ;; Retour chariot automatique à 50 caractères (defun subr (str / pos) (cond ((setq pos (vl-string-search "\n" str)) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos)))) ) ((and (< 80 (strlen str)) (setq pos (vl-string-position 32 (substr str 1 80) nil t))) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos)))) ) (t (strcat ":text_part{label=\"" str "\";}")) ) ) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ret "" ) ;; Ecrire le fichier (write-line (strcat "InputBox:dialog{key=\"box\";initial_focus=\"val\";spacer;:paragraph{" (subr msg) "}spacer;:edit_box{key=\"val\";edit_width=120;allow_accept=true;} spacer;ok_cancel;}" ) file ) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "InputBox" dcl_id)) (exit) ) (set_tile "box" box) (set_tile "val" val) (action_tile "accept" "(setq ret (get_tile \"val\")) (done_dialog)") (start_dialog) (unload_dialog dcl_id) ;;Supprimer le fichier (vl-file-delete temp) ret ) Phil
  22. hello LECRABE merci pour le partage. depuis ma naissance, les deux pieds dedans. le "ALTESSE" je pige pas la ? y'a soucis ??? sinon ba ce sont des symboles pour faire des plans d'évacuations, je recherchais des blocs de raccords de tuyaux, terminaisons de RIA des trucs comme ca. ou un site avec des PDF pour les redessiner. bonne année a toi, bonne année aux autres. Phil
  23. Hello LECRABE tes blocs de colonne seche sont toujours disponible ? ou connaissez vous un site pour en trouver ? Phil
  24. hello c'est une question , donc répondre par "n" ou "N" si ca ne convient pas. si ca convient "valider " par "enter" ou clique "droit souris" tout simplement. si on repond par "n" ou "N" ca annule tout ce qui a été creer avant, donc le hachurage. (setq ans (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):")) (if (or (= ans "n") (= ans "N")) (progn (while (< compt com) (command-s "ANNULER" "") (setq compt (1+ compt)))) ) Phil
  25. hello Fafamrx sinon tu fais comme avant avec ton premier LISp. et apres une fois que tu as mis tes texte de surface par rapport a tes polylignes ranger dans les bons calques. tu appliques ce lisp, qui remplis les polylignes avec une hachure SOLID. dans un calque dedier aux hachures fonction : HACHURE_SUIVANT_CALQUE_POLYLIGNE Phil ;;; --------------------------------------------- ;;; REMPLIT PAR UN HACHURAGE SOLIDE LES POLYLIGNES FERMEE DANS LE CALQUE DE LA POLYLIGNE ;;; --------------------------------------------- (defun c:hachure_suivant_calque_polyligne (/) (setvar "cmdecho" 0) (setvar "dimzin" 0) (setvar "osmode" 0) (setq cav (getvar "clayer") osm (getvar "osmode") hachnam (getvar "hpname") hachech (getvar "hpscale") hachang (getvar "hpang") hachdet (getvar "HPISLANDDETECTION") hachlay (getvar "hplayer") ) (princ "\n") (princ "\n") (prompt "\nCLIQUER SUR L'ENTITE(S) POLYLIGNE(S) A HACHURER :") (setq lespoly nil) (while (null lespoly) (setq lespoly (ssget (list (cons -4 "<or") (cons 0 "CIRCLE") (cons 0 "polyline") (cons 0 "lwpolyline") (cons 0 "AEC_POLYGON") (cons -4 "or>") ) ) ) ) (setq ferm nil) (setq compt 0) (setvar "hpname" "SOLID") (setvar "hpscale" 1) (setvar "hpang" 0) (setvar "HPISLANDDETECTION" 2) (setq com (sslength lespoly)) (while (< compt com) (progn (setq unepoly (ssname lespoly compt) forme (cdr (assoc 0 (entget unepoly))) ferm (cdr (assoc 70 (entget unepoly))) nbpoint (cdr (assoc 90 (entget unepoly))) calq (cdr (assoc 8 (entget unepoly))) laycol (cdr (assoc 62 (tblsearch "layer" calq))) ) (if (= forme "CIRCLE") (setq ferm 1 nbpoint 3 ) ) (if (= forme "AEC_POLYGON") (setq ferm 1 nbpoint 3 ) ) (if (and (or (= ferm 129) (= ferm 1)) (> nbpoint 2)) (progn (if (= (tblsearch "layer" (strcat calq " HACHURE")) nil) (command-s "-calque" "n" (strcat calq " HACHURE") "co" laycol (strcat calq " HACHURE") "T" "A" (strcat calq " HACHURE") "" ) ) (command-s "-calque" "ac" (strcat calq " HACHURE") "ch" (strcat calq " HACHURE") "") ;;; (setvar "hplayer" (strcat calq " HACHURE")) (command-s "-fhach" "SE" unepoly "" "") ) ) (setq compt (1+ compt)) ) ) (princ) (setq compt 0) (initget "n N") (setq ans (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):")) (if (or (= ans "n") (= ans "N")) (progn (while (< compt com) (command-s "ANNULER" "") (setq compt (1+ compt)))) ) (setvar "osmode" osm) (setvar "clayer" cav) (setvar "hpname" hachnam) (setvar "hpscale" hachech) (setvar "hpang" hachang) (setvar "hplayer" hachlay) (setvar "HPISLANDDETECTION" hachdet) (princ) )
×
×
  • 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é