Aller au contenu

Carboleum

Membres
  • Compteur de contenus

    228
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par Carboleum

  1. Je viens de m'appercevoir que la réponse a déjà été donnée sur l'autre sujet! haaa, saleté de doublons!
  2. à partir du code de wookichu, remplace (ssget) par (car (entsel)), ca marchera mieux ;-) Si tu tiens à ne pas devoir cliquer sur un objet mais sur les points, tu peux créer temporairement la ligne que divide va diviser: (setq ligne (command "_line" (setq p1 (getpoint)) (getpoint p1) "")) (setq ss (entlast)) en fin de routine, n'oublies pas de virer la ligne temporaire...
  3. _copy _all *0,0,0 *0,0,1e99 _copy _all *0,0,0 *0,0,-1e99 ou flatten si tu as les express-tools
  4. Un problème de mémoire j'ai envie de dire. Combien as-tu de RAM?
  5. Carboleum

    numérotation

    Oui, et je ne disais rien d'autre là http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=32295 comme quoi hein! ;-)
  6. La classe!
  7. Carboleum

    numérotation

    ???... en fait, ca ne dépasse pas z, car c'est pour numéroter avec des lettres. Je l'avais prévenu au début. t'es faché ?!??
  8. Carboleum

    numérotation

    On va mettre une petite boucle while alors: (defun c:a++ ( / a++ ent) (defun a+n (n a / l) (vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l))))) (setq *n* (cond (*n*) (0))) (while (progn (initget "Init") (if (= "Init" (setq ent (entsel "Pick text (i for initialisation): "))) (setq *n* 0 ent (entsel "Pick text: "))) ent) (entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car ent)))))))) ass ent))))
  9. Oui Gile, il est plus prudent de l'encapsuler (*error* devient locale) dans la fonction pour ne pas modifier la fonction *error* générale.
  10. Carboleum

    numérotation

    Si quelqu'un pouvais modifier mon lisp ;-) comme suit.... (defun c:a++ ( / a++ ent) (defun a+n (n a / l) (vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l))))) (setq *n* (cond (*n*) (0))) (initget "Init") (if (= "Init" (setq ent (entsel "Pick text (i for initialisation): "))) (setq *n* 0 ent (entsel "Pick text: "))) (entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car ent)))))))) ass ent))) Pour réinitialiser, tapes i puis au lieu de sélectionner un texte.
  11. non, tu parles de champs et d'attributs, déjà, c'est pas la même chose. et la liste de sélection, c'est quoi ? un menu contextuel, j'imagine. c'est trop vague, je suis désolé. a +
  12. Tu as mis un lien vers une image qui est sur ton disque dur, mais, tu sais, on a pas accès à ton disque dur ;-)
  13. Carboleum

    numérotation

    un texte, pas un texte multiple! un texte fait avec la commande _TEXT (quoique dans ce cas, ca aurait du marcher) [Edité le 22/4/2011 par Carboleum]
  14. Carboleum

    numérotation

    Tu avais parlé de texte, hum... (defun c:a++ ( / a++) (defun a+n (n a / l) (vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l))))) (setq *n* (cond (*n*) (1))) (entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel))))))))) ass ent))) Bon, Tu écris un texte (pas un texte multiple), 'Mur A", tu le copie partout où tu veux, puis tu utilise la routine a++ sur chacun des textes; Pour réinitiliser le comptage: (setq *n* nil)
  15. Carboleum

    numérotation

    Chez moi, ca marche, il faut sélectionner un texte qu'est ce que tu sélectionne comme objet ?
  16. Carboleum

    numérotation

    ok! je te fais une fonction complète alors: (defun c:a+ ( / a+ ass ent) (defun a+ (a / l) (vl-list->string (reverse (cons (1+ (car (setq l (reverse (vl-string->list a))))) (cdr l))))) (entmod (subst (cons 1 (a+ (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel))))))))) ass ent))) Tu charges ca, puis tu la lances en tapant "a+", alors tu cliques sur un texte. Mais je vois déjà que tu vas me demander de pouvoir compter... ca arrive ;-)
  17. Carboleum

    numérotation

    Je ne connais pas l'outil de rebcao, mais en lisp, l'un incrément alphanumérique peut se faire comme ceci: (defun a+ (a / l) (vl-list->string (reverse (cons (1+ (car (setq l (reverse (vl-string->list a))))) (cdr l))))) avec un gros bug après le "z" Si tu n'arrives pas à insérer ce code dans l'outil de Rebcao (j'imagine qu'il est en DIESEL, ca va donc pas être facile ;) Sinon, entmod, subst, assoc, entget et entsel sont tes amies. (entmod (subst (cons 1 (a+ (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel))))))))) ass ent)) RMQ, ce dernier code te servira toute ta vie (moyennant qques modifs :-) [Edité le 22/4/2011 par Carboleum]
  18. Carboleum

    Block inséré *U.....

    Ce sont des blocs anonymes crées par une autre application. Le plus simple est (je pense) de les exploser. Je ne connais pas d'autres moyens d'y accéder.
  19. Comme ca, non,,, on a pas assez d'info. Commences par nous montrer ton code et dis nous ce que tu cherches à faire. Tu peux avoir beaucoup plus d'info sur l'erreur en redéfinissant la fonction *error* comme suit: (defun *error* (m) (vl-bt)) à la suite de quoi tu relances le code. Tu verras mieux où se situe l'erreur. à +
  20. Salut Patrick, merci por ta réponse. J'ai en effet fait quelques tests: j'ai mis quelques fichiers sur un répertoire test, puis: (mapcar 'print (acad_strlsort (vl-directory-files "c:/__Lisp/mngt/test"))) "." ".." "__List_handling.lsp" "__Math.lsp" "__String_handling.lsp" "_3d.lsp" "_Make.lsp" "_Matrix.lsp" "_String.lsp" "Ascii.lsp" "B-test.lsp" "bl-macro.lsp" "bl-share.lsp" "expt.lsp" acad_strlsort semble complètement faire fi de la casse des caractères. Ca c'est pas un problème. Par contre, je ne trouve aucune table de caractère (Ascii, ISO-8859-1, Windows-1252, etc.) qui place le underscore avant les chiffres. La page http://autocad.xarch.at/news/faq/misc/strlsort-bug.html donne bien l'ordre de tri utilisé par acad_strlsort, mais pas le nom de la table de caractères (charset) qui lui correspond. J'ai juste besoin de connaitre ce nom, afin d'utiliser ce même charset dans ma programmation PERL. Si quelqu'un a des info là-dessus ?... je suis preneur! [Edité le 21/4/2011 par Carboleum]
  21. Salut à tous, Pour charger nos lisps, nous utilisons un répertoire spécifique et une fonction qui charge tous les *.lsp de ce répertoire. Or cette fonction trie les noms de fichiers via (acad_strlsort). Fonction qui ne trie manifestement pas comme les autre ;-) (cfr http://autocad.xarch.at/news/faq/misc/strlsort-bug.html) Je gère ces lisps via un programme de ma composition écrit en PERL qui me permet de déterminer les dépendances (telle fonction utilise telle fonction, etc.) J'ai besoin de trier les fichiers *.lsp de la même façon qu'AutoCAD ne les trie via (acad_strlsort). De cette façon, en cas de fonctions doublons, j'obtiens facilement, dans mon prog PERL, la dernière version chargée de la fonction en double; et donc la version réellement utilisée par AutoCAD. Bref, pour que PERL trie comme acad_strlsort, j'ai besoin de connaitre la table des caractères qu'utilise acad_strlsort. Est-ce que quelqu'un a des info là-dessus ? Merci d'avance
  22. sisi, tu dois juste taper _wblock au clavier puis sur la touche [entree]
  23. Merci du tuyau, je vais regarder à ca! Il n'est pas possible d'écrire un petit truc, le compiler et l'insérer dans AutoCAD LT si je comprend bien? Du genre C++ vers ARX ou C#?
  24. Carboleum

    passage à une LT

    Bon courage chez les ingé ;-) Ayant un problème similaire, j'ai ouvert un fil ici: http://www.cadxp.com/sujetXForum-32478.htm Tu peux toujours y jeter un petit coup d'oeil @+
  25. Bonjour, Après une décennie de programmation en AutoLISP, on me demande de distribuer quelques fonctions simples mais très utiles pour notre méthode de travail à nos bons client pour qu'il puissent utiliser nos fichiers DWG confortablement. Évidemment, nos clients sont sous LT. :casstet: Ces fonctions sont extrêmement simple, et pourraient être traduites en DIESEL. Malheureusement DIESEL ne permet pas la gestion des erreur (defun *error* (m) blablabla), ce qui n'est pas très propre. Ayant entendu qu'AutoDESK avait bridé l'interpretteur LISP d'ACAD LT mais qu'en compilant quelque chose, peut-être que... , je me suis mis à googeliser à ce sujet. Au fil de mes recherches ma confusion grandissait. LT comprend le LISP mais ne peux pas le charger, LT comprend le FAS mais ne peux pas le charger, pourtant certains fichier support sont en FAS, même chose pour ARX. Les éditeurs de logiciels tiers orientent l'information pour nous "refourguer le camelote". Bref, c'est pas très clair tout ca. Ma question est la suivante: Comment on programme sous AutoCAD LT; quel langage C++, .NET ? comment on charge sous LT ? Faut-il le compiler ? sous quel format ? J'ai lut Visual Studio, qu'est-ce ? J'ai besoin de pistes pour continuer mes recherches. Merci d'avance
×
×
  • 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é