lecrabe Posté(e) le 24 septembre 2010 Posté(e) le 24 septembre 2010 Hello SVP je fais appel comme d'habitude "aux developpeurs fous" de ce forum ! :) Je n'ai pas trouve (ou retrouve) de routines pour faire la chose suivante : :o 1) Poser une question : Longueur maximum = xx.xx 2) A partir d'une selection classique AutoCAD, on ne retient que les polylignes 2D (normale, lissee, splinee) ou 3D (normale, splinee) et Closes ou Non ! Pour chaque segment de la polyligne trop long (longueur superieure > xx.xx), on genere un nouveau point (au milieu) sur le segment et on recommence l'analyse sur le segment pour retraiter eventuellement et ainsi de suite ...- Polyligne 2D et 3D : sur les segments c OK- Polyligne 2D avec Arc : on coupe en 2 l'arc- Polyligne Lisse ou Spline, on fait comment ? Ainsi cela permet de complexifier une polyligne "trop simple ou trop directe par endroit" ! Bien entendu, je desire conserver les eventuels XDATAs et AUSSI les eventuels Object Data de MAP/CIVIL ! ;) A votre bon coeur et je vous remercie d'avance, le Decapode Autodesk Expert Elite Team
RhymOne Posté(e) le 24 septembre 2010 Posté(e) le 24 septembre 2010 Salut,lecrabe pourrait tu preciser à quoi sa peut servir à part alourdir les dessins et peut generer des MNT plus incorrect ???Sinon en addaptant Addvtx de Gile... Par hasard aurait tu projeter point/MNT ???? DAO: AutoCAD(2D & 3D), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
lecrabe Posté(e) le 24 septembre 2010 Auteur Posté(e) le 24 septembre 2010 Hello Car parfois on "tombe" sur des dessins de reseaux ou canalisations avec des segments (ou meme des arcs !) de longueur "anormales" dans le sens "Realisation physique" Par exemple une belle polyligne avec qq segments de grande longueur montrant une liaison fibre optique ! Logiquement (ou schematiquement) c correct mais physiquement il faut par exemple poser une chambre (ou autre dispositif quelconque pour re-amplifier le signal) tous les xxx.xx metres Idem avec des dessins de canalisation ou il faudrait un regard/tampon tous les xxx.xx metres ou une vanne ou etc ... On peut supposer qu'il y aurait eventuellement un equipement a chaque vertex existant ! Attention je ne veux pas couper la polyligne sinon j'aurais utiliser les excellentes routines DIVCUT et MESCUT de Gilles ! Par exemple j'imagine que Gilles pourrait repartir plus ou moins de DIVCUT/MESCUT mais bon il faudrait etre sans doute "un peu recursif" pour subdiviser N fois les segments / arcs tres longs ! En resume : je desire que la routine insere des vertex automatiquement des qu'elle trouve des segments ou arcs trop longs ! Le Decapode Autodesk Expert Elite Team
RhymOne Posté(e) le 24 septembre 2010 Posté(e) le 24 septembre 2010 Je le redit mais je pense vraiment qu'il faut repartir de Addvtx qui ajoute des vertex au lieu de DIVCUT et MESCUT de Gilles ! qui coupe... DAO: AutoCAD(2D & 3D), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
bonuscad Posté(e) le 29 septembre 2010 Posté(e) le 29 septembre 2010 Je propose la routine que pour des LWPOLYLINE. Elle ne sera qu'un exemple pour celles-ci. On peut après construire une boucle et faire appel à la fonction (add_vtx) avec les paramètres requis pour agir avec des mesures, des divisions ou point ponctuel. Libre à vous d'en faire plus... (vl-load-com) (defun add_vtx (obj add_pt ent_name / bulg) (vla-addVertex obj (1+ (fix add_pt)) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 1)) (list (car (trans (vlax-curve-getpointatparam obj add_pt) 0 ent_name)) (cadr (trans (vlax-curve-getpointatparam obj add_pt) 0 ent_name)) ) ) ) ) (setq bulg (vla-GetBulge obj (fix add_pt))) (vla-SetBulge obj (fix add_pt) (/ (sin (/ (* 4 (atan bulg) (- add_pt (fix add_pt))) 4)) (cos (/ (* 4 (atan bulg) (- add_pt (fix add_pt))) 4)) ) ) (vla-SetBulge obj (1+ (fix add_pt)) (/ (sin (/ (* 4 (atan bulg) (- (1+ (fix add_pt)) add_pt)) 4)) (cos (/ (* 4 (atan bulg) (- (1+ (fix add_pt)) add_pt)) 4)) ) ) (vla-update obj) ) (defun c:add_vertex ( / js obj_vla e_name pt) (while (null (setq js (ssget "_+.:E:S" '((0 . "LWPOLYLINE"))))) (princ "\nCe n'est pas un objet valable!") ) (setq obj_vla (vlax-ename->vla-object (setq e_name (ssname js 0)))) (sssetfirst nil js) (while (setq pt (getpoint "\nPosition du sommet: ")) (add_vtx obj_vla (vlax-curve-getparamatpoint obj_vla (vlax-curve-getClosestPointTo obj_vla (trans pt 1 0))) e_name) (sssetfirst nil js) ) (sssetfirst) (prin1) ) PS: Activer au moins une fois les grips (puis faites Esc pour les désactiver) pour bien voir les grips des nouveaux sommets se mettre en place lors de l'utilisation de la routine. [Edité le 29/9/2010 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 6 octobre 2010 Auteur Posté(e) le 6 octobre 2010 Hello Coeur Fidele Merci pour ta routine qui ne correspond pas "completement" a ma demande ! :) Neanmoins, elle m'aide DEJA beaucoup !! :D Encore Merci, Le Decapode Autodesk Expert Elite Team
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