Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Est-il possible de créer une liste (je parle de liste de points avec matricules), pour que via cette liste je puisse construire des polylignes 2D ou 3D (en accrochage nodal) en tapant simplement les matricules au clavier? je ne sais pas si cela est réalisable en lisp (à moins qu'il existe un commande autoc qui m'échappe)?

Bonne soirée.

Posté(e)

C'est sûrement possible, mais il faudrait un peu plus de précisions :

- la création de la liste se fait-elle à partir d'un fichier, d'une sélection de blocs, ou autre ?

- si la création se fait à partir d'un fichier, comment est il formaté ?

- le choix d'une polyligne 2d ou 3d est il le fait de l'utilisateur ou du aux coordonnées des points ?

- si c'est un poly 2d, faut-il mettre tous les Z à 0 ?

 

[Edité le 2/8/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour (gile),

 

La sélection se fait à partir de blocs topo (pts, mats, alts) se trouvant dans le dessin. Le choix de la polyligne 2D ou 3D et laissé à l'initiative du dessinateur. Je n'avais pas pensé pour le choix de la polyligne 2D de mettre tous les Z à zéro mais cela peu-être une option intéressante.

 

délicad, merci pour ta réponse, j'ai déjà utilisé flashpoints une fois, il y a un bout de temps mais n'est-il limité en utilisation ou dans le temps? je me souviens plus très bien.

Posté(e)

Voilà un premier jet.

 

Pour constituer la liste, il est demandé à l'utilisateur de sélectionner le matricule (attribut) d'un des blocs.

Les matricules doivent être des nombres entiers.

L'utilisateur spécifie ensuite s'il veut dessiner un polyligne 2d ou 3d

Les sommets de la poly 3d s'accrochent aux points d'insertion des blocs.

Les sommets de la poly 2d sont projetés sur le plan parallèle au plan XY du SCU courant qui contient le premier point spécifié.

Il est possible d'annuler un ou plusieurspoint précédemment entés.

L'utilisateur termine la polyligne en tapant "Entrée" ou "c" (Clore).

Il est possible de dessiner plusieurs polylignes (2d ou 3d).

Faire "Entrée" pour quitter la commande.

 

(defun c:matricule (/ mat mlst ss n bloc att lst opt cnt ind pt)
 (if (and
(setq mat (car (nentsel "\nSélectionnez un matricule: ")))
(setq mlst (entget mat))
(= "ATTRIB" (cdr (assoc 0 mlst)))
(= (type (read (cdr (assoc 1 mlst)))) 'INT)
(setq ss (ssget	"_X"
		(list '(0 . "INSERT")
		      (assoc 2 (entget (cdr (assoc 330 mlst))))
		)
	 )
)
     )
   (progn
     (repeat (setq n (sslength ss))
(setq bloc (ssname ss (setq n (1- n)))
      att  (entnext bloc)
)
(while (not (equal (assoc 2 (entget att)) (assoc 2 mlst)))
  (setq att (entnext att))
)
(setq lst (cons	(cons (atoi (cdr (assoc 1 (entget att))))
		      (trans (cdr (assoc 10 (entget bloc))) bloc 1)
		)
		lst
	  )
)
     )
     (while (progn
       (initget "2d 3d")
       (setq opt (getkword
		   "\nSpécifiez le type de polyligne [2d/3d] : "
		 )
       )
     )
(cond
  ((= opt "2d") (command "_pline"))
  ((= opt "3d") (command "_3dpoly"))
  (T (command))
)
(setq cnt 0)
(while (/= 0 (getvar "CMDACTIVE"))
  (setvar "CMDECHO" 0)
  (cond
    ((	    ((	  )
  (setq	ind (getint
	      (strcat
		"\nEntrez le matricule du point"
		(cond
		  ((			  ((			  (T " ou [Clore/annUler]")
		)
		": "
	      )
	    )
  )
  (cond
    ((numberp ind)
     (cond
       ((setq pt (cdr (assoc ind lst)))
	(command "_non" pt)
	(setq cnt (1+ cnt))
       )
       (T
	(princ "\nMatricule non valide.")
       )
     )
    )
    ((= ind "Clore") (command "_C"))
    ((= ind "annUler")
      (command "_U")
      (setq cnt (1- cnt))
    )
    (T (command))
  )
  (setvar "CMDECHO" 1)
)
     )
   )
 )
 (princ)
) 

 

[Edité le 3/8/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é