lecrabe Posté(e) le 3 mars 2011 Partager Posté(e) le 3 mars 2011 Hello Je cherche sans trouver une routine Lisp ou VLisp qui traiterait les polylignes 2D closes Top-Bonus : ou les cercles ou les regions ou les splines closes ou les ellipses closes ou les MPolygons de Map / Civil pour generer tout simplement N blocs nommes "BL_xxxxxx" Bien entendu, on garde les objets d'origine sans les toucher (idem option Conserver quand on fait un bloc) ------ Resume du fonctionnement ----- 1) Selection classique AutoCAD : filtrage des objets pour ne garder que les polylignes 2D closes et aussi les autres entites closes et si possible les fameux MPOLYGONs (ca serait le top) 2) Question : generer les blocs sur le calque courant ou sur le meme calque que la polyligne / MPolygon - Defaut : calque courant 3) Si possible - Pour les Polylignes closes / MPolygons / Regions / Splines, le point d'insertion pourrait etre EVENTUELLEMENT le centre de gravite !Donc si c'est possible, poser la question : 1er point XY de l'entite ou Centre de gravite ?Sinon le plus simple me semble etre le 1er point X1 Y1 Z1 ! 4) Creation des blocs sur le BON calque, Nom = "BL_xxxxxx", Point d'insertion = Point de depart de la Polyligne / Spline / MPolygon / Region, Centre du cercle / ellipse, etcEchelle = 1 et Rotation = 1 Un petit compteur en sortie, indiquant le nombre total de blocs generes ... En esperant que mon CDC / CCTP soit clair ! A votre bon coeur :) Je remercie d'avance le futur createur, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 3 mars 2011 Partager Posté(e) le 3 mars 2011 Bonjour, Question bête : ça sert à quoi ? :P Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 4 mars 2011 Auteur Partager Posté(e) le 4 mars 2011 Hello Qq explicatios : Civil 3D peut drapper sur un Mnt 3D un bloc ou N blocs Il change le Z du point d’insertion du bloc pour le monter sur le Mnt 3D Donc il faut que je genere des blocs a partir au moins de mes Polylignes closes (c la majorite de mes objets) voire evnetuellement d'autres objets comme par exemple : cercle, MPolygon, etc Les blocs seront nommes "BL_xxxxx" (par exempe) ... Merci d'avance de votre aide, le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
VtKp Posté(e) le 4 mars 2011 Partager Posté(e) le 4 mars 2011 Bonjour lecrabeComment doivent être tes blocs ?un bloc simple, un bloc avec attribute increments Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 4 mars 2011 Auteur Partager Posté(e) le 4 mars 2011 Hello Non je desire des blocs simples ! Idem la manipulation que je fais a la main (par BLOC) pour chaque entite :- BLOC- Selectionner l'objet concerne (Polyligne close, Cercle, MPolygon, etc) : UN SEUL objet- Point d'insertion : accrochage du 1er point de l'objet ou centre du cercle ou etc- En mode CONSERVER car on garde l'objet original- Nom du bloc = BL_xxxxx et ainsi de suite en incrementant le nom du bloc ... Merci d'avance, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 4 mars 2011 Auteur Partager Posté(e) le 4 mars 2011 Hello Par contre SVP j'aimerais bien une petite question du genre : Valeur de depart pour l'incremementaion (Defaut =1) : ? Ainsi en lancant plusieurs fois la manipulation, je pourrais avoir un resultat du genre :BL_00001 - BL_01456 : Blocs des Batis dursBL_01001 - BL_01378 : Blocs des Batis legersBL_02001 - BL_02033 : Blocs des Batis municipauxetc Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 4 mars 2011 Partager Posté(e) le 4 mars 2011 Bonjour, Pourrais -tu poster un dessin exemple avec des blocs déjà créés ? generer les blocs sur le calque courant ou sur le meme calque que la polyligneC'est-à-dire ?Tu parles du calque sur lequel insérer le bloc ?Dans un bloc BL_*, la polyligne doit-elle appartenir au calque 0 ? ou au calque d'origine ? Couleur DuCalque ? DuBloc ? :P Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 4 mars 2011 Auteur Partager Posté(e) le 4 mars 2011 Hello Bryce Pour un dessin test, tu peux dessiner qq polyignes closes, voire meme Cercles, MPolygons, etc sur des calques differents Si tu veux des MPolygons, svp tu m'envoies un courriel sur cadxp at hotmail point fr Rappel : les MPolygons sont parfaitement supportes par AutoCAD et A D T meme si il n'y a pas les outils pour les construire (quoique avec le dev specifique de Gilles, c possible) ! :P En principe, on se place toujours sur le caque ZERO pour faire BLOC ou WBLOC , ou bien on reste sur un calque XXXX (rarissime) donc IDEM pour la routine, soit on est sur le calque ZERO, soit on est sur le calque XXXXc le probleme de l'utilisateur ... Mais en effet ta remarque est judicieuse (petit oubli de ma part, sorry) Voici donc qq precisions : Question : generation des blocs sur le calque courant ou sur le calque d'originesignifie que l'insertion des futurs blocs se fera soit sur le calque courant, soit sur le calque d'origine de chaque objet selectionne (et traitable par la routine) Bryce, suite a ta remarque judicieuse, une question supplementaire s'avere necessaire : Garder TOUTES les proprietes d'origine (forcage eventuel des couleurs, types de lignes, epaisseurs, etc) ou bien TOUT forcer en mode DuBloc valeur par defaut : Garder TOUTES les proprietes d'origine de l'objet Si c'est trop complique a developper, on GARDE TOUTES les proprietes d'origine car c simple de mettre en DuBloc les objets AVANT de lancer la routine ! :) En esperant avoir repondu correctement, Merci, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris_mtp Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Bonjour Lecrabe, Voici un code très succint qui ne traite que les polylignes 2D.La sélection est à adapter mais ca peut servir comme base de travail.Le bloc est crée automatiquement. (defun c:npol (/ ss1 i pol pt) (prompt "\nGénération de blocs sur formes closes") (vl-load-com) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (command "SCU" "G") (setvar "ATTDIA" 0) (setvar "ATTREQ" 1) (if (not (tblsearch "LAYER" "BL_POLYLINE")) (command "_layer" "_N" "BL_POLYLINE" "_CO" "7" "BL_POLYLINE" "")) (setvar "CLAYER" "BL_POLYLINE") (if (not (tblsearch "BLOCK" "BL_POLYLINE")) (progn (alert "Le bloc BL_POLYLINE n'existe pas") (entmake '((0 . "BLOCK") (2 . "BL_POLYLINE") (70 . 2) (10 0.0 0.0 0.0))) (entmake '((0 . "ATTDEF") (67 . 0) (8 . "0") (10 0.4 0.575482 0.0) (40 . 1.0) (1 . "BL_1") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "Standard") (210 0.0 0.0 1.0) (3 . "Numéro Polyligne ? ") (2 . "NUM_POLYLIN") (70 . 0) ) ) (entmake '((0 . "CIRCLE") (67 . 0) (8 . "0") (10 0.0 0.0 0.0) (40 . 0.2) (210 0.0 0.0 1.0) ) ) (entmake '((0 . "ENDBLK"))) ) ) (setq ss1 (ssget "_X" (list (cons 8 "LIMPAR") (cons 0 "LWPOLYLINE") (cons -4 "(cons -4 "&") (cons 70 1) (cons -4 "<") (cons 70 8) (cons -4 "AND>") ))) (setq i 0) (repeat (sslength ss1) (setq pol (ssname ss1 i)) (setq pt (pline-centroid pol)) (command "_.insert" "BL_POLYLINE" pt 1 1 0 (strcat "BL_" (rtos (1+ i) 2 0))) (setq i (1+ i)) ) (prompt (strcat "\n" (itoa i) " blocs insérés.")) (setvar "OSMODE" 65) (setvar "CMDECHO" 1) (command "SCU" "PR") (setvar "ATTDIA" 1) (prin1) ) ;; PLINE-CENTROID ;; Retourne le centre de gravité d'une polyligne (coordonnées SCG) ;; ;; Argument ;; pl : nom d'entité de la polyligne (ename) (defun pline-centroid (pl / elst lst tot cen p0 p-c cen area) (setq elst (entget pl)) (while (setq elst (member (assoc 10 elst) elst)) (setq lst (cons (cons (cdar elst) (cdr (assoc 42 elst))) lst) elst (cdr elst) ) ) (setq lst (reverse lst) tot 0.0 cen '(0.0 0.0) p0 (caar lst) ) (if (/= 0 (cdar lst)) (setq p-c (polyarc-centroid (cdar lst) p0 (caadr lst)) cen (mapcar '(lambda (x) (* x (cadr p-c))) (car p-c)) tot (cadr p-c) ) ) (setq lst (cdr lst)) (if (equal (car (last lst)) p0 1e-9) (setq lst (reverse (cdr (reverse lst)))) ) (while (cadr lst) (setq area (algeb-area p0 (caar lst) (caadr lst)) cen (mapcar '(lambda (x1 x2) (+ x1 (* x2 area))) cen (triangle-centroid p0 (caar lst) (caadr lst)) ) tot (+ area tot) ) (if (/= 0 (cdar lst)) (setq p-c (polyarc-centroid (cdar lst) (caar lst) (caadr lst)) cen (mapcar '(lambda (x1 x2) (+ x1 (* x2 (cadr p-c)))) cen (car p-c) ) tot (+ tot (cadr p-c)) ) ) (setq lst (cdr lst)) ) (if (/= 0 (cdar lst)) (setq p-c (polyarc-centroid (cdar lst) (caar lst) p0) cen (mapcar '(lambda (x1 x2) (+ x1 (* x2 (cadr p-c)))) cen (car p-c) ) tot (+ tot (cadr p-c)) ) ) (trans (list (/ (car cen) tot) (/ (cadr cen) tot) (cdr (assoc 38 (entget pl))) ) pl 0 ) ) ;; ALGEB-AREA ;; Retourne l'aire algébrique du triangle défini par 3 points 2D ;; l'aire est négative si les points sont en sens horaire (defun algeb-area (p1 p2 p3) (/ (- (* (- (car p2) (car p1)) (- (cadr p3) (cadr p1)) ) (* (- (car p3) (car p1)) (- (cadr p2) (cadr p1)) ) ) 2.0 ) ) ;; TRIANGLE-CENTROID ;; Retourne le centre de gravité d'un trinagle défini par 3 points (defun triangle-centroid (p1 p2 p3) (mapcar '(lambda (x1 x2 x3) (/ (+ x1 x2 x3) 3.0) ) p1 p2 p3 ) ) ;; POLYARC-CENTROID ;; Retourne une liste dont le premier élément est le centre de gravité du polyarc ;; et le second son aire algébrique (négative si la courbure est en sens horaire) ;; ;; Arguments ;; bu : la courbure du polyarc (bulge) ;; p1 : le sommet de départ ;; p2 : le sommet de fin (defun polyarc-centroid (bu p1 p2 / ang rad cen area dist cg) (setq ang (* 2 (atan bu)) rad (/ (distance p1 p2) (* 2 (sin ang)) ) cen (polar p1 (+ (angle p1 p2) (- (/ pi 2) ang)) rad ) area (/ (* rad rad (- (* 2 ang) (sin (* 2 ang)))) 2.0) dist (/ (expt (distance p1 p2) 3) (* 12 area)) cg (polar cen (- (angle p1 p2) (/ pi 2)) dist ) ) (list cg area) ) J'utilise 3 fonctions de Gile.John Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Bonjour, Chris, tu te lèves tôt le dimanche dis donc ! :o :P Lecrabe, je te propose le lisp suivant : (defun c:O2BL (/ bname numlen *error* obj acdoc ms blks blk ss ent ent2 count errcount errflag lay pref pt lst pt2 i nbname) ; Crée un bloc pour chaque objet fermé (polyligne, région, cercle, spline, mpolygon) sélectionné. ; Demande de lecrabe sur http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=31981 ; Brice Studer, mars 2011 ; ;~~~~~~~ CONFIG ~~~~~~~~~~~ (setq bname "BL_") ; préfixe du nom des blocs créés (setq numlen 3) ; nombre de chiffres de la numérotation, nil pour auto (ex.: si nil, BL_12 ; si 4, BL_0012) ;~~~~~~~ FIN CONFIG ~~~~~~~~~~~ (vl-load-com) ;~~~~~~~ SOUS-FONCTIONS ~~~~~~~~~~~ (defun ZeroPad (str len) ; string en entrée, string en sortie "paddée" avec des 0 ; len : nombre de caractères final, nil sort une chaîne identique à celle passée en argument (if len (while (< (strlen str) len) (setq str (strcat "0" str)) str ) str ) ) (defun gc:VariantToLispData (var) ; par (gile) (cond ((= (type var) 'variant) (gc:VariantToLispData (vlax-variant-value var))) ((= (type var) 'safearray) (mapcar 'gc:VariantToLispData (vlax-safearray->list var)) ) (T var) ) ) ;~~~~~~~ FIN SOUS-FONCTIONS ~~~~~~~~~~~ (setq obj (vlax-get-acad-object) acdoc (vla-get-ActiveDocument obj) ms (vla-get-modelspace acdoc) blks (vla-get-blocks acdoc) ) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (if ss (vla-delete ss)) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (if (setq ss (ssget '( (-4 . " (0 . "CIRCLE") (-4 . "") (0 . "REGION") (-4 . "") (0 . "MPOLYGON") (-4 . "OR>")) ) ) (progn (initget "Courant Origine") (setq lay (getkword "\nCalque pour l'insertion des blocs [Courant/Origine] : ")) (if (not lay) (setq lay "Courant")) (setq pref (getstring "\nPréfixe de numérotation (Entrée pour aucun): ")) (if (not pref) (setq pref "")) (setq ss (vla-get-activeselectionset acdoc)) (setq count 0) (setq errcount 0) (setq i 1) (vlax-for ent ss (cond ((= (vla-get-objectname ent) "AcDbRegion") (if (not (vl-catch-all-error-p (setq pt (vl-catch-all-apply 'vla-get-centroid (list ent))) ) ) (progn (setq errflag nil) (setq pt (vlax-3d-point (gc:VariantToLispData pt))) ) (progn (setq errflag T) (setq errcount (1+ errcount)) ) ) ) ((= (vla-get-objectname ent) "AcDbCircle") (setq pt (vlax-3d-point (gc:VariantToLispData (vla-get-center ent)))) (setq errflag nil) ) ((= (vla-get-objectname ent) "AcDb3dPolyline") (setq pt (vlax-3d-point (gc:VariantToLispData (vla-get-coordinate ent 0)))) (setq errflag nil) ) ((or (= (vla-get-objectname ent) "AcDbPolyline") (= (vla-get-objectname ent) "AcDb2dPolyline") ) (setq pt (gc:VariantToLispData (vla-get-coordinate ent 0))) (setq pt (vlax-3D-point (list (car pt) (cadr pt) (vla-get-elevation ent)))) (setq errflag nil) ) ((= (vla-get-objectname ent) "AcDbSpline") (setq lst (gc:VariantToLispData (vla-get-controlpoints ent))) (setq pt (vlax-3d-point (list (car lst) (cadr lst) (caddr lst)))) (setq errflag nil) ) ((= (vla-get-objectname ent) "AcDbMPolygon") (setq pt (cdr (assoc 11 (entget (vlax-vla-object->ename ent))))) (setq pt (vlax-3D-point (list (car pt) (cadr pt) (vla-get-elevation ent)))) (setq errflag nil) ) ) (if (not errflag) (progn (while (tblsearch "BLOCK" (strcat bname pref (zeropad (itoa i) numlen))) (setq i (1+ i)) ) (setq blk (vla-add blks pt (setq nbname (strcat bname pref (zeropad (itoa i) numlen)))) ) (vla-put-layer (setq ent2 (vla-copy ent)) "0") (vla-copyobjects acdoc (vlax-safearray-fill (vlax-make-safearray vlax-vbObject (cons 0 0)) (list ent2)) blk) (setq blk (vla-insertblock ms pt nbname 1 1 1 0)) (if (= lay "Origine")(vla-put-layer blk (vla-get-layer ent))) (vla-delete ent2) (setq count (1+ count)) ) ); if not errflag );vlax-for ent (princ (strcat "\n" (itoa errcount) " objets ignorés.")) (princ (strcat "\n" (itoa count) " blocs créés.")) );progn if ss );if ss (*error* nil) ); (princ "\nCommande à utiliser: O2BL") (princ) Ne prends pas en compte les MPOLYGONS pour le moment (je n'en ai pas sous la main pour tester), et je ne me suis pas non plus amusé à chercher le centre de gravité des polylignes et splines pour l'instant. ;) Edit: correction d'un bug sur la prise en charge des polylignes 3d et "lourdes".Edit2: prise en charge des MPOLYGONsEdit3: prise en compte de l'élévation des polylignes et mpolygons, les régions non situées dans le plan xy courant sont ignorées. [Edité le 6/3/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Salut, Tout d'abord, bravo à chris_mtp et bryce.Je pense qu'essayer de répondre aux demandes aussi diverses que variées sur des forums est un excellent moyen pour apprendre et progresser en programmation. Je vous donne donc quelque pistes pour aller plus loin. Pour les mpolygons, voir ce sujet.Les coordonnées du grip au centre du mpolygon (comme au centre d'une hachure) sont dans le groupe DXF 11. Pour le centre de gravité des polylignes, chris_mtp à trouvé le "bon" code. Pour la création du bloc, je ferais comme bryce avec vla-CopyObjects (ou plutôt vlax-invoke ... 'CopyObjects).Une fois l'objet copié dans la définition de bloc je le déplacerais avec vla-Move du 'point d'insertion choisi (son centre) vers 0,0,0 de manière à conserver le point de base en 0,0,0 et avoir le centre de l'objet comme point d'insertion pour les références. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello Merci a Chris_mtb et Bryce pour leurs efforts ... Les 2 routines ne fonctionnent pas chez moi, voici le resultat de mes tests ***** Tests sur MAP 2006 et 2008 et 2011 ***** ----- Routine NPOL de Chris_mtp Commande : npol2bloc Génération de blocs sur formes closes; erreur : type d'argument incorrect lselsetp nil ----- Routine O2BL de Bryce Commande : pol2bl Choix des objets : Spécifiez le coin opposé: 15 trouvé(s)Choix des objets: Calque pour l Insertion des blocs [Courant/Origine] : Prefixe de numerotation (Entree pour aucun) : 1000 Erreur : Erreur Automation. Aucune description n'a été entrée Cependant j'ai simplifie le filtre de la routine O2BL de Byce pour ne traiter que les polylignes et alors la, ca fonctionne ! Donc est ce un probleme de copier / coller du code ? Je vous donne mon adresse courriel pour envoi par MP des routines :cadxp at hotmail point fr Qu'en pensez vous ? Encore Merci, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Pour le code de Chris_mtp, les polylignes doivent se trouver sur le calque "LIMPAR", ou sinon il faut modifier les filtres ssget. Concernant mon code, voici un lien pour télécharger le fichier et éliminer la possibilité d'un problème de copier-coller:http://www.creao.fr/uploads/lisp/o2bl3.lsp Si le souci persiste, tu peux m'envoyer un fichier de test pour que je regarde ce qui cloche (brice at creao punkt fr). ;) Edit: màj du lien [Edité le 6/3/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 J'ai mis à jour mon code, j'avais oublié de prendre en charge les polylignes 3d et les polylignes 2d "lourdes"...C'est sans doute ce qui provoquait une erreur chez lecrabe. ;) (gile),je ferais comme bryce avec vla-CopyObjects (ou plutôt vlax-invoke ... 'CopyObjects)En fait je préfère volontairement ne pas utiliser vlax-invoke pour que le code soit plus facile à rendre compatible zwcad par exemple.Y aurait-il par contre une bonne raison d'utiliser (vlax-invoke-method ... 'CopyObjects) plutôt que (vla-CopyObjects ...) ? Une fois l'objet copié dans la définition de bloc je le déplacerais avec vla-Move du 'point d'insertion choisi (son centre) vers 0,0,0 de manière à conserver le point de base en 0,0,0 et avoir le centre de l'objet comme point d'insertion pour les référencesJe n'ai pas compris le but de la manoeuvre... :casstet:Edit: ok c'est bon, je vois ce que tu veux dire. [Edité le 6/3/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello Sur MAP 2006, j'ai toujours un probleme curieux sur mon dessin de test : 3DPoly simple, Polylignes 2D simples, Cercles, Splines, Regions Simple signifie pour moi : non lissee, non splinee SI je selectionne TOUT, ta nouvelle routine ne traite CORRECTEMENT que la 3DPoly et les Regions avec l'erreur suivante : Commande: pol2bl (ou plutot O2BL)Choix des objets: Spécifiez le coin opposé: 15 trouvé(s)Choix des objets:Calque pour Iinsertion des blocs [Courant/Origine] :Prefixe de numerotation (Entree pour aucun) :Erreur : Erreur Automation La région ne se situe pas sur le plan du SCU Si je selectionne TOUS SAUF les regions ca fonctionne bien ! Donc je soupconne un probleme de filtre ou bien de traitement des regions ! :exclam: Ensuite il y a un petit bug, dans mon dessin de test mes objets sont a des elevations en Z differentes et donc l'insertion de bloc genere doit suivre le Z ! C OK pour TOUS les objets (= super) sauf pour les polylignes 2D dont les blocs sont systematiquement inseres avec Z = 0 Je continue les tests avec un MAP 2011, mais je ne pense pas que ce soit lie a la version d'AutoCAD Encore merci pour le boulot du Dimanche, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Je viens d'ajouter la prise en charge des mpolygons.Pourrais-tu stp me donner un fichier de test ? Ce n'était pas clair pour moi que les objets avaient un Z, j'avais compris que c'était une fonction Civil qui ferait ça ensuite.Il change le Z du point d’insertion du bloc pour le monter sur le Mnt 3D Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello OUI la fonction de Civil va monter les blocs sur le MNT de Civil :) Mais pour un usage plus general, je pense qu'il est MIEUX de generer les blocs (provenant des polylignes 2D) au Z (Elevation) de chaque polyligne ... :P Ce que tu fais tres bien pour les autres entites ! :D Je vais verifier ma messagerie sur cadxp at hotmail point frDes reception de ton message, je t'envoie mon dessin de test ... Desires tu un dessin test de MPOLYGONs ? Encore Merci, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Je viens de t'envoyer un mail.Pour les MPOLYGONS, je me suis débrouillé avec la routine de (gile), mais tu peux m'en envoyer aussi. :) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello Ok je vais aller voir ma MP Dernier test avec MAP 2006, je confirme que ta derniere routine ne traite pas les Regions ET les MPolygons !? Commande: pol2bl (ou O2BL)Choix des objets: Spécifiez le coin opposé: 3 trouvé(s)Choix des objets:Calque pour Insertion des blocs [Courant/Origine] :Prefixe de numerotation (Entree pour aucun) :Erreur : Erreur Automation. Aucune description n'a été entrée. Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Si tu l'as téléchargée via mon lien, ton navigateur a du garder l'ancien fichier en cache. ;)Je l'ai renommé pour être sûr qu'il le re-télécharge:http://www.creao.fr/uploads/lisp/o2bl3.lsp [Edité le 6/3/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello Je viens de t'envoyer mon DWG de test par MP ATTENTION : tu verifies l'elevation car je crois que l'elevation courante est a +10 ou -10 ce qui risque de provoquer qq degats !? Sinon je suis en Error HTTP 404 sur ton lien ! Mais bon je crois qu tu vas faire qq petites modifs sur ton Lisp (Region, Mpolygon, Elevation), donc je patiente ... Encore Mille mercis, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Oups, désolé pour le lien, c'est corrigé. Je n'ai pas de pb avec les polylignes et les mpolygons sur ton fichier de test. Il n'y a que les régions qui ne sont pas dans le plan du système de coordonnées courant qui provoquent une erreur, la fonction vla-get-centroid ne les supporte pas.Pour l'instant je ne vois pas comment faire... :mad: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello SVP peux tu me renvoyer ton LSP dernier cri par MP en ZIP ?Ton lien ne passe pas chez moi !! :o J'ai fais mon dessin dans le SCG donc je ne comprend pas ton message au sujet des regions !!! :exclam: Mes tests ayant ete realises avec MAP 2006, je vais les refaire avec MAP 2011 Tu testes avec quel AutoCAD SVP ? Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 6 mars 2011 Partager Posté(e) le 6 mars 2011 Raaahh !J'ai re-corrigé le lien, c'était le texte "Edité le...) qui a mis le bazar.Cette fois il est bon, c'est sûr, j'ai cliqué dessus pour vérifier. :P Tu as dessiné dans le SCG mais parfois avec une élévation, ce qui fait que certains objets du dessin ont une coordonnée Z non nulle.Ce qui signifie qu'ils ne se trouvent pas dans le plan XY du SC courant (le SCG donc). Ton dessin contient 3 régions, une avec un Z à 0, une avec un Z à 10, et une autre avec un Z à -10.Les 2 régions avec un Z non nul sont les 2 seuls objets qui posent problème.Tous les autres sont convertis en blocs. Je teste avec AutoCAD 2011. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 6 mars 2011 Auteur Partager Posté(e) le 6 mars 2011 Hello OK ca fonctionne sur MAP 2006 avec toutes les entites et sur la seule region (parmi les 3) qui est au niveau ZERO (celle de gauche), je suis tres etonne par ce probleme de region au niveau -10 et +10 ! Neanmoins, SVP je te sollicite encore pour le probleme d'Insertion des Blocs sur les Polylignes 2D ET SUR les 3 MPolygons qui se fait au niveau ZERO et pas au niveau Z = Elevation de l'objet Alors que toutes les autres blocs (cercles, splines) sont au bon Z (= Elevation) Merci, Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant