Aller au contenu

Insertion de bloc (point topo)


Messages recommandés

Posté(e)

Bonjour à tous !

 

Je suis actuellement sur un lisp qui, pour chaque sommet d'une polyligne, crée un point topo sur un axe.

 

j'arrive sans soucis à sectionner la PL, récupérer les sommets, et créer les points sur l'axe.

 

Problème, je crée des points simples, et je voudrais insérer des blocs topo, avec 3 attributs, dont voici des dxf type (blocs déjà existants) :

 

((-1 . <Nom d'entité: 7ff761bfc430>) (0 . INSERT) (330 . <Nom d'entité: 7ff7621069f0>) (5 . 3F84B) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . #8.Contre-profils) (100 . AcDbBlockReference) (66 . 1) (2 . TCPOINT) (10 13279.8 4556.91 -259.772) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))
((-1 . <Nom d'entité: 7ff761bfc3e0>) (0 . INSERT) (330 . <Nom d'entité: 7ff7621069f0>) (5 . 3F846) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . #8.Contre-profils) (100 . AcDbBlockReference) (66 . 1) (2 . TCPOINT) (10 13279.8 4557.91 -259.772) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

 

Je n'arrive pas à générer mon entmake pour ça. Soit cela ne fait rien, soit cela me fait des erreurs (trop d'argument ou code incorrect, etc...).

 

En fouillant, j'ai trouvé des infos dans des vieux sujets, mais cela ne m'a pas aidé (hors sujet, ou liens cassés, etc...)

 

un coup de main ne serait pas de refus ;o) s'il vous plait ...

 

Voici ce que j'ai essayé :

 

version avec attributs

(defun TCPoint (pt)
       (entmake  (list '(0 . "BLOCK")            ; required
            '(100 . "AcDbEntity")     ; recommended
            '(100 . "AcDbBlockBegin") ; recommended
             (cons 2 TCPOINT)         ; required
            '(8 . "0")                ; recommended
            '(70 . 2)                 ; required [NOTE 0 if no attributes] 
            '(10 pt)         ; required
     ))

   (entmake '((0 . "ATTDEF")  ;***
              (100 . "AcDbEntity") 
              (67 . 0) 
              (410 . "Model") 
              (8 . "0") 
              (100 . "AcDbText") 
              (10 0 0 0)  ;***
              (40 . 0.1)  ; Text height ;***
              (1 . "")       ; Default value (string)  ;***
              (3 . "ELEV...."); Prompt string  ;***
              (2 . "ELEV")  ; Tag string ;***
              (50 . 0.0)    ; Text rotation 
              (41 . 0.7) 
              (51 . 0.0) 
              (7 . "Standard")  ; Text style ;***
              (71 . 0)   
              (72 . 1)        ; Horizontal text justification
              (11 0 0 0)  ;***
              (100 . "AcDbAttributeDefinition") 
              (70 . 0)            ;Attribute flags: CAB -can cause problems with entmake INSERT if they are incorrect
                                  ;1 = Attribute is invisible (does not appear).
                                  ;2 = This is a constant attribute.
                                  ;4 = Verification is required on input of this attribute.
                                  ;8 = Attribute is preset (no prompt during insertion).
              (73 . 0) 
              (cons 210 (list 0 0 1)) 
              (74 . 2)
              (cons 6 "BYLAYER"))) 
                 

   (entmake (list '(0 . "ENDBLK")         ; required
                  '(100 . "AcDbBlockEnd") ; recommended
                  '(8 . "0")              ; recommended
                  ))
)

 

version sans attributs

(defun TCPoint2 (pt)
(entmakex (list (cons 0 "INSERT")
	       (cons 2 "TCPOINT") 
	       (cons 330 "7ff7621069f0")
	       (cons 100 AcDbEntity)
	       (cons 67 0)
	       (cons 410 Model)
	       (cons 8 #8.Contre-profils)
	       (cons 100 AcDbBlockReference)
	       (cons 66 1)
	       (cons 10 13279.8 4556.91 -259.772)
	       (cons 10 pt)
	       (cons 41 1.0)
	       (cons 42 1.0)
	       (cons 43 1.0)
	       (cons 50 0.0)
	       (cons 70 0)
	       (cons 71 0)
	       (cons 44 0.0)
	       (cons 45 0.0)
	       (cons 210 0.0 0.0 1.0)
	))
 )

 

Sans succès dans les 2 cas... je ne vois pas ce qui me bloque...

 

j'en appel aux experts du forum... surement que votre œil exercé percevra mon problème en quelques secondes...

 

A votre dispo si besoin d'infos complémentaires...

Je n'ai pas mis le code complet concernant les PL, l'axe, tout ça... pour ne pas alourdir la lecture.

Demander si vous le voulez... Je le mettrais à la fin un fois le prob réglé si cela peut servir pour d'autres.

 

Merci par avance,

Ju.

Posté(e)

Bonjour

 

Déjà en tout premier point, je trouve que choisir "TCPOINT" comme nom de bloc est une mauvaise idée!

Pourquoi? Parce ce que COVADIS utilise dèjà ce type de nom de bloc, donc on peut considérer ce nom de bloc comme réservé (pour éviter des soucis à ceux qui utilisent Covadis)

 

Autrement dans ton code, pas mal d'erreur:

On ne fourni pas le code 330 (ni le 5 d'ailleurs: handle), celui-ci est directement pris en charge par Autocad lors de la création par (entmake)

On construit les codes chaines avec des guillemet ex: (cons 8 "toto")

Et PRINCIPALEMENT tu as oublier de construire ton entité complexe: (cons 0 "INSERT") ne suffit pas si tu as (66 . 1) dans ta définition du bloc, il te faut aussi (cons 0 "ATTRIB"): autant de fois qu'il y a d'attribut suivi à la fin de (cons 0 "SEQEND")

 

ce qui pourrait donner:

(if (not (tblsearch "BLOCK" "TCPOINT"))
 (progn
   (entmake
     '((0 . "BLOCK") (100 . "AcDbEntity") (100 . "AcDbBlockBegin") (2 . "TCPOINT") (70 . 2) (8 . "0") (62 . 256) (6 . "ByLayer") (370 . -2) (10 0.0 0.0 0.0))
   )
;|Si un point est désiré, partie à décommenter
   (entmake
     '(
     (0 . "POINT")
     (100 . "AcDbEntity")
     (67 . 0)
     (410 . "Model")
     (8 . "0")
     (62 . 0)
     (100 . "AcDbPoint")
     (10 0.0 0.0 0.0)
     (210 0.0 0.0 1.0)
     (50 . 0.0)
     )
   )
|;
   (entmake
     '(
     (0 . "ATTDEF")
     (100 . "AcDbEntity")
     (67 . 0)
     (410 . "Model")
     (8 . "0")
     (100 . "AcDbText")
     (10 0.0 0.0 0.0)
     (40 . 0.1)
     (1 . "")
     (50 . 0.0)
     (41 . 0.7)
     (51 . 0.0)
     (7 . "STANDARD")
     (71 . 0)
     (72 . 1)
     (11 0.00 0.00 0.0)
     (210 0.0 0.0 1.0)
     (100 . "AcDbAttributeDefinition")
     (280 . 0)
     (3 . "ELEV....")
     (2 . "ELEV")
     (70 . 0)
     (73 . 0)
     (74 . 2)
     (280 . 0)
     )
   )
   (entmake '((0 . "ENDBLK") (100 . "AcDbBlockEnd") (8 . "0") (62 . 256) (6 . "ByLayer") (370 . -2)))
 )
)

(defun TCPoint2 (pt / )
 (entmake
   (append
     '(
     (0 . "INSERT")
     (100 . "AcDbEntity")
     (67 . 0)
     (410 . "Model")
     (8 . "#8.Contre-profils")
     (100 . "AcDbBlockReference")
     (66 . 1)
     (2 . "TCPOINT")
     (41 . 1.0)
     (42 . 1.0)
     (43 . 1.0)
     (50 . 0.0)
     (70 . 0)
     (71 . 0)
     (44 . 0.0)
     (45 . 0.0)
     )
     (list (cons 10 pt) '(210 0.0 0.0 1.0))
   )
 )
 (entmake
   (append
     '(
     (0 . "ATTRIB")
     (100 . "AcDbEntity")
     (67 . 0)
     (410 . "Model")
     (8 . "#8.Contre-profils")
     (100 . "AcDbText")
     )
     (list (cons 10 pt))
     '(
     (40 . 0.7)
     )
     (list (cons 1 (rtos (caddr pt) 2 2)))
     '(
     (50 . 0.0)
     (41 . 0.7)
     (51 . 0.0)
     (7 . "STANDARD")
     (71 . 0)
     (72 . 1)
     )
     (list (cons 11 pt))
     '(
     (210 0.0 0.0 1.0)
     (100 . "AcDbAttribute")
     (280 . 0)
     (2 . "ELEV")
     (70 . 0)
     (73 . 0)
     (74 . 2)
     (280 . 0)
     )
   )
 )
 (entmake '((0 . "SEQEND") (62 . 256) (6 . "ByLayer") (370 . -2)))
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour à tous !

 

Et Merci Bonuscad !

 

désolé pour la réponse tardive... j'avais une erreur SQL quand je venais sur cadxp.com (An error occured with the SQL server: mySQL query error: DELETE FROM ipb_sessions WHERE member_id=[caché] OR running_time < 1441871826 This is not a problem with IP.Board but rather with your SQL server. Please contact your host and copy the message shown above.

 

J'ai mis quelques jour à comprendre que le problème ne venait pas du site, mais de mon poste. (validé en essayant sur un autre ordi).

 

Pour ta remarque du nom TCPOINT, effectivement, ce sont bien des points Covadis que je dois manipuler, mais à partir de postes qui ne l'ont pas (les dessinateurs ont Cov, mais pas les techniciens). Actuellement ils font les manipulations à la main (dessin d'une droite pour identifier l'endroit de l'axe où mettre le point, copie d'un point Cov existant et placement aux endroits voulus sur l'axe et le contre profil si existant, et modifications des attributs à la main, ... puis on recommence pour les autres sommet d'une polyligne terrain naturel... donc beaucoup de points...)

 

Ce sont donc bien des copies de points covadis... cela pose problème avec entmake ? Covadis ne les reconnaîtraient pas si le fichier retourne aux dessinateurs ?

 

Pour tes autres remarques, effectivement, je ne maîtrise pas entmake, je découvre au fur et à mesure ;o)

le ATTRIB autant de fois que d’attribut, je l'avais compris, mais je n'arrivais même pas avec un seul exemplaire, donc je souhaitais valider avec un attribut avant de dupliquer et modifier.

 

J'essaie tout cela de suite.. Merci encore pour ton aide...

Ju.

 

Bonjour

 

Déjà en tout premier point, je trouve que choisir "TCPOINT" comme nom de bloc est une mauvaise idée!

Pourquoi? Parce ce que COVADIS utilise dèjà ce type de nom de bloc, donc on peut considérer ce nom de bloc comme réservé (pour éviter des soucis à ceux qui utilisent Covadis)

 

Autrement dans ton code, pas mal d'erreur:

On ne fourni pas le code 330 (ni le 5 d'ailleurs: handle), celui-ci est directement pris en charge par Autocad lors de la création par (entmake)

On construit les codes chaines avec des guillemet ex: (cons 8 "toto")

Et PRINCIPALEMENT tu as oublier de construire ton entité complexe: (cons 0 "INSERT") ne suffit pas si tu as (66 . 1) dans ta définition du bloc, il te faut aussi (cons 0 "ATTRIB"): autant de fois qu'il y a d'attribut suivi à la fin de (cons 0 "SEQEND")

 

ce qui pourrait donner:

...

Posté(e)
Ce sont donc bien des copies de points covadis... cela pose problème avec entmake ? Covadis ne les reconnaîtraient pas si le fichier retourne aux dessinateurs ?

 

Cela ne pose pas de problème SI tu garde exactement la MÊME structure que le bloc initial de Covadis.

Par contre si les attributs ne sont pas du même nombre et comporte des étiquettes différentes, j'ai bien peur que cela cause des soucis si Covadis doit traiter ces points ultérieurement.

 

exemple de ton code:

(2 . "ELEV") ; Tag string ;***

Cette étiquette n'existe pas dans le bloc TCPOINT originel de Covadis.

 

Je pense que Géomédia irait dans le même sens que moi...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Attention toutefois si la valeur de l'attribut MAT existe deja dans une autre inszrtion de bloc dans le fichier,cela risque de poser des problemes parla suite aux utilisateurs ayant covadis (doublons)...

 

Cordialement

Thierry Garré

 

Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap

Posté(e)

Merci vous deux pour vos précisions !

 

J'ai eu enfin un peu de temps pour retravailler ce projet.

 

J'ai bien recréé la structure du point, et cela fonctionne.

j'ai changé le nom du bloc point pour éviter d'éventuels soucis... ce n'est pas gênant pour les techniciens.

 

Quelques questions en vrac, si vous avez une réponse :

 

- je voudrais changer la couleur de chaque élément, pour faciliter la lecture (comme dans bloc COV). Quel éléments dois-je modifier ? (je pensais à l'élément 62, mais ça ne change rien en test. Faut-il que je rajoute ce code 62 dans chaque attribut, et plutôt dans la définition du bloc ? ou l'appel ?)

 

- le programme doit fonctionner pour 2 types de fichiers, un en échelle verticale 1 , l'autre en échelle verticale 0.2. Vu que je me sers de la position en X et Y pour calculer mes longueurs, c'est sensible à l'échelle. Est-ce qu'il existe une variable autocad que je peux utiliser pour mon calcul (pour éviter de la demander à chaque fois) ?

 

Voici le code que j'ai utilisé pour ça :

 

(non optimisé pour calcul, et en cours de modif pour la gestion des calques en fonction axe ou profil)

 

Merci pour votre aide !

 

(defun c:CreerPTPLS()
(setq valeurPC nil)
(setq plTN nil) ;polyligne Terrain Naturel
(setq Axe nil) ;Ligne Axe

(setq pt nil) ;point en cours, issue de la liste TN
(setq numPt 1) ;numéro de point qui va être saisi dans l'attribut Matricule
(setq distanceAxe 0)

(setq calqAxe "0")	; perp verticales
(setq calqCP  "B_TOPOPT") 	; Altitudes terrain

;saisie de la valeur du Point de Comparaison
(print)
(if(not(setq valeurPC (getreal "Entrez la valeur du PC : (0)" )))
  (setq valeurPC 0)
)

; demande Distance
(if(not(setq distanceAxe (getreal "Entrez la distance par rapport à l'axe (0 sur l'axe ; positif pour gauche ; négatif pour droite): (0)" )))
  (setq distanceAxe 0)
)

 	; demande Distance
(if(not(setq echelle (getreal "Entrez l'echelle verticale: (0.2)" )))
  (setq echelle 0.2)
)

; demande N° de départ
(if(not(setq numPt (getreal "Entrez le numéro de point initial : (1)" )))
  (setq numPt 1)
)

; selection PL
;selection PolyligneTN
(setq plTN (entsel "\nSelectionnez la polyligne: "))
(setq somPlTN (listeSommet plTN))

 	;selection point 0
(setq RefPC (entsel "\nSelectionnez la ligne de référence PC (Altitude = PC) : "))
;récup abscisse et ordonnée
(setq ptRefX (caar (massoc 10 (entget (car RefPC)))))
(setq ptRefY (car (cdr (car (massoc 10 (entget (car RefPC)))))))

; selection Axe
(setq axe (entsel "\nSelectionnez l'axe "))
; récup abscisse et ordonnée
(setq ptXAxe (caar (massoc 10 (entget (car axe)))))
(setq ptYAxe (car (cdr (car (massoc 10 (entget (car axe)))))))
 
; premier point
(setq premierPt (car sompltn)) ; on prend le premier point du TN
(setq ancienPt (car sompltn)) ; contiendra le point précédent du TN

; définition du bloc
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;	(if (not (tblsearch "BLOCK" "TCPOINT")) ;en phase de test, donc re-définition à chaque fois
;	  (progn
    (entmake
	'(
	(0 . "BLOCK")
	(100 . "AcDbEntity")
	(100 . "AcDbBlockBegin")
	(2 . "TCPOINTTECH")
	(70 . 2)
	(8 . "0")
	(62 . 1);256)
	(6 . "ByLayer")
	(370 . -2)
	(10 0.0 0.0 0.0)
	)
    )
    (entmake
      '(
      (0 . "POINT")
      (100 . "AcDbEntity")
      (67 . 0)
      (410 . "Model")
      (8 . "0")
      (62 . 0)
      (100 . "AcDbPoint")
      (10  0.0 0.0 0.0)
      (210 0.0 0.0 1.0)
      (50 . 0.0)
      ))

    (entmake
      '(
      (0 . "ATTDEF")
      (100 . "AcDbEntity")
      (67 . 0)
      (410 . "Model")
      (8 . "0")
      (100 . "AcDbText")
      (10 0.0 0.0 0.0); ptX (+ ptYAxe (/ distanceAxe 0.2 )) Altitude)
      (11 0.00 0.00 0.0)
      (40 . 0.1)
      (1 . "")
      (50 . 0.0)
      (41 . 0.7)
      (51 . 0.0)
      (7 . "STANDARD")
      (71 . 0)
      (72 . 1)
      (210 0.0 0.0 1.0)
      (100 . "AcDbAttributeDefinition")
      (280 . 0)
      (3 . "MAT")
      (2 . "MAT")
      (70 . 0)
      (73 . 0)
      (74 . 2)
      (280 . 0)
      ))
    (entmake
      '(
      (0 . "ATTDEF")
      (100 . "AcDbEntity")
      (67 . 0)
      (410 . "Model")
      (8 . "0")
      (100 . "AcDbText")
      (10 0.0 0.0 0.0); ptX (+ ptYAxe (/ distanceAxe 0.2 )) Altitude)
      (11 0.00 0.00 0.0)
      (40 . 0.1)
      (1 . "")
      (50 . 0.0)
      (41 . 0.7)
      (51 . 0.0)
      (7 . "STANDARD")
      (71 . 0)
      (72 . 1)
      (210 0.0 0.0 1.0)
      (100 . "AcDbAttributeDefinition")
      (280 . 0)
      (3 . "COD")
      (2 . "COD")
      (70 . 0)
      (73 . 0)
      (74 . 2)
      (280 . 0)
      ))
    (entmake
      '(
      (0 . "ATTDEF")
      (100 . "AcDbEntity")
      (67 . 0)
      (410 . "Model")
      (8 . "0")
      (100 . "AcDbText")
      (10 0.0 0.0 0.0); ptX (+ ptYAxe (/ distanceAxe 0.2 )) Altitude)
      (11 0.00 0.00 0.0)
      (40 . 0.1)
      (1 . "")
      (50 . 0.0)
      (41 . 0.7)
      (51 . 0.0)
      (7 . "STANDARD")
      (71 . 0)
      (72 . 1)
      (210 0.0 0.0 1.0)
      (100 . "AcDbAttributeDefinition")
      (280 . 0)
      (3 . "ALT")
      (2 . "ALT")
      (70 . 0)
      (73 . 0)
      (74 . 2)
      (280 . 0)
      )
    )
    (entmake '((0 . "ENDBLK") (100 . "AcDbBlockEnd") (8 . "0") (62 . 256) (6 . "ByLayer") (370 . -2)))
;	  )
;	)
  ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
;tant que on a des points dans le TN
(while (setq pt (car sompltn)) ;on prend le point du TN
	;récup abscisse et ordonnée et calcul Altitude
  	(setq ptX (car pt)) ;1er ele
  	(setq ptY (car(cdr pt))) ; 2me ele
  	(setq altitude (+ (* 0.2 (- ptY ptRefY)) valeurPC))

	; création point sur Axe pour chaque sommet de PL supérieure
	;(point (list ptX (+ ptYAxe (/ 0.2 distanceAxe)) Altitude)) ;en fait, copie d'un point (bloc) existant initial afin de retrouver un bloc déjà existant, et déplacement au point voulu, 
	;(TCPoint2 (list ptX (+ ptYAxe (/ distanceAxe 0.2 )) Altitude))
  	;(nbl(list ptX (+ ptYAxe (/ distanceAxe 0.2 )) Altitude))
  	(setq ptB (list ptX  (+ ptYAxe (/ distanceAxe echelle )) Altitude)) ;point insertion Block
  	(setq ptBM (list (- ptX 0.5) (- (+ ptYAxe (/ distanceAxe echelle )) 0.0) Altitude)) ;point insertion Matricule
  	(setq ptBC (list (+ ptX 1.0) (+ (+ ptYAxe (/ distanceAxe echelle )) 0.5) Altitude)) ;point insertion Code
  	(setq ptBA (list (+ ptX 1.0) (- (+ ptYAxe (/ distanceAxe echelle )) 0.5) Altitude)) ;point insertion Altitude
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	  (entmake
	    (append
	      '(
	      (0 . "INSERT")
	      (100 . "AcDbEntity")
	      (67 . 0)
	      (410 . "Model")
	      (8 . "#8.Contre-profils")
	      (100 . "AcDbBlockReference")
	      (66 . 1)
	      (2 . "TCPOINTTECH")
	      (41 . 1.0)
	      (42 . 1.0)
	      (43 . 1.0)
	      (50 . 0.0)
	      (70 . 0)
	      (71 . 0)
	      (44 . 0.0)
	      (45 . 0.0)
	      (210 0.0 0.0 1.0)
	      )
	      (list (cons 10 ptB))
	    )
	  )
	  (entmake
	    (append
	      '(
	      (0 . "ATTRIB")
	      (100 . "AcDbEntity")
	      (67 . 0)
	      (410 . "Model")
	      (8 . "#8.Contre-profils")
	      (100 . "AcDbText")
	      )
	      (list (cons 10 ptBM))
	      '(
	      (40 . 0.7)
	      )
	      (list (cons 1 (rtos numPt)))
	      '(
	      (50 . 0.0)
	      (41 . 0.7)
	      (51 . 0.0)
	      (7 . "STANDARD")
	      (71 . 0)
	      (72 . 1)
	      )
	      (list (cons 11 ptBM))
	      '(
	      (210 0.0 0.0 1.0)
	      (100 . "AcDbAttribute")
	      (280 . 0)
	      (2 . "MAT")
	      (70 . 0)
	      (73 . 0)
	      (74 . 2)
	      (280 . 0)
	      )
	    )
	  )
	  (entmake
	    (append
	      '(
	      (0 . "ATTRIB")
	      (100 . "AcDbEntity")
	      (67 . 0)
	      (410 . "Model")
	      (8 . "#8.Contre-profils")
	      (100 . "AcDbText")
	      )
	      (list (cons 10 ptBC))
	      '(
	      (40 . 0.7)
	      )
	      (list (cons 1 "11"))
	      '(
	      (50 . 0.0)
	      (41 . 0.7)
	      (51 . 0.0)
	      (7 . "STANDARD")
	      (71 . 0)
	      (72 . 1)
	      )
	      (list (cons 11 ptBC))
	      '(
	      (210 0.0 0.0 1.0)
	      (100 . "AcDbAttribute")
	      (280 . 0)
	      (2 . "COD")
	      (70 . 0)
	      (73 . 0)
	      (74 . 2)
	      (280 . 0)
	      )
	    )
	  )
	  (entmake
	    (append
	      '(
	      (0 . "ATTRIB")
	      (100 . "AcDbEntity")
	      (67 . 0)
	      (410 . "Model")
	      (8 . "#8.Contre-profils")
	      (100 . "AcDbText")
	      )
	      (list (cons 10 ptBA))
	      '(
	      (40 . 0.7)
	      )
	      (list (cons 1 (rtos (caddr ptB) 2 2)))
	      '(
	      (50 . 0.0)
	      (41 . 0.7)
	      (51 . 0.0)
	      (7 . "STANDARD")
	      (71 . 0)
	      (72 . 1)
	      )
	      (list (cons 11 ptBA))
	      '(
	      (210 0.0 0.0 1.0)
	      (100 . "AcDbAttribute")
	      (280 . 0)
	      (2 . "ALT")
	      (70 . 0)
	      (73 . 0)
	      (74 . 2)
	      (280 . 0)
	      )
	    )
	  )
	  
	  (entmake '((0 . "SEQEND") (62 . 256) (6 . "ByLayer") (370 . -2)))

;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


  	;mémoriser ancien point
  	(setq ancienPt pt)

  	;incrémenter n°point
  	(setq numPt (+ 1 numPt))
  
  	;enlever 1er élément à listepoint
	(setq somPlTN (cdr somPlTN)) ; on exclue le premier point de la liste des sommets TN, et on recommence
	      
);fin while


;	(command "_REGEN")
(princ)
); Fin créationPointTerrainPLS

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é