Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Contact Methods

  • Website URL
    http://http://

Profile Information

  • Location
    Antibes

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

Bred's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. Bonjour, Je ne vais pas vous écrire le programme, (pas le temps), mais vous devriez peut-être regarder du côté de l'échelle d'image. Vous affichez une image de base avec une échelle 1 dans les 2 sens, et vos modifications entraine un changement d'échelle de l'image correspondant à vos dimensions.
  2. ... bon, c'est vraiment trop tordu pour mon cas, afin d'avoir un truc propre j'insert des entités diverses (texte, bloc de biblio...) dans des blocs qu'ensuite j'insert dans un bloc final pour l'inserer dans AutoCAD... Et ces entitées je les oriente et bascule selon pas mal de paramètres... Solution : je bascule en SCG après la sélection des points... Merci pour votre temps.
  3. OK, merci !
  4. OK, je vais approfondir ça. Merci Tes codes semblent fonctionner, mais pas pour le texte il me semble.
  5. Bred

    entpoint ?

    Ah oui ! bien, je ne savais pas. Encore une fois merci. (... tu es tout seul dans le forum maintenant ?)
  6. Bred

    entpoint ?

    ... je me répond tout seul : (ssget "C" p1 p1)
  7. Bred

    entpoint ?

    Bonjour, Sans passer par entsel, existe t'il un moyen de récupérer un entité en ayant des coordonnées ? Un "entpoint" ou un "ssget '( x y z)"... Merci d'avance.
  8. Re, Alors voilà un principe qui, que l'on soit en SCG ou en SCU ne donne pas le même résultat alors que je pense ne travailler qu'en SCG... (defun c:eee ( / ANG BLOC_FINAL NOM-BLOC-FINAL P1 P1SCG P2 P2SCG TXT VECT-P1P2 VECT-Z CIRCLE PLAN-P1) (setq p1 (getpoint) p2 (getpoint p1) ang (angle p1 p2) p1scg (trans p1 1 0) vect-p1p2 (mapcar '- p2 p1) vect-Z '(0.0 0.0 1.0)) (setq plan-p1.p2.Z (list (- (* (cadr vect-p1p2) (caddr vect-Z)) (* (caddr vect-p1p2) (cadr vect-Z))) (- (* (caddr vect-p1p2) (car vect-Z)) (* (car vect-p1p2) (caddr vect-Z))) (- (* (car vect-p1p2) (cadr vect-Z)) (* (cadr vect-p1p2) (car vect-Z))) )) ;;; Crée Bloc-final dans collection (setq Nom-Bloc-final (strcat "Bloc-final" (itoa (fix (* (getvar "TDUSRTIMER") 10000000)))) Bloc_final (vla-add (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0 0 0)) Nom-Bloc-final)) ;;; Ecrit Texte dans Bloc-Final (setq txt (vla-AddMText Bloc_final (vlax-3d-point '(0 0 0)) 0.01 "<---- SENS P1 P2----->")) ;;; rotation txt vers p2 (vla-put-rotation txt ang) ;;; bascule txt sur le plan p1/p2/sens Z SCG (vla-put-normal txt (vlax-3d-point plan-p1.p2.Z)) ;;; cercle dans Bloc-Final (setq circle (vla-AddCircle Bloc_final (vlax-3d-point (polar '(0 0 0) ang (/ (distance p1 p2) 2))) (/ (distance p1 p2) 2))) ;;; bascule cercle sur le plan p1/p2/sens Z SCG (vla-put-normal circle (vlax-3d-point plan-p1.p2.Z)) (vla-insertblock (vla-get-ModelSpace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point p1scg) Nom-Bloc-final 1 1 1 0) )
  9. Je fais pas mal de rotation de bloc (vla-rotate3d), de bascule (vla-put-normale) dans mon lisp, à l'interieur du bloc "(vla-add (vla-get-Blocks" et de création de texte avec "(vla-AddMText Bloc..." et j'ai l'impression que ça prend en compte compte le SCU, car j'ai vraiment une différence à l'insertion avec vla-insertblock entre le SCG et le SCU. Dès que je trouve un moment, j’essaye de coder un exemple simple pour le mettre ici. Merci
  10. Bonjour, Je créé un bloc grâce à (vla-add (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object)))... Je "travail" dedans ensuite par rapport à un point '(0 0 0) et 2 point p1 et p2 que j'ai pris soin de transformer en SCG avec (trans p1 1 0).... J'insert ensuite le bloc grâce à vla-insertblock Quand je suis en SCG, pas de problème. Par contre, si je suis en SCU, dans mon bloc inséré c'est le bordel.... Bosser dans un "vla-get-Blocks" ne se passe pas uniquement en SCG ? Merci d'avance
  11. Re, OK, j'ai bricoler mon bonheur e nrécuperant l'axe du plan pour faire une rotation 3 sans toucher directement à la normal. Merci ! (setq p1 (getpoint)) (setq p2 (getpoint p1)) (setq vla-sel (vlax-ename->vla-object (car (entsel "\n Choix de l'objet :")))) (setq ang-2D (angle p1 p2)) (setq vecteur-p1-p2 (mapcar '- p2 p1)) (setq norm-plan.p1p2 (gc:CrossProduct '(0. 0. 1.) vecteur-p1-p2)) (vla-rotate3d vla-sel (vlax-3d-point '(0 0 0)) (vlax-3d-point norm-plan.p1p2) (- (asin (/ (- (caddr p2) (caddr p1)) (distance p1 p2)))))
  12. Ah, oui, merci ! je pressentais que c'était une multiplication de vecteur mais je n'ai pas cette logique du tout. Sauf que je suis ecoeuré car ça ne résous en pas mon problème, ce n'est pas entièrement la solution : Si j'ai une polyligne horizontal du point A dans le sens de B donc qui a bien une normal (0 0 1), le fait de changer sa normal en le rendant perpendiculaire à A B ne fait pas ce que je voudrais... Je voudrais que la polyligne s'aligne à A B dans son sens de longueur, mais en fait elle "bascule"... polilygne de '(0 0 0) à '(4 0 0) avec normal de (0 0 1) (polyligne ou bloc au point d'insert 0 et normal (0 0 1)) point A (0 0 0) et B (2 0 2) la normal calculé donne (-4.0 0.0 4.0) mais bascule la polygne en la laissant sur le plan XY... donc il faut que je fasse une rotation de l'angle "3D" en +.
  13. Bonjour, Non, merci mais je ne suis en effet pas clair. Je connais v1, A et B, je cherche v2. A et B étant sur n'importe quel plan autour de v1 qui a pour vecteur (0 0 1)
  14. J'ai utilisé les fonctions de (gile) pour bricoler un truc, mais je ne comprends pas pourquoi ça ne fonctionne pas. (setq p1 (getpoint) p2 (getpoint p1)) ; vecteur p1>p2 (setq vec (mapcar '- p2 p1)) ;;; axe de rotation (setq axis (polar p1 (+ (angle p1 p2) (/ pi 2)) 1)) (gc:Rotate vec axis (/ pi 2)) Avec ;; gc:Rotate ;; Retourne le vecteur après rotation sur l'axe défini par le vecteur axis ;; ;; Arguments ;; vec : le vecteur devant subir la rotation ;; axis : l'axe de rotation (vecteur) ;; ang : l'angle en radians (defun gc:rotate (vec axis ang) (trans (mxv (list (list (cos ang) (- (sin ang)) 0.) (list (sin ang) (cos ang) 0.) '(0. 0. 1.) ) (trans vec 0 axis) ) axis 0 ) ) ;; TRP ;; Transpose une matrice -Doug Wilson- ;; ;; Argument ;; m : une matrice (defun trp (m) (apply 'mapcar (cons 'list m))) ;; MXV ;; Applique une matrice de transformation à un vecteur -Vladimir Nesterovsky- ;; ;; Arguments- ;; m : une matrice ;; v : un vecteur (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m ) )
  15. ... j'ai oublier de rajouter qu'en 2D la fonction est, si je ne me trompe pas. (polar p1 (+ (angle p1 p2) (/ pi 2)) 1) ... mais en 3D....
×
×
  • 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é