Aller au contenu

krunch

Membres
  • Compteur de contenus

    239
  • Inscription

  • Dernière visite

Tout ce qui a été posté par krunch

  1. Bonjour à tous Une question question simple et rapide : si l'entité que je veux ajouter dans un bloc est déjà présente dans le dessin, est ce que je suis obligé de la re-créer à l'identique (Block.AddXXX..) puis de supprimer l'originale ? Ou y a t-il un moyen pour l'ajouter directement (ce que fait la commande BLOC) ??
  2. krunch

    Plantage VLisp

    Re-bonjour Personne n'a une idée sur ce curieux problème ? En résumé j'ai un problème qui est devenu permanent. Il est arrivé après un plantage (en bricolant des réacteurs), et il est toujours là même après ré-installation complète d'AutoCad.. Tout se passe comme si ce plantage avait bougé des choses dans Windows. Dès que VLisp est ouvert en arrière plan AutoCad est gelé. Dans ce cas : la souris disparait de l'écran graphique ; les commandes sont sans effet ; la ligne de commande est bloquée sur "_vlide" ; quand j'écris le curseur se déplace mais aucun caractère n'apparait (ça écrit en transparent) ; Enter me renvoie VLisp et ESC est sans effet. Je suis donc obligé de tout le temps fermer VLisp. Du côté de VLisp tout à l'air normal sauf 1 chose : les points d'arrêt ne fonctionnent plus. C'est un ACad2008 installé sur un système vaseux.. Vista..
  3. krunch

    Plantage VLisp

    Il n'y a pas de Lisp en chargement auto, aucune boucle perso n'est lancée. En fait Autocad ne marche plus dès que VLisp est présent en arrière plan (dans ce cas la ligne de commande est bloquée sur _vlide). Il faut fermer VLisp, dès qu'il est ouvert (même avec aucun Lisp ouvert) AutoCad est gelé ! Une fois fermé tout est normal, je peux même lancer des Lisp en chargeant puis en fermant VLisp... Mais le plus curieux c'est surtout qu'après ré-installation ce pb est toujours là !! :casstet: Entre la désinstallation et la ré-installation j'ai nettoyé les dossiers et la base de registre Comment c'est possible ?? :casstet: :casstet: [Edité le 5/6/2009 par krunch]
  4. krunch

    Plantage VLisp

    Ok mais là le truc est vraiment cassé... même avec aucun Lisp de lancé (ou d'ouvert), c'est ce que ce qui se passe au démarrage..
  5. krunch

    Plantage VLisp

    Bonjour à tous J'ai eu droit à un plantage de choix qui semble avoir détraqué VLisp.. Voilà les symptomes : dès que VLisp est ouvert (après une commande _vlide) AutoCad est gelé (les commandes ne font plus rien, la souris disparait de l'écran graphique, Esc ne marche plus, _vlide est planté sur la ligne de commande...), il faut fermer VisualLISP pour que ça se débloque (en répondant Oui à Reset break loop to close IDE ) Quelqu'un a déjà eu ça ?
  6. Il manque une parenthèse finale dans SelOneOrMore. Sinon c'est tout à fait ça.. Et je confirme qu'à l'usage c'est un (petit) raccourci qui fait que tu ne te sers plus du tout de l'option M..
  7. Toto utilise le renvoie (ssget) de façon très futée.. Mais ce n'est pas tout à fait ça : quand tu cliques dans le vide il faut recliquer ensuite pour faire une sélection multiple, or ce que je veux c'est que ton clic vide soit déjà le 1er point d'une sélection multiple. A priori (je l'ai pas intégré encore) ça peut marcher avec ta fonction (SelOneOrMore), il suffit d'ajouter un test sur le 1er pointage : (if (not(ssget "_S" pt0)) (SelOneOrMore pt0)) Je bricole une commande qui marche par défaut en sélection unique (selon un déroulement comparable à celui de _pedit par exemple). Eh bien dans ce cas je confirme que ce "raccourci" est diablement pratique, tu peux quasiment supprimer l'option M..[Edité le 14/5/2009 par krunch] [Edité le 14/5/2009 par krunch]
  8. Alors oui mais ça ne marche qu'avec les blocs chez moi, pas avec les entités... J'avoue que je n'ai pas cherché pourquoi, de toutes façons je vois le principe, et c'est vrai que ça évite un réacteur pour (command "SELECT") Sinon pour la projection j'avais bien compris que c'était pour le traçage du rectangle de capture, mais j'avais cru que les points projetés partaient aussi dans (ssget). Merci beaucoup pour tes efforts
  9. En effet c'est efficace, et ça peut être ça.. Ton code* a l'avantage de ne pas sortir de la boucle (de ne pas perdre les variables), et le principal inconvénient est juste qu'on n'a pas le vert-bleu de la capture ! Merci beaucoup, je vais voir si je vais pas l'intégrer vu que ça marche toujours à moitié mon bricolage à réacteurs... * ajouter l'argument à l'appel (gr-sel-display) et ajouter la fonction vxv __________________ Question: mais pourquoi projeter (ilp) sur le plan de la vue pour obtenir les points de (ssget) ? [Edité le 11/5/2009 par krunch]
  10. Si je te dis quel est la commande tu vas me trouver encore plus tordu.. en fait la commande est un SELECT ! Alors voilà ce que je veux faire.. Le déroulement de la commande est comme celui de _pedit par exemple : quand tu survoles une entité elle est highlightée , et quand tu cliques dessus elle est traitée.. (bref la structure est une boucle grread). Pour pouvoir traiter plusieurs objets il y a une option Multiple... mais ce que je veux en plus, qui n'est pas dans _pedit, et qui s'avère très pratique et très immédiat à l'usage... c'est qu'on puisse aussi sélectionner les entités (multiples) simplement en cliquant sur du vide : si tu cliques à côté d'un objet tu lances une sélection normale. Or comment faire ça ? Il n'y a pas d'option (ssget) qui permette de faire une sélection normale (windows-capture..) en spécifiant juste le 1er point et en attendant le 2è, pas que je sache... Voilà pourquoi je suis parti sur cet appel de commande* "_SELECT" avec toutes les complications qui s'en suivent : c'est pour faire (command "_SELECT" pt0) ! Si tu as plus simple je suis preneur.. * pour ce qui est de command ou vl-cmdf, je ne connais pas la différence en fait
  11. Oui.. mais non : la sélection est faites par la commande justement, d'où le (ssget"_P") placé après. Et donc avec (ssget"_P") il faut purger avant pour le cas d'une sélection vide...
  12. Encore merci Bonuscad, ça m'a effectivement l'air de marcher comme ça. Je l'ai refait avec vla-delete et toujours avec (print(ssget"_P")) avant/après, ça donne ça (pas sûr que ce soit mieux)... ((lambda() (print (ssget "_P")) (entmake '((0 . "POINT") (10 0.0 0.0 0.0) (60 . 0))) (vla-delete (vlax-ename->vla-object (ssname(ssget "_L")0))) (print (ssget "_P")) (princ) )) Pour voir la "purge" de (ssget"_P") il faut d'abord éditer un objet avec une commande (et non pas un déplacement par saisie) D'autre part si on remplace (ssname(ssget "_L")0) par (entlast) ça ne marche plus. Tout ça est plutôt curieux.. et confirme qu'il faut parfois aller chercher des solutions relativement tordues... Pour répondre aux questions de gile.. il s'agit bien de récupérer les objets traités par un appel de commande, l'appel est lancé par mon programme et la récupération (ssget"_P") est lancée par un réacteur commandEnded.. compliqué..
  13. Merci, je n'avais pas pensé à regarder dans l'aide général.. Par contre.. ça ne marche pas chez moi. J'ai testé avec ce code qui renvoie le 1er objet de (ssget "_P") avant et après création point.. chez moi ça ne purge pas ((lambda() (print (ssname (ssget "_P") 0)) (entmake '((0 . "POINT") (10 0.0 0.0 0.0))) (entdel (entlast)) (print (ssname (ssget "_P") 0)) (princ) ))
  14. Merci pour le rappel (ssadd), mais comme je disais je dois utiliser (ssget "_P") au lieu d'un ssget 'normal' (c'est après un appel de commande). La différence est que si la sélection est vide, (ssget) renvoie nil alors que (ssget "_P") renvoie la sélection d'avant, qui n'a rien à voir..
  15. Bonjour à tous Pour des raisons compliquées, je dois utiliser (ssget "_P"). Seulement dans le cas où la sélection utilisateur est vide, cette fonction renvoie tout de même le jeu de sélection précédent au lieu d'un jeu vide... Y a t-il un moyen de purger la sélection précédente ? J'ai essayé (gc) et (vla-update(vlax-get-acad-object)), ça ne marche pas..
  16. Ben oui les guillemets c'est juste pour les variables système, avec getvar-setvar. Mais le setq de ta 1ère ligne renvoie une erreur "nom de la variable incorrect dans SETQ"...
  17. Salut et merci C'est vrai que ça peut aussi marcher avec des entités. J'avais laissé tomber cette méthode que je trouvais pas assez light, et parcequ'il est fréquent d'avoir des entités superposées avec des résolutions différentes (qui ne se superposent pas vraiment), mais peut-être pas avec WHIPARC=1
  18. Bonjour Oui c'est aussi pour les retracer avec grdraw comme dans cette routine C'est bien pour ça : je cherchais la "définition" correspondant à l'environnement courant de façon à retracer les segment pile-poil (sinon ça "bave"). Apparemment cette définition dépend d'un algorithme pas simple, avec les 3 variables dont j'ai parlé (je découvre que la valeur _VIEWRES est justement celle de ArcSmooth, c'est la même). Par contre je découvre aussi que j'étais en WHIPARC=0. Si je passe en 1 les arcs sont de vrais arcs (c'est à dire avec une résolution "infinie"), VIEWRES ne compte plus, et il ne trace plus les courbes avec des segments de résolution ? Je croyais que tout se faisait forcément avec des segments.. En vous remerciant
  19. Déjà il faut enlever les guillemets de "layer_courant" à la 1ère ligne. Mais ensuite il me demande "Calque.dwg", je sais pas trop pourquoi...
  20. Bonjour Est ce que par hasard quelqu'un connaitrait l'algorithme de résolution des objets à lissage arc* ? C'est à dire le nb de segments rectilignes utilisés pour tracer ces segments... (ce n'est pas par curiosité c'est pour éventuellement pouvoir les retracer). Apparemment il y a 3 paramètres : la variable ArcSmooth, le facteur de zoom et la courbure de chaque arc * cercles, arcs, polys2D lissées, LWPolys à courbure et même splines je crois
  21. Hum.. je voudrais pas avoir l'air insistant mais c'est juste pour être sûr : vous me confirmez qu'il n'y a pas moyen d'activer le snap avec grread, finalement ?
  22. @gile : ok j'ai fait tourner votre fonction gr-osmode (perso je n'obtiens pas de trapèze mais un poly fermée avec des sommets doublons, mais bon j'ai vu). C'est bien ce résultat là que je cherchais, sauf que j'essayais avec les réacteurs pour garder le snap d'Autocad (avec un Getpoint par exemple) en remplacant le grread. Vous, vous émulez le snap dans une boucle grread... - parenthèse : ça prouve bien au passage qu'on ne peut pas activer le snap avec grread hein, c'est sûr ? - ça marche, mais l'inconvénient c'est qu'on n'a pas le REPEROBJ qui est bien pratique, et il s'agit quand même pas de tout refaire.. Merci pour vos réponses
  23. Non mais bon je reprends : mon but est de déclencher une fonction quand l'utilisateur bouge la souris à l'intérieur d'une invite getpoint. C'est pour ça que l'idéal serait de pouvoir activer le snap avec grread, seulement on peut pas je crois... @patrick : quand tu dis Oui à la question on ne peut pas faire marcher l'AutoSnap apparemment ça veut dire que Non on peut pas, ou ça veut dire Oui on peut ?? Oui Sinon pour ce qui est des réacteurs certains marchent avec un appel de commande comme (command "_line") et d'autres marchent à moitié... par exemple avec :vlr-sysvarchanged on détecte certaines modifs de variables système mais pas toutes, pas celles sur la vue courante
  24. Salut Je cherche à prendre la main à l'intérieur d'une invite comme celle de getpoint (avec Autosnap) pour pouvoir déclencher d'autres fonctions, par exemple quand on bouge la souris. L'idéal serait de pouvoir activer l'Autosnap avec grread
  25. Bonjour à tous et un grand merci aux membres actifs de ce site qui permettent de trouver à toute heure la réponse aux questions les plus existentielles... J'en ai justement une : Comment faire une invite utilisateur qui permette à la fois d'avoir l'AutoSnap (ACCROBJ et REPEROBJ) et de modifier un objet en même temps, pendant l'invite... Je m'explique : - avec la fonction getpoint par exemple on ne peut pas "rentrer" dans l'invite pour déclencher d'autres fonctions en même temps - avec la fonction grread dans une boucle on peut, par contre on ne peut pas faire marcher l'AutoSnap apparemment - les réacteurs pourrait être une solution en théorie, mais ils ont l'air gelés par les invites comme getpoint et aussi par les appels de commande (command "_line"), ou du moins la majorité (ça a l'air un peu aléatoire et ça peut aussi planter AutoCad) Quelqu'un a t il fait ces essais ? Est ce que vous confirmez que ce n'est pas possible ?
×
×
  • 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é