richard-c Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Voilà, dans un dessin j'ai des points 3D dans un programme, si je dis : (setvar "OSMODE" 8)puis : (setq p1 (getpoint "\n Premier point "))puis :(setq p2 (getpoint "\n Premier point ")) je peux connaitre la distance, le X et le Y des points et les enregistrerdans un fichier, par contre si je clique à coter du point (n'importe ou dans le dessin)le programme prend les information du point (non 3D) cliqué.(surement à cause de getpoint) Comment forcer l'accrobj NODAL, et si je clique autre chose que NODAL,le programme attende un point nodal et pas autre chose A+
Patrick_35 Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Salut Tu peux agrandir la sensibilité de l'accrochage aux objets avec la variable aperture, mais pas pour autant contrôler ce que l'utilisateur va réellement cliquer (un autre point nodal par exemple ou encore de le désactiver avec la touche f3 pendant la commande) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Salut, À la place de (setq p1 (getpoint)) tu peux faire : (setq p1 (ssget "_:S:E" '((0 . "POINT")))) et ensuite (setq p1 (cdr (assoc 10 (entget (ssname p1 0))))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Salut,je pensais à la même chose que (gile), mais je me suis dit que tes nodal était peut-être des blocs....j'ai trouvé ça, mais ça ne fonctionne qu'au premier lancement.... (command "_point" "_nod" pause) (vla-delete (vlax-ename->vla-object (entlast))) (setq pt (getvar "lastpoint")) ... j'ai essayé avec un (getvar "cmdactive"), je n'arrive pas à faire répéter le premier "_nod"....je cherche.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
richard-c Posté(e) le 22 octobre 2007 Auteur Posté(e) le 22 octobre 2007 Pour (gile) voila le résultat : [surligneur] ; erreur: type d'argument incorrect: lselsetp nil[/surligneur]aprè avoir entré en commande dans le dessin (setq p1 (ssget "_:S:E" '((0 . "POINT")))) puis(setq p1 (cdr (assoc 10 (entget (ssname p1 0))))) pour bred exact, c'est un bloc et attribut rentré en X,Y et Z A+
bonuscad Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Et on pourrait "pousser le bouchon un peu plus loin", en utilisant des filtres logiques sur les coordonnées pour écarter les points 2D éventuels.... ((lambda ( / js) (while (null (setq js (ssget "_:S:E" '((0 . "POINT") (-4 . "*,*,>") (10 0.0 0.0 0.0)))))) (cdr (assoc 10 (entget (ssname js 0)))) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 pour bredexact, c'est un bloc et attribut rentré en X,Y et Z Est-ce que la nodal du bloc correspond à sont point d'insertion ?(et si oui quel est le nom du bloc ?) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
richard-c Posté(e) le 22 octobre 2007 Auteur Posté(e) le 22 octobre 2007 Oui, l'insertion du bloc est bien le nodal, le bloc se nomme point-a, et il est inséré en X, Y et Z, dans mon programme, je fais la distance PT1, PT2 et je lit uniquement le Z pour l'altitude, ce qui me donne un fichier du genre: 0.00339.729712.434340.12187.512340.358712.488340.72667.486340.946612.514341.3020 etc 14.356342.53355.658342.4771fin c'est pour dessiner un profil en long. A+
Bred Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Oui, l'insertion du bloc est bien le nodal, le bloc se nomme point-a, et il est inséré en X, Y et ZEt bien la réponse à alors été donné il n'y a pas longtemps, et magistralement, par Bonuscad, ici !... reste plus qu'à tester le nom du bloc et son point d'insert !....tu sais faire ? ;) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
richard-c Posté(e) le 22 octobre 2007 Auteur Posté(e) le 22 octobre 2007 oui et non ou plutôt NON et oui, je vai essayer quand même A+
(gile) Posté(e) le 22 octobre 2007 Posté(e) le 22 octobre 2007 Ce que je donnais doit fonctionner en changeant le filtre de sélection (setq p1 (ssget "_:S:E" '((0 . "INSERT") (2 . "point-a")))) (setq p1 (cdr (assoc 10 (entget (ssname p1 0))))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
richard-c Posté(e) le 23 octobre 2007 Auteur Posté(e) le 23 octobre 2007 ok (gile) çà marche,mais il est têtu le vosgien,n'ya t'il pas moyen avec cette fonction, que si on clique à coté du bloc, la fonction attendre vraiment que l'on clique le bloc ? A+
bonuscad Posté(e) le 23 octobre 2007 Posté(e) le 23 octobre 2007 mais il est têtu le vosgien, Hé bien la même adaptation que (gile) pour ma première réponse! Copies-colles le code directement en ligne de commande, (recolle en ligne de commande pour refaire un test) ((lambda ( / js) (while (null (setq js (ssget "_:S:E" '((0 . "INSERT") (2 . "point-a") (-4 . "*,*,>") (10 0.0 0.0 0.0)))))) (cdr (assoc 10 (entget (ssname js 0)))) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
richard-c Posté(e) le 23 octobre 2007 Auteur Posté(e) le 23 octobre 2007 Salut à toi Bonuscad, çà fait une paie qu'on se s'est pas écrit. A+
bonuscad Posté(e) le 23 octobre 2007 Posté(e) le 23 octobre 2007 Salut richard-c çà fait une paie qu'on se s'est pas écrit. Ben, on a chacun ses occupations qui font que ... ;) Un petit commentaire (en francais) sur _:S & _:E S est pour (Single) sélection simple ou 1 seul objet uniquement si tu préfères. E est pour (Everything) Tout objet compris dans la cible de sélection. La combinaison permet de dire que l'on veut un seul objet correspondant au filtre parmi tout les objets contenus dans la cible de sélection. Ce mode est influencé par la variable PICKBOX (taille de la cible de sélection) Bonne journée. 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