lolb75 Posté(e) le 8 janvier 2013 Partager Posté(e) le 8 janvier 2013 bonjour a tous, et tout d'abord tous mes voeux pour cette nouvelle année. Voici mon problème, j'ai récupéré un fichier ou a la place des points nodaux il y a des ellipses ou des arcs.J'ai besoin d'inserer a la place des points nodaux ou des tcpoint.... Je ne sais pas si il y a une commande ou si il faut un lsp... Merci pour vos réponses. Cordialement Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 8 janvier 2013 Partager Posté(e) le 8 janvier 2013 Hello Tout d'abord une routine de notre indispensable Gilles qui dessine des Cercles sur les Arcs ;; ;; Transformer les Arcs en Cercles par GC ;; (vl-load-com) (defun c:A2C (/ ss n arc) (princ "\nSelectionnez les Arcs ou <Tous> : ") (if (or (setq ss (ssget '((0 . "ARC")))) (setq ss (ssget "_X" '((0 . "ARC")))) ) (while (setq arc (ssname ss (setq n (if n (1+ n) 0)))) (entmake (cons '(0 . "CIRCLE") (vl-remove-if '(lambda (x) (member (car x) '(-1 0 330 5 100 50 51)) ) (entget arc) ) ) ) ;; Ligne suivante a decommenter/commenter si on veut supprimer/garder les arcs ;; (entdel arc) ) ) (princ) ) Puis une routine qui dessine un Point sur les Cercles ;;; Routine pour dessiner un Bloc/Point sur des cercles / points graphiques ;;; Version 2 corrigee pour ne traiter que des cercles ou des points ;;; Commande: C2B (Circle to Block) ou P2B (Point to Block) ou C2P (Circle to Point) ;;; ;;;--------------------------------------------------------------------; ;;; PNT2BLK.LSP - July 2001 - Original Routine ;;; Place a block object in the location of selected point objects. ;;;--------------------------------------------------------------------; ;;; Function: PNT2BLK --> C2B / P2B --> C2P.lsp (Circle to Point) ;;; ;;; function to convert point objects to blocks. ;;; block must be defined in the current drawing ;;; blocks including attdefs will not address the attributes ;;; if the block references attdefs with default or constant values, ;;; these will be populated. ;;;********************************************************************* (defun c:c2p (/ ss ct len e eb bname pt attreqhold echohold) ;(defun c:c2b (/ ss ct len e eb bname pt attreqhold echohold) ;(defun c:p2b (/ ss ct len e eb bname pt attreqhold echohold) ;;;get command echo setting and store it (setq echohold (getvar "CMDECHO")) ;;;set command echo off (setvar "CMDECHO" 0) ;;;get attribute request setting and store it (setq attreqhold (getvar "ATTREQ")) ;;;set attribute request off (setvar "ATTREQ" 0) ;;; get name of block to insert ;;;--- (setq bname (getstring "\nBlock name: ")) ;;;check that the block is defined in the current drawing ;;;--- (if (tblsearch "block" bname) ;;;--- (progn ;;;prompt for point/circle selection ;;; (princ "\nSelect Point objects:") (princ "\nSelect Circle objects:") ;;; --- if point OR circle objects were selected --- (if (setq ss (ssget '((0 . "CIRCLE")))) ;(if (setq ss (ssget '((0 . "POINT")))) (progn ;;;walk through point/circle objects (setq len (sslength ss)) (setq ct 0) (while (< ct len) ;;;for each point (setq e (ssname ss ct)) (setq ct (+ ct 1)) (setq eb (entget e)) ;;;get insert point (setq pt (cdr (assoc 10 eb))) ;;;insert block ;;; (command "_insert" bname pt "" "" "") ;;;Draw a point (command "_point" pt) ) ) (princ "\nNo circle objects selected.") ;(princ "\nNo point objects selected.") ) ;;--- ) ;;--- (princ "\nInvalid, block not defined in drawing.") ;;--- ) ;;;restore command echo setting to stored value (setvar "CMDECHO" echohold) ;;;restore attribute request setting to stored value (setvar "ATTREQ" 0) (princ) ) C'est deja un debut ! Ne pas oublier de "jouer" avec DDPTYPE pour changer le style des Points et donc mieux les voir !? Meilleurs Voeux, lecrabe Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 8 janvier 2013 Partager Posté(e) le 8 janvier 2013 Salut, Un petit truc vite fait pour remplacer les ellipses sélectionnées par des points (defun c:lolb75 (/ n ss el) (if (setq n -1 ss (ssget '((0 . "ellipse"))) ) (while (setq el (ssname ss (setq n (1+ n)))) (entmake (list '(0 . "point") (assoc 10 (entget el)))) (entdel el) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 8 janvier 2013 Partager Posté(e) le 8 janvier 2013 Hello Le Grand Maitre a encore "frappe", je m'incline humblement ... Meilleurs Voeux, lecrabe Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolb75 Posté(e) le 8 janvier 2013 Auteur Partager Posté(e) le 8 janvier 2013 :D merci a tousj'essaie tout ça, cordialement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant