fabcad Posté(e) le 4 décembre 2006 Posté(e) le 4 décembre 2006 Bonjour les super programmeurs, Pourrait-on créer une fonction qui permettrait de déplacer automatiquement des textes, des multi-textes ou des attributs de blocs visibles si leur cadre s'intersecte avec un objet.De les mettre là ou il y a de la place... merci pour vos bouts de programmes. fabcad
lecrabe Posté(e) le 4 décembre 2006 Posté(e) le 4 décembre 2006 Hello Fabrice Ce que tu demandes est "très complexe" et en général il existe des développements spécifiques pour réaliser ce genre de choses sur les logiciels de SIG Bureatique ... Par contre si quelqu'un réussit à nous faire "un petit qq chose" de satisfaisant pour AutoCAD (et donc aussi pour MAP & CIVIL), je suis PRENEUR comme toi !!! :) :D :cool: Le Decapode Autodesk Expert Elite Team
fabcad Posté(e) le 4 décembre 2006 Auteur Posté(e) le 4 décembre 2006 Hello Patrick, Je vois que nous avons les mêmes idées, je sais qu'il existe des applications mais payantes. Même des débuts de codes peuvent m'intéresser. merci d'avance...
bonuscad Posté(e) le 14 décembre 2006 Posté(e) le 14 décembre 2006 Je connais pas encore MAP ... Mais voici un extrait d'une routine que je me suis faite pour l'insertion d'un bloc avec des attributs Cela me permet de fixer mon point d'insertion en choississant entre les 4 quadrants et de placer correctement ma ligne de repère dans la zone qui me convient le mieux. Bien sur ici, cela n'insère rien, ca dessine seulement l'encombrement virtuel de mon bloc, mais si cela t'interresse.... ((lambda ( / ) (while (null (setq ent (entsel "\nChoisir une ligne: ")))) (setq dxf_line (entget (car ent))) (foreach n (list (list (cdr (assoc 10 dxf_line))) (list (cdr (assoc 11 dxf_line)))) (setq pt1 (car n) pt2 (car n)) (while (equal pt2 pt1) (setq pt2 ((lambda ( / key pt p1 p2 p3 p4 alpha) (princ "\nPosition de l'annotation du PR: ") (while (and (setq key (grread T 4 0)) (/= (car key) 3)) (cond ((eq (car key) 5) (redraw) (setq pt (cadr key)) (setq alpha (angle pt1 pt)) (cond ((and (>= alpha 0.0) (< alpha (/ pi 2))) (setq p1 pt p2 (list (+ (car pt) 605) (cadr pt)) p3 (list (+ (car pt) 605) (+ (cadr pt) 430)) p4 (list (car pt) (+ (cadr pt) 430)) pt_w p1 ) ) ((and (>= alpha (/ pi 2)) (< alpha pi)) (setq p1 pt p2 (list (car pt) (+ (cadr pt) 430)) p3 (list (- (car pt) 605) (+ (cadr pt) 430)) p4 (list (- (car pt) 605) (cadr pt)) pt_w p4 ) ) ((and (>= alpha pi) (< alpha (/ (* 3 pi) 2))) (setq p1 pt p2 (list (- (car pt) 605) (cadr pt)) p3 (list (- (car pt) 605) (- (cadr pt) 430)) p4 (list (car pt) (- (cadr pt) 430)) pt_w p3 ) ) (T (setq p1 pt p2 (list (car pt) (- (cadr pt) 430)) p3 (list (+ (car pt) 605) (- (cadr pt) 430)) p4 (list (+ (car pt) 605) (cadr pt)) pt_w p2 ) ) ) (grdraw pt1 p1 1) (grdraw p1 p2 7) (grdraw p2 p3 7) (grdraw p3 p4 7) (grdraw p4 p1 7) ) ) ) (redraw) (cadr key) )) ) (if (equal pt2 pt1) (princ "\nLa position est confondue avec l'extrèmité du CD!") ) ) ) )) NB: concu pour une petite échelle, environ 1/100000 Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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