Aller au contenu

Nomenclature repère


Invité pleche.damien

Messages recommandés

Invité pleche.damien
Posté(e)

Bonjour

 

j'esaye d'améliorer ma routine pour créer une nomenclature acier.

Se que j'esaye de faire est d'insérer des numéros de répères d'acier en fonction

de l'ordre d'insertion de mes aciers dans mon desssin.

 

J'ai donc la routine suivante qui me permet d'insérer mes numéros:

 

 
(defun c:compteur ()

(setq compteur 1)

(while ""      
(setq rep "+ compteur 1 ")   
(setq ptclic (getpoint " point d'insertion du chiffre")) 
;il manquai une parenthèse fermante pour setq

(setq ptchiffre (polar ptclic 0 50))

(command "texte" ptchiffre 4 0 (rtos compteur 2 0)) 
;converti le nombre en texte avec rtos

(setq compteur ( + compteur 1)) 

))
 ; ferme la boucle while

 

 

Et ci-joint un exemple qui permet de choisir entre un "IPE" ou un acier "STANDARD":

 

 

(initget 1 "IPE STANDARD")
 ;commande boucle,

(setq choix (strcase(getkword "\nchoix IPE : [iPE, STANDARD]")))
 ; menu déroulant

 (cond
 	

(( = choix "IPE") (command "inserer" "platine_élévation" ptac12 1 1 0)(command "inserer" "platine_dessus" ptac14 1 1 0))		
	

(( = choix "STANDARD") (		  
 (setq longPB (getreal "\n largeur b du fût"))
 (setq longPH (getdist "\n hauteur h du fût"))
 (setq longDA (getdist "\n débort fondation"))

(setq pt04 (polar pt03 (+ angl (/ pi)) longDA))
 (setq pt05 (polar pt04 (+ angl (/ pi 2)) longPH))
 (setq pt06 (polar pt05 (+ angl (/ pi)) longPB))
 
 (setq pt07 (polar pt06 (- angl (/ pi 2)) longPH))
 (setq pt08 (polar pt07 (+ angl (/ pi)) longDA))


 (command "dimlinear" pt03 pt04 (polar pt03 (+ (angle pt04 pt03) (/ PI 2)) 20))
 (command "polylign" pt03 pt04 "")	; trace la polyligne pt03 pt04				
			
 (command "polylign" pt04 pt05 "")	; trace la polyligne pt04 pt05
 (command "polylign" pt04 pt05 "")	; trace la polyligne pt04 pt05
 
 (command "polylign" pt05 pt06 "")	; trace la polyligne pt05 pt06
 (command "dimlinear" pt05 pt06 (polar pt05 (+ (angle pt06 pt05) (/ PI 2)) 20))


 (command "dimlinear" pt06 pt07 (polar pt06 (+ (angle pt07 pt06) (/ PI 2)) 20))
 (command "polylign" pt06 pt07 "")   ; trace la polyligne pt06 pt07


 (command "dimlinear" pt07 pt08 (polar pt07 (+ (angle pt08 pt07) (/ PI 2)) 20))
 (command "polylign" pt07 pt08 "")   ; trace la polyligne pt06 pt07

 
 (setvar "osmode" accro)					
;Ré-attribut l'accrochage des objets stocké précedement,
 (setvar "dynmode" dynn)					
;Ré-attribut la valeur de la saisie dynamique stockée précedement,
 ;(setvar "dimzin" chiffrevirgule)

)))

 

Je veux donc fusioner ces deux lisp pour que mon programme

insert automatiquement mes numéros de repère en fonction du choix de l'acier.

Exemple: si l'acier IPE est choisi en premier on lui attribue le repere 1

si l'acier STANDARD est choisi en segond je lui attribue le repère 2

et inversement pour le cas contraire...

 

Pouvez vous m'aider à réaliser se programme... Car je ne métrise pas tout à fait encore la fonction si et les boucle...

 

MERCI d'avance

 

Invité pleche.damien
Posté(e)

Peut être une idée d'oriantation pour réaliser se programme:

 

si l'acier IPE ou STANDARD de la liste prédéfinie sont présents dans le dessin alors

(foreach l lst1                   
 (if (tblsearch "IPE" "STANDARD" compteur)                   
;fonction tblsearch cherche les aciers insérés dans le dessin
   (princ
     (strcat "\nIPE\"" l "\" est dans le dessin")
   )
   (princ
     (strcat "\nIPE \nil\" n'est pas dans le dessin")
   )
 )
)

;Même chose pour l'acier standard...

 

Voila je c'es que se lisp est faut mais sa peut etre une piste à aprofondir MERCI

 

 

 

 

 

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é