Aller au contenu

AUTOMATISATION OBJECT DATA


NBAMBOUCAD

Messages recommandés

Bon on va réparer les "conneries" du client.

A copier-coller directement en ligne de commande dans le dessin à corriger avant d'appliquer la routine NBAMBOUCAD. Ca corrigera toutes les tables. et ensuite la routine NBAMBOUCAD devrait fonctionner correctement.

((lambda ( / val typ nw_val nw_deftab)

(foreach i (ade_odtablelist)
	(setq
		val nil
		typ (mapcar 'caddr (cdaddr (ade_odtabledefn i)))
	)
	(foreach el (mapcar 'cdr typ)
		(cond
			((eq el "Character") (setq nw_val ""))
			((eq el "Real") (setq nw_val 0.0))
			((eq el "Integer") (setq nw_val 0))
		)
		(setq val (cons (cons "DefaultVal" nw_val) val))
	)
	(setq nw_deftab
		(append
			(cons (car (ade_odtabledefn i)) (list (cadr (ade_odtabledefn i))))
			(list
				(cons "Columns"
					(mapcar
						'(lambda (x y z w  / )
							(cons x (cons y (cons z (list w))))
						)
						(mapcar 'car (cdaddr (ade_odtabledefn i)))
						(mapcar 'cadr (cdaddr (ade_odtabledefn i)))
						typ
						(reverse val)
					)
				)
			)
		)
	)
	(ade_odmodifytab nw_deftab)
)
(prin1)
))

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

Lien vers le commentaire
Partager sur d’autres sites

Ah super, mais quand j'applique le programme les entiers on ensuite la valeur ("DefaultVal" . 0.0), c'est ce que je constate après avoir fait:

(foreach i (caddr (ade_odtabledefn "A_RE")) (print i))

Une autre chose qui m'était sortie de la tête, tout les points du dessin doivent être dans le même bloc point à la fin du dessin (pendant le traitement du dessin ils ont des blocs points différents ce qui facilite leur identification), et avec un attribut différent en fonction du nom du calque.

Et pour tous les points du dessin leur coordonnée Z doit être associé au champ (du bloc point de substitution) "TAL_COTZ".

Ces processus doivent être réalisé à la fin du dessin et ne doivent donc pas être intégré au code déjà existant (procédure attribution des tables, remplissage attribut, etc..), il faut en créer un nouveau.

Je t'envoie le tableau en MP.

Lien vers le commentaire
Partager sur d’autres sites

Ah super, mais quand j'applique le programme les entiers on ensuite la valeur ("DefaultVal" . 0.0), c'est ce que je constate après avoir fait:

(foreach i (caddr (ade_odtabledefn "A_RE")) (print i))

Oui en effet, mais cela n'a aucune incidence, si tu passes par par "_adedefdata" c'est bien un entier qui apparaît dans la valeur par défaut. Et si le code fonctionne c'est le principalwink.gif

 

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

Lien vers le commentaire
Partager sur d’autres sites

Ah d'accord, ouais ça marche tip top.

 

Ah et j'ai remarqué un petit défaut pour l'attribution des valeurs du champs "*_TYPE", le programme applique les règles d'attribution de la liste "l_der" à toutes les lignes possédant un champ du type "*_TYPE", même ceux ne se trouvant pas dans la liste "l_der".

Pourrait-on limiter cette attribution au seuls éléments de la liste?

 

Merci!!

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é