Aller au contenu

Bruno_T

Membres
  • Compteur de contenus

    31
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bruno_T

  1. bonjour, voici une solution pour l'union (trés peu testée) (defun union_bto (lsta lstb / lst lstU a b) (setq lst (vl-sort (append lsta lstb) '(lambda (a b) (< (car a) (car b))))) (setq a (car lst)) (foreach b (cdr lst) (if (>= (cdr a) (1- (car b))) (setq a (cons (min (car a) (car b))(max (cdr a) (cdr b)))) (setq lstU (cons a lstU) a b) ) ) (reverse (cons a lstU)) ) example (setq lst1'((1 . 5) (8 . 10) (20 . 20) (35 . 60) (62 . 62)) lst2 '((2 . 2) (4 . 6) (9 . 30) (32 . 33)) ) (union_bto lst1 lst2) return : ((1 . 6) (8 . 30) (32 . 33) (35 . 60) (62 . 62)) L’intérêt du stockage sous la forme '((1 . 6) (8 . 30)....) est d'avoir des listes compactes. Gilles, dans ta dernière solution, tu proposes de les "décompacter" pour les "recompacter", cela se fait en mémoire mais ça me semble antagoniste avec le fait d'avoir des listes compactes qui offrent aussi l'avantage de s'affranchir de devoir balayer tous les nombres. On utilise ces astuces de stockage pour de très grandes listes, comme tu le proposes dans tes premières solutions, je pense qu’on a tout intérêt à éviter de les balayer totalement. Bruno Toniutti [Edité le 20/9/2008 par Bruno_T]
  2. bonjour, pour faire une sélection globale des blocs dont les noms commencent par "SYN_TAB" : [b] (ssget "X" '((0 . "insert") (2 . "SYN_TAB*")))[/b] bon week Bruno Toniutti [Edité le 20/9/2008 par Bruno_T] [Edité le 20/9/2008 par Bruno_T]
  3. bonjour, Les fichiers dwl (et dwl2) n'ont pas de rapport avec le fait qu'un fichier soit reconnu comme verrouillé par une autre session d'AutoCAD. Ils ne participent pas au système de verrouillage d'un fichier. Ce sont simplement des fichiers d'informations liés à l'arx Whohas qui peut être déchargé sans problème via la commande arx. Même sans ces fichiers, le système de verrouillage fonctionne. La commande Whohas vient des express tools, elle est depuis quelques versions d'AutoCAD pleinement intégré à celui-ci. Depuis les AutoCAD 200X, le verrouillage des dwg est géré par l'OS. Mais as-tu trouvé une solution à ton intéressant problème ? Bruno Toniutti
  4. Evgeniy, superbe :) , ça élimine environ 75% des setq Bruno Toniutti
  5. Bruno_T

    ZoomObject

    belle fonction, depuis longtemps, avant l'apparition de l'option objet de la commande zoom, il y a acet-ss-zoom-extents qui fait partie des express tools, elle n'était pas documentée, pas même présente dans google, mais je n'ai pas vérifié depuis longtemps. exemple d'utilisation : (acet-ss-zoom-extents (ssget)) cependant après quelques tests, la tienne me semble correcte en particulier avec un scu non coplanaire à la vue alors qu'acet-ss-zoom-extents est approximative dans ce cas. Bruno Toniutti
  6. bonjour, je pense que le reverse n'est pas nécessaire dans l'algo de Patrick (defun deb_pat2 (lst n / i res) (setq i -1) (repeat n (setq res (cons (nth (setq i (1+ i)) lst) res)) ) (reverse res) ) en commençant par le dernier élément du résultat voulu et en faisant évoluer i avec le pas -1 : (nth comme append est couteux en temps) (defun deb_bto1 (lst n / i res) (setq i n) (repeat n (setq res (cons (nth (setq i (1- i)) lst) res)) ) ) ceci dit, je n'ai guère mieux que la solution de gile, c'est tout simple : (defun deb_BTO3 (l n / r) (repeat n (setq r (cons (car l) r)) (setq l (cdr l)) ) (reverse r) ) j'utilise souvent ce bentchmark, il faut savoir que les résultats sont dépendants de l'ordre dans lequel les fonctions sont testées, il permet de dégager les meilleurs solutions mais pas d'avoir la photo finish entre elles :) résultats : liste de 10 éléments : Benchmarking .................Elapsed milliseconds / relative speed for 16384 iteration(s): (DEB_GILE1 LST1 4).....1281 / 1.04 (DEB_GILE2 LST1 4).....1281 / 1.04 (DEB_BTO3 LST1 4)......1328 / 1 liste de 100 éléments : Benchmarking ................Elapsed milliseconds / relative speed for 8192 iteration(s): (DEB_BTO3 LST2 40)......1172 / 1.04 (DEB_GILE2 LST2 40).....1204 / 1.01 (DEB_GILE1 LST2 40).....1219 / 1 liste de 1000 éléments : Benchmarking ..............Elapsed milliseconds / relative speed for 2048 iteration(s): (DEB_BTO3 LST3 300)......1391 / 1.04 (DEB_GILE1 LST3 300).....1453 / 1 (DEB_GILE2 LST3 300).....1453 / 1 liste de 10000 éléments : Benchmarking ...........Elapsed milliseconds / relative speed for 256 iteration(s): (DEB_BTO3 LST4 3000)......1672 / 1.06 (DEB_GILE1 LST4 3000).....1766 / 1 (DEB_GILE2 LST4 3000).....1766 / 1 ce ne sont pas des différences significatives. Bruno Toniutti
×
×
  • 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é