Aller au contenu

-Olivier-

Membres
  • Compteur de contenus

    1 024
  • Inscription

  • Dernière visite

  • Jours gagnés

    17

Tout ce qui a été posté par -Olivier-

  1. Bonjour, Il était inutile de faire 2 postes. Les variables sont EXTMIN et EXTMAX (points 3D) Olivier
  2. C'est donc la ligne (strcat "Repérage" " " commune) que tu doit modifier pour obtenir un nom de calque correct.
  3. Il cherche un calque nommé Repérage "commune" qui ne doit sans doute pas correspondre à son nom exact (je doute que ton nom de calque comporte des guillemets). Utilise tu la fonction getstring pour entrée le nom de la communne ?
  4. Chez moi, cela fonction très bien, donc vérifie la valeur que te renvoi cette variable. Un nom de calque sans espace serait plus simple à utiliser. Olivier
  5. Bonjour asptt9, Ta variable calquecommune est bien enregistrée sous forme de string ? Olivier
  6. -Olivier-

    SCU qui ne bouge pas

    Bonjour, Ta variable OSNAPZ est-elle bien à 0 ? A+ Olivier
  7. Bonsoir, A ma connaissance, il n'est pas possible d'intégrer de la temporisation en lisp, en revanche si tu veux que le programme tienne compte que des objets préselectionnés, regarde la fonction sssetfirst. A tu regardé les différents programmes d'incrémentation de (gile). Encore merci à lui :) Olivier
  8. Bonjour, Bah oui, pourquoi se compliquer. B)
  9. Bonsoir, - Pour connaître le nombre d'élément d'une sélection, il faut utiliser la fonction sslength et non length qui s'utilise pour une liste. - Tu as mis ta condition à l'envers. Je traduis : Si le nombre d'éléments de la sélection est nul alors tu continu le programme sinon tu ne fait rien. Il te faut donc inverser donc avec /= On obtient donc (/= (sslength ss1) 0) ou plus simplement (/= ss1 nil). Pour éviter le prog, tu peux mettre le if et sa condition avant le repeat. - Enfin tu complèter le lisp en mettant une petite alerte du type "pas de blocs avec attribut dans la sélection" en tant que sinon. Bon courage ;) Olivier
  10. Il manque un filtre sur ma sélection voir le lisp de Patrick. Son lisp correspond plus à ta demande car il recherche le premier attribut et non pas l'atribut numgeoref.
  11. Si tu vérifie dans les codes dxf tu veras que le code 3 correspond au tranche de texte au delà de 250 caractères. Pour les textes simples, c'est le code 1 Valeur par défaut (chaîne). Le nombre 12 sous forme de chaîne s'écrit "12" un texte vide sera donc écrit "". Comme tu l'a compris, il te restera a ajouter une condition à l'affichage de la valeur. Du type : Si numgeoref = -1e99 alors pas de valeur valide trouvée sinon affichage de la valeur. Olivier PS : Grillé par Patrick ;)
  12. Bonjour, Effectivement en y repensant ce matin je me suis rendu compte que cela allait poser problème mais comme Patrick_35 avait fait sa propre réponse... Pour t'aider je vais ajouter des commentaires : (defun c:asptt9 (/ entbloc ent numgeoref n) ;lance la fonction asptt9 (setq ss1 (ssget (list '(0 . "INSERT")))) ;créé une sélection des blocs et l'enregistre dans la variable ss1 (setq n 0 ;enregistre la valeur 0 dans la variable n numgeoref -1e99 ;enregistre la valeur -1e99 dans la variable numgeoref ) (repeat (sslength ss1) ;répète autant de fois qu'il y a de blocs dans la sélection (progn (setq entbloc (ssname ss1 n) ;enregistre le code de la nième entité de la sélection ss1 dans la variable entbloc ent (entnext entbloc) ;passe le code de l'entité suivante dans la variable ent ;les codes suivant correspondent aux objets imbriqués dans le bloc en question ) (while (/= (cdr (assoc 0 (entget ent))) "SEQEND") ;répète jusqu'à l'objet sequend dernier objet d'un bloc (if ;si (and (= (cdr (assoc 0 (entget ent))) "ATTRIB") ; l'objet est et un attribut... (= (cdr (assoc 2 (entget ent))) "NUMGEOREF"); et que son étiquette est numgeoref ; ligne à ajouter pour vérifier que l'étiquette n'est pas vide (voir les codes dxf dans l'aide) ) (setq numgeoref (max numgeoref (read (cdr (assoc 1 (entget ent)))))) ;enregistre la valeur la plus grande entre l'ancienne valeur de numgeoref et la nouvelle ); termine la boucle while (setq ent (entnext ent)) ; passe au bloc suivant ) (setq n (1+ n)) ;ajoute 1 à n ) ) (alert (rtos numgeoref)) ; affiche la valeur ;il manque une condition pour vérifier que numgeoref n'est plus à sa valeur initiale (-1e99) (princ) ) S'il tu as des questions... Olivier
  13. Salut Patrick_35, J'étais persuadé qu'il y avait plus simple. Ma réponse me semblait tortueuse. Olivier
  14. Bonjour, Je suis pas sur d'avoir compris la réponse de alala mais en ajoutant (eval avant le (read tu devrais résoudre ton problème. Il y a sans doute plus simple mais je suis pas un grand lispeur. Olivier
  15. Bonjour asptt9, Je suis loin d'être un maître, mais voici un petit bricalage qui devrait correspondre à ta demande. (defun c:asptt9 (/ entbloc ent numgeoref n) (setq ss1 (ssget (list '(0 . "INSERT")))) (setq n 0 numgeoref -1e99 ) (repeat (sslength ss1) (progn (setq entbloc (ssname ss1 n) ent (entnext entbloc) ) (while (/= (cdr (assoc 0 (entget ent))) "SEQEND") (if (and (= (cdr (assoc 0 (entget ent))) "ATTRIB") (= (cdr (assoc 2 (entget ent))) "NUMGEOREF") ) (setq numgeoref (max numgeoref (read (cdr (assoc 1 (entget ent)))))) ) (setq ent (entnext ent)) ) (setq n (1+ n)) ) ) (alert (rtos numgeoref)) (princ) ) Olivier
  16. Bonjour Polyline, Comme tu as une version complète, voir ce poste. Olivier
  17. Après vérification, la méthode à Rimbo modifie la couleur dans l'éditeur. La variable GRIPDYNCOLOR modifie la couleur des grip en dehors de l'éditeur. :mellow: Olivier
  18. Bonjour, Pour info complémentaire la variable s'appelle GRIPDYNCOLOR avec pour valeur initiale 140. Olivier
  19. -Olivier-

    Rondelle en 3D ...

    Bryce, Avec ta méthode, comment fais-tu pour ne pas avoir une dimension de rondelle faussée ? Notamment avec un tube au diamètre plus petit ? :huh: Olivier
  20. -Olivier-

    Rondelle en 3D ...

    Bonjour, Voici quelques images provenant de Solidworks. Pour info voici les étapes de créations : - Enroulement de l'esquisse de la rondelle sur le cylindre - Décallage de la surface - Création de 2 surfaces réglées Inventor propose sans doute des fonctions similaires. Je ne suis pas parvenu à faire la même chose sur Autocad (voir tout de même la commande projeté sur 2 points) mais je fais uniquement de la 2D sur ce logiciel. Olivier
  21. Bonjour Clément.a, Si tu veux récprérer la valeur dans le même fichier autocad, regarde ce lien Olivier
  22. Bonjour, Même avec un traceur 24", tu peux aller jusqu'à 60cm de lergeur. Donc aucun problème pour imprimer du 560x2100. Dans les propriété de l'imprimante tu fait défiler les formats et tu devrais trouver une ligne format personnalisé. (Sans les références du traceur, difficile de dire où). Là, tu pourras enregistrer un format supplémentaire. Avec la plupart de traceur il esiste une option pour que l'impression soit stoppée et le papier coupé lorsqu'il n'y plus rien à imprimer. N'hésite donc pas à enregistrer un format largement trop grand pour pouvoir le réutiliser quelque soit le format. ;) Olivier
  23. Bonjour Christian, Je ne suivais pas ce forum en 2010, mais sur mon ancien poste moins puissant, il m'est arrivé d'avoir des problèmes avec les présentations sur des fichiers reçus. Ceci étais souvent du à l'insertion de logos en tant qu'objet OLE. Plusieurs centaines de ko par image, inserée bien entendu hors blocs. Au bout de 20 ou 30 préentations, le fichier deviens inutilisable. Olivier PS : Je ne sais pas si cela correspond au problème initial.
  24. Bonjour philous2, Voir la variable ATTDIA, si cela ne suffit pas il faut resynchroniser ton attribut : commande ATTSYNC Olivier
  25. -Olivier-

    Réalisé d'un dévelopé

    Voir ceci
×
×
  • 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é