Aller au contenu

chti52

Membres
  • Compteur de contenus

    154
  • Inscription

  • Dernière visite

Tout ce qui a été posté par chti52

  1. chti52

    sélection de lignes

    Bonsoir j'ai essayé multi_hatch-45 mais çà ne fonctionne qu'avec une seule entité à la fois. Lorsque je saisis toutes les polylignes en même temps j'ai ce message Je te remercie BonusCad pour cette aide mais ma commande fonctionne très bien, il faut simplement que je décompose les polylignes et les recrée après avoir supprimé les vecteurs nuls avant de la mettre en application. Si je ne les décompose pas, le prog me trace toutes les hachures à 45° dans le SCU général. Le but de ma requête je l'ai expliqué plus haut, c'est de charger mes types de ligne, de faire un zoom étendu car je n'ai pas le dessin à l'écran lorsque je l'ouvre, de saisir toutes les polylignes du calque, de les décomposer, de saisir les lignes de longueur nulle, de recréer les polylignes fermées, de changer la couleur et le type de ligne de certains calques, d'en créer un pour les hachures, de hachurer les polylignes fermées qui iront directement se mettre dans le calque hachures, de purger le tout et enfin de faire une sauvegarde, tout çà avec un seul programme car étant donné le nombre important de planches cadastrales à modifier je ne serai pas au bout de mes peines d'autant que je dois remettre çà tous les ans. J'essaie quand même de mon coté de monter ce prog. Je vous suis très reconnaissant pour l'aide que vous m'apportez.
  2. chti52

    sélection de lignes

    Merci encore pour vos réponses aussi rapide. Ce que j'essaie de faire est un travail fastidieux que je voudrais rendre moins pénible avec une seule commande. Je reçois chaque année de l'Hôtel des impôts des fichiers de toutes les sections cadastrales de notre communauté de commune et je dois transformer ceux-ci en changeant les couleurs des calques, les types de ligne et ajouter des hachures sur les bâtiments. Pour ces dernières j'ai un Lisp qui fonctionne très bien car il m'oriente ces hachures à 45° par rapport à chaque bâtiment à l'aide du SCU. Le problème est qu'avec ces planches cadastrales le SCU ne tourne pas et j'ai découvert pourquoi. Lorsque je décompose les polylignes des bâtiments je me retrouve, pour un bâti rectangulaire, avec 5 lignes dont une de longueur 0 et c'est ce dernier segment qui fait perdre la boule au SCU. Après l'avoir supprimé, je reforme mes polylignes avec la commande Pedit et seulement à ce moment là le SCU refonctionne. Toutes ces manips me prennent du temps et je voudrais exécuter un programme qui me fasse tout d'un seul clic. J'ai commencé à faire quelques petites manips qui fonctionnent seules mais je n'arrive pas à les assembler pour ne faire qu'une seule commande. D'abord je créé un nom pour ma commande [surligneur](defun c:NOM() [/surligneur] Je charge tous les types de ligne [surligneur](command"-typeligne""ch" "*" """""""")[/surligneur] puis je fais un ZOOM étendu [surligneur](command "zoom""et")[/surligneur] je sélectionne tous les objets du calque "3BATIDUR" en l'occurence des polylignes puisqu'il n'y a que çà dans cette couche. [surligneur](setq a(ssget "X" '((8 . "3BATIDUR"))))[/surligneur] que je décompose [surligneur](command "decompos" a)[/surligneur] Ensuite je sélectionne toutes les lignes de longueurs égales à 0 (programme que Gile m'a gentiment réalisé et dont j'ai modifié la longueurs. [surligneur](setq a (ssget "_X" '((0 . "LINE")))) (setq n 0) (while (setq l (ssname a n)) (if (= (distance (cdr (assoc 10 (entget l))) (cdr (assoc 11 (entget l))) ) 0 ) (setq n (1+ n)) (ssdel l a) ) )[/surligneur] puis je les supprime [surligneur](command "del" a)[/surligneur] Je resélectionne à nouveau les lignes du calque 3BATIDUR que je retransforme en polyligne. [surligneur](setq a(ssget "X" '((8 . "3BATIDUR")))) (commad "pedit" "m" a "j" "" "t")[/surligneur] Je change la couleur des couches [surligneur](setvar "CLAYER" "3BATIDUR") (command "calque""couleur""7""""")[/surligneur] et je créé la couche 3HACHURES avec sa couleur [surligneur](command "calque" "N""3HACHURES""") (setvar "CLAYER" "3HACHURES") (command "calque""couleur""8""""ch""0""")[/surligneur] Je trace mes hachures sur le bati [surligneur](setq objsel (ssget "X" '((8 . "3BATIDUR")))) (setq calquecourant (getvar "CLAYER")) (setvar "CLAYER" "3HACHURES") (setq n 0) (repeat (sslength objsel) (setq nomobj (ssname objsel n)) (command "scu" "ob" nomobj) (command "hachures""U""50""0.7" "n" nomobj "") (setq n (+ 1 n)) ) (command "scu" "g") (setvar "CLAYER" calquecourant)[/surligneur] puis je purge le dessin du superflu [surligneur](command "purge" "tout")[/surligneur] Enfin j'ajoute un prompt pour le chargement de l'application [surligneur](princ "\nTaper «NOM» pour lancer l'éxécution du programme.") (princ)[/surligneur] Tous ces prog fonctionnent indépendemment mais lorsque je veux les assembler, bien que le chargement de l'application s'effectue correctement, çà ne veux pas aller jusqu'au bout. Le chargement des types de ligne et le Zoom s'effectuent correctement puis plus rien . Pourriez-vous me dégrossir ce truc car je n'arrive pas à comprendre d'où vient l'erreur. Je rappelle que je suis novice Une nouvelle fois Merci d'avance.
  3. chti52

    sélection de lignes

    Merci Gile J'aurais pu chercher longtemps, je n'aurais jamais penser à une conditionnelle. Merci encore
  4. Bonjour à tous Je suis novice avec le LISP aussi je m'adresse à vous pour m'aiguiller. Lorsque je veux saisir tous les objets d'un calque, par exemple, j'écris: [surligneur](setq a (ssegt "x" '((8 . "nom du calque"))))[/surligneur] de même pour les polylignes avec le code 6 et le nom du type de ligne ; pour çà pas de problème, mais lorsque que je veux sélectionner toutes les lignes ayant la même longueur, là je n'y arrive pas. Quelqu'un aurait t'il la solution ? merci d'avance.
  5. Bonjour Je suis débutant avec le LISP et je voudrais créer une commande LSP qui permette à un ou plusieurs objets d'être déplacé en altitude : d'un Z=x vers un Z=0 J'ai commencé par saisir l'objet : (setq a(ssget)) Puis saisir le point de base : (setq b(getpoint)) Et enfin récupérer le X et le Y en créant une liste : (setq c(list(car b)(cadr b))) Celà fonctionne bien sur la ligne de commande d'AutoCAD mais je n'arrive pas à les mettre en application. Après le " Defun " je ne sais par quel bout commencer. Qui pourrais venir à mon secours? 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é