stugeol Posté(e) le 6 mars 2012 Posté(e) le 6 mars 2012 Bonjour,Je suis à la recherche d'une routine équivalente à la fonction covaclipping de Covadis. En deux mot, on selectionne un contour (Une polyligne fermée) : -Les objets externes au contour et n'intersectant pas le contour sont supprimés -Les objets intersectant le contour sont ajustés, les parties internes au contour sont conservés, les parties externes sont suprimés -Les objets entiérement contenus dans le contour sont conservés. Aurriez vous cela dans vos tirroires, ou des partie de routines efféctuant une partie des taches? Actuellement j'essait de développer une tel routine en VBA, je pêche sur la méthode pour ajuster les objets intersectants le contour et conserver la partie interne au contour.Si vous avez des idées, des méthodes, je suis prenneur.Cordialement. Petit à petit on devient moins petit
stugeol Posté(e) le 7 mars 2012 Auteur Posté(e) le 7 mars 2012 Bonjour Patrick,Je te remercie pour cette piste, il me manque plus qu'a créer une présentation à partir d'un objet de l'espace objet.Cordialement. Petit à petit on devient moins petit
stugeol Posté(e) le 8 mars 2012 Auteur Posté(e) le 8 mars 2012 Aurriez vous une astuce pour ajuster une fenêtre à un contour. Je m'explique :Dans l'espace objet je créer une polyligne fermée. je la copie avec un point de base (0,0,0) et la colle dans l'espace papier et je transforme cette polyligne en fenêtre.Pour des polylignes sans arc de cercle, je calcul l'isobarycentre des sommets de ma polyligne. Dans l'onglet propriétée de la fenetre je renseigne les coordonnées calculés. Dans ce cas pas de problème mon contour et la fenêtre coïncide.Si la polyligne contient des arcs, la fenêtre et la polyligne sont décalées...Auriez vous une astuce pour que les deux se supperposent?cordialement. Petit à petit on devient moins petit
bryce Posté(e) le 8 mars 2012 Posté(e) le 8 mars 2012 Bonjour, Tu peux transformer ta polyligne en région, puis avec la commande PROPMECA récupérer les coordonnées du centre de gravité. Voici un petit lisp qui pourra te faciliter ça: (defun c:PLCG ( / *error* acdoc as po region) (vl-load-com) ;~~~~~~~ SOUS-FONCTIONS ~~~~~~~~~~~ (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 acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "CVPORT") 1) (setq as (vla-get-paperspace acdoc)) (setq as (vla-get-modelspace 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 region (vla-delete region)) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (setq po (vlax-ename->vla-object (car (entsel "\nChoix de la polyligne : ")))) (if (and po (member (vla-get-objectname po) '("AcDb2dPolyline" "AcDbPolyline")) (= :vlax-true (vla-get-closed po)) ) (progn (setq region (car (vlax-invoke as 'Addregion (list po)))) (setq cg (gc:VariantToLispData (vla-get-centroid region))) (vla-delete region) (setq region nil) (princ (strcat "\nCoordonnées du centre de gravité dans le SCU courant : " (rtos (car cg)) "," (rtos (cadr cg)))) );progn (princ "\nObjet non supporté") );if (*error* nil) ); (princ "\nCommande à utiliser: PLCG, entrer !cg pour utiliser les coordonnées du CG.") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
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