-
Compteur de contenus
12 247 -
Inscription
-
Dernière visite
-
Jours gagnés
209
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par (gile)
-
http://img81.imageshack.us/img81/2359/arcdwgportraita419qi.png
-
http://img81.imageshack.us/img81/4254/arcdwgportraita410zf.png
-
http://img74.imageshack.us/img74/374/arcdwgportraita413bj.png
-
http://img74.imageshack.us/img74/6660/arcdwgportraita411vo.png
-
On peut faire encore plus simple, sachant que l'angle entre la corde et la ligne entre le départ et le sommet de la flèche (le point recherché) est égal au quart de l'angle de l'arc. Toujours avec FACTOR ;;; MID_ARC Retourne les coordonnées du point au centre de l'arc (defun c:mid_arc (/ dep ext arc ang cord) (setq dep (getpoint "\nDépart de l'arc: ") ext (getpoint "\Fin de l'arc: ") arc (getdist "\Longueur de l'arc: ") ang (angle dep ext) cord (distance dep ext) ) (command "_point" "_non" (polar dep (- ang (/ (factor arc cord) 2)) (/ cord 2 (cos (/ (factor arc cord) 2))) ) ) ) Oups !!! j'avais effacé des définitions de variables. [Edité le 27/1/2006 par (gile)] [Edité le 27/1/2006 par (gile)]
-
Re, Un petit LISP vite fait (pas de contrôles, uniquement 2D) qui retourne les coordonnées du point au centre de l'arc en fonction des points de départ, de fin, et de la longueur de l'arc. Le LISP utilise la routine FACTOR citée plus haut. L'arc (unique) est déterminé par son départ et sa fin en fonction du sens de rotation des angles (trigonométrique). ;;; MID_ARC Retourne les coordonnées du point au centre de l'arc (defun c:mid_arc (/ dep ext arc cord ang ray mid cen) (setq dep (getpoint "\nDépart de l'arc: ") ext (getpoint "\Fin de l'arc: ") arc (getdist "\Longueur de l'arc: ") cord (distance dep ext) ang (factor arc cord) ray (abs (/ cord 2 (sin ang))) mid (mapcar '/ (mapcar '+ dep ext) '(2.0 2.0 1.0)) ) (if (equal (/ pi 2) ang 1e-009) (setq cen mid ray (/ cord 2) ) (setq cen (polar mid (+ (angle dep ext) (/ pi 2)) (* ray (cos ang))) ) ) (polar cen (- (angle dep ext) (/ pi 2)) ray ) ) ;;; Détermination du demi angle de l'arc à partir de sa corde et de sa longueur (defun factor (arclen chordlen / k n c e) (setq k (/ chordlen arclen)) (setq n 0) (repeat 6 (if (= n 0) (setq c (sqrt (- 6 (* 6 k)))) (setq c (- c (/ (- (sin c) (* k c)) (- e k)))) ) (setq e (cos c)) (setq n (1+ n)) ) c )
-
J'ai posté ici un LISP en "pur Visual" qui ne présente pas grand intérêt en soi (il produit la même action que la commande "Arc, départ, fin, rayon") mais il illustre une façon d'utiliser trans (vla-TranslateCoordinates) et ucszdir (Normal) pour trouver les angles de départ et de fin d'arcs de cercles à partir de points définis dans le SCG quelque soit le SCU courant.
-
Salut Lispo, si jamais tu repassais par là j'ai encore un peu ammélioré la LISP pour qu'il fonctionne quelque soit le SCU courant.
-
Si une corde (définie par ses extrémités) et une longueur d'arc suffisent à définir un arc (en fait, deux, un de chaque côté de la corde), pour déterminer les autres grandeurs (rayon, flèche), j'ai toujours buté sur une équation que je ne sais pas résoudre du type : longueur d'arc / corde = demi angle de l'arc / sinus du demi angle de l'arc Bonuscad a trouvé un LISP : Factor qui calcule le demi-angle de l'arc par approximations successives à partir des longueurs de l'arc et de la corde. Si çà peut t'aider.
-
Salut, Les questions que tu poses sont récurentes, tu as peut-être déjà trouvé des réponses pertinentes ici ou là. Je ne saurais dire grand chose de plus que ce qui a été dit. Personnellement, j'ai commencé avec AutoLISP et je m'essaye parfois au VisualLISP qui permet d'accéder à certaines fonctions VBA mais sans changer complètement de langage. Pour ce qui est des formations,je n'ai jamais entendu parler de quelque chose de vraiment spécifique, mais je serais intéressé.
-
Là tu exagères vraiment :mad: Poster trois fois la même demande alors qu'une simple recherche t'aurais fait voir que le sujet a encore été abordé pas plus tard qu'hier ! Je vais finir par regréter de t'avoir répondu la première fois !
-
Salut, tu n'es pas le seul, ni le premier :cool: Il y en plein ici et le Catalogue de hachures de Rebcao, 582 motifs, pas de CB, juste 2 codes AlloPass.
-
Modifier les propriété du calque de plusieurs blocs en meme temp.
(gile) a répondu à un(e) sujet de Circus dans AutoCAD 2006
Alors là, chapeau !!! Et puis abondamment commentée... ...une vraie leçon de VisualLISP ! Merci Patrick_35 :D -
Bon, j'en ai fini avec les équivalents des vl-string-* (STRING-TRIM, STRING-TRIM-LEFT, STRING-TRIM-RIGHT et STRING-MISMATCH pour les dernières). Je rajoute aussi REMOVE-IF-NOT que j'avais oublié. Je classe tout par ordre alphabétique. Et, à moins qu'un intérêt particulier ne se manifeste, je crois que je vais en rester là (çà commence à moins m'amuser, et surtout, je ne suis pas sûr d'être capable de faire celles qui restent !).
-
3D MAx dans Autocad - maillage polyfaces
(gile) a répondu à un(e) sujet de KAELKAEL dans AutoCAD 2004
Tout d'abord, ce LISP n'est pas de moi mais de Bill Gilliss, dans la version dont je donnais le lien, je me suis contenté de traduire les invites. Pour les mailllages, regarde dans l'aide, Manuel d'utilisation -> Création et modification des objets -> Création d'objets géométriques -> Création d'objets 3D -> Création de surfaces. En voici un extrait : Les maillages peuvent être ouverts ou fermés, dans une direction ou dans les deux directions (selon que les arêtes se rejoignent ou non), comme le montrent les illustrations ci-après. http://img77.imageshack.us/img77/5403/maille9nu.png Tu peux "ouvrir" un maillage fermé par la fenêtre de propriétés, mais il ne s'ouvrira pas forcément comme tu le voudrait. Il me semble qu'on ne peut pas ouvir un maillage polyface. Extrait des commentaires de Bill Gilliss au début de M2S : [Edité le 26/1/2006 par (gile)] -
Petite précision, il me semble me souvenir qu'avant la version 2004, la commande "Publier" n'existait pas. Pour faire un DWF, avec 2002 c'est "Imprimer" et choix du traceur -> Imprimer dans un fichier -> DWF ePlot.pc3 (c'est de mémoire, je ne suis pas sûr de l'exactitude).
-
Encore trois petites nouvelles rajoutée à la liste : STRING-TRANSLATE, STRING-SEARCH et STRING-SUBST. [Edité le 25/1/2006 par (gile)]
-
Il existe un LISP très célèbre qui a été créé pour çà : M2S. Il permet de transformer un maillage ouvert en solide.
-
3D MAx dans Autocad - maillage polyfaces
(gile) a répondu à un(e) sujet de KAELKAEL dans AutoCAD 2004
Salut, On ne peut faire d'opérations Booléennes qu'avec des solides. Si tes maillages sont "ouverts" tu peux les transformer en solides avec le célèbre LISP M2S. -
Salut, Il y en plein ici et le Catalogue de hachures de Rebcao, 582 motifs, pas de CB, juste 2 codes AlloPass.
-
J'ai modifié le LISP ci-dessus, il est maintenant entièrement en langage VisualLISP, plus facile à traduire en VBA, j'imagine.
-
Je pensais l'avoir déjà postée, mais je ne la retrouve pas, alors je la met ici. Une de mes première boite de dialogue, pour gérer les échelles de types de ligne. Il n'y a à rien de nouveau, cette boite contient seulement quelques unes des options qu'on trouve quand on ouvre "Afficher les détails" de la boite de dialogue "Types de lignes..." http://img520.imageshack.us/img520/6456/echl9yy.png Code DCL à enregistrer sous Echl_lign.dcl dans un dossier du chemin de recherche des fichiers de support d'AutoCAD //Boite de dialogue "Echelle de type de ligne" //02/08/04 - Gilles Chanteau - echtl:dialog{ label="Echelle de type de ligne"; initial_focus="factech"; :edit_box{ label="Facteur d'échelle global:"; key="factech"; allow_accept=true; edit_width=10; } :edit_box{ label="Echelle de l'objet courant:"; key="echcour"; allow_accept=true; edit_width=10; } :spacer{width=1;} :boxed_radio_column{ label="Présentation (espace papier)"; :radio_button{ label="Unités spécifiques de l'espace papier"; key="echpap"; } :radio_button{ label="Unités de l'espace de création de l'objet"; key="echobj"; } } :spacer{width=1;} ok_cancel; :spacer{width=1;} } Le LISP àcharger comme vous en avez l'habitude (taper echl_lign pour ouvrir la boite) ;;; Boite de dialogue "Echelle de type de ligne" ;;; 02/08/04 - Gilles Chanteau - ;;; C:ECH_LIGN commande la boite de dilaogue "echtl" (echl_lign.dcl). ;;; Définit les variables système LTCSCALE, CELTSCALE et PSLTSCALE. (defun c:echl_lign (/ dcl_id) (setq dcl_id (load_dialog "ECHL_LIGN.DCL")) (if (not (new_dialog "echtl" dcl_id)) (exit) ) (set_tile "factech" (rtos (getvar "ltscale"))) (set_tile "echcour" (rtos (getvar "celtscale"))) (if (= (getvar "psltscale") 1) (set_tile "echpap" "1") (set_tile "echobj" "1") ) (action_tile "echpap" "(setvar \"psltscale\" 1)") (action_tile "echobj" "(setvar \"psltscale\" 0)") (action_tile "accept" (strcat "(progn" "(setvar \"ltscale\" (atof (get_tile \"factech\")))" "(setvar \"celtscale\" (atof (get_tile \"echcour\")))" "(command \"_regenall\")(done_dialog))" ) ) (start_dialog) (unload_dialog dcl_id) (princ) )
-
Salut, (tu dois bien lire le LISP lispo ?) Je ne connais pas le VBA, mais voici un petit LISP vite fait qui crée un objet arc à partir des points de départ de fin et du rayon. L'arc créé l'est dans le sens trigonométrique, et pour répondre au problème soulevé dans le lien donné par Bonuscad, seul l'arc inférieur au demi-tour est dessiné (comme dans l'option "Départ, fin, rayon" de la commande "Arc"). J'ai essayé d'écrire le plus possible en VisualLISP, qui se rapproche du VBA, je crois. C'est la transcription de la méthode graphique consistant à trouver le centre de l'arc par l'intersection de deux arcs de même rayon. Pas très élégant, mais efficace. En espérant que cela te soit d'un quelconque usage. Nouvelle version entièrement VisualLISP (defun c:arc_ser (/ AcDoc Util ModSp StartPt EndPt Radius Normal OCS_StartPt OCS_EndPt AngStartEnd Arc1 Arc2 Center OCS_Center ) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) ModSp (vla-get-ModelSpace AcDoc) Util (vla-get-Utility AcDoc) ) (vla-StartUndoMark AcDoc) ;; Entrée des données par l'utilisateur (coordonnées SCG) (vla-InitializeUserInput Util 1) (setq StartPt (vla-getPoint Util nil "\nDépart de l'arc: ")) (vla-InitializeUserInput Util 1) (setq EndPt (vla-getPoint Util (vla-TranslateCoordinates Util StartPt acWorld acUCS 0) "\nFin de l'arc: " ) ) (vla-InitializeUserInput Util 1) (setq Radius (vla-getDistance Util (vla-TranslateCoordinates Util EndPt acWorld acUCS 0) "\nRayon de l'arc: " ) ) ;; Calcul du vecteur Normal du SCO et traduction des points dans le SCO ;; pour déterminer l'angle entre les points de départ et de fin (setq Normal (vla-TranslateCoordinates Util (vlax-3d-point '(0 0 1)) acUCS acWorld 1 ) ) (setq OCS_StartPt (vla-TranslateCoordinates Util StartPt acWorld acOCS 0 Normal) ) (setq OCS_EndPt (vla-TranslateCoordinates Util EndPt acWorld acOCS 0 Normal) ) (setq AngStartEnd (vla-AngleFromXAxis Util OCS_StartPt OCS_EndPt) ) ;; Tracé de 2 arcs temporaires pour trouver le centre (setq Arc1 (vla-addArc ModSp StartPt Radius AngStartEnd (+ AngStartEnd (/ pi 2)) ) ) (setq Arc2 (vla-addArc ModSp EndPt Radius (+ AngStartEnd (/ pi 2)) (+ AngStartEnd pi) ) ) ;; Récupération et traduction dans le SCO du centre (intersection des arcs) (setq Center (vla-IntersectWith Arc1 Arc2 acExtendNone)) (setq OCS_Center (vla-TranslateCoordinates Util Center acWorld acOCS 0 Normal) ) ;; Suppression des arcs temporaires (vla-delete Arc1) (vla-delete Arc2) ;; Tracé de l'arc (vla-addArc ModSp Center Radius (vla-AngleFromXAxis Util OCS_Center OCS_StartPt) (vla-AngleFromXAxis Util OCS_Center OCS_EndPt) ) (princ) )[Edité le 26/1/2006 par (gile)] [Edité le 27/1/2006 par (gile)]
-
Il me semble que non. Une fois placée l'extrémité de la ligne sur le pôle de la sphère (maillage), avec seulement la ligne sélectionnée, on clique sur cette poignée et : Commande: ** ETIRER ** Spécifiez le point d'étirement ou [point de Base/Copier/annUler/Quitter]: .xy de @ (Z nécessaire): 0.0 Exemple où 0.0 est la coordonnée Z du centre calculée à partir des propriétés. Ou, plus simple : on commence par dessiner une autre ligne dont on place chaque extrémité sur un pôle (avec les poignées bien sûr !) et la poignée du mileu de cette ligne est au centre de la sphère. [Edité le 24/1/2006 par (gile)]
-
Joli coup, je n'avais pas pensé au poignées. Si les sphères sont des solides, il y a une poignée au centre. Si ce sont des maillages, on peut s'accrocher aux poignées sur les poles et ensuite faire étirer en mode poignée pour les extrémités des lignes et les replacer au centre en utilisant un filtre .xy Mais il y a peut-être plus simple ?
