• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Déplacer un objet selon les coordonnées placées dans une table

  • Auteur du sujet Auteur du sujet anfaloni
  • Date de début Date de début

anfaloni

Guest
Au revoir à tous,

J'essaie de me mettre dans le pétrin pour commencer à travailler dessus et à m'automatiser. Je voulais vous demander si vous pouviez faire ce qui suit :

ayant un tableau excel importé en autocad, composé de lignes x et de rapports sur trois colonnes différentes des coordonnées, je voudrais faire un lisp qui couvre x fois qu'un objet tombe dans le dessin et le déplace à point a,b,c où à b, il y a des variables qui doivent prendre les valeurs définies dans la ligne d'appartenance de la cellule excel.

J'espère avoir expliqué clairement. Si je n'avais pas réussi,
 
Désolé peut-être que je suis parti en quatrième....read more sur la lecture d'une variable définie dans un lisp une valeur appartenant à une cellule excel importée dans le design de cad serait une première étape importante. Vous savez comment faire ?
 
1) commencez excel et ouvrez votre fichier
2) démarrer autocad, charger excel.lsp et démarrer (getexcel)
3) pour écrire dans une cellule : (wcells obsheet ligne texte colonne)
4) pour lire une cellule: (valeur de setq (ligne de colonne de rcells obsheet))

n.b.: (getexcel) crée 2 variables publiques qui se réfèrent au cahier de travail (obxls) et connexes (obsheet)

Au revoir.
 

Pièces jointes

Bonjour et excusez-moi si je réponds maintenant ! Je vais essayer de faire comme vous écrivez même si je vais certainement trouver des difficultés que vous savez... mais cmq merci! Je pensais plutôt faire une macro d'excel à autocad ou vice versa parce qu'à la fin j'ai en autocad un attribut dans lequel j'insère la valeur d'une cellule d'excel en la copiant d'excel et puis le déplacer dans l'espace autocad selon les valeurs x,y,z copiées d'excel.. Je pensais qu'il était possible d'aller macro
 
...Je me trompe aussi. .

commande: (setq ou (vlax-get-or-create-objet "excel.application")
; erreur : aucune définition de fonction : vlax-get-or-create-object

Vla et Vlax putton à genoux... Je ne les comprends pas beaucoup. .
 
Maintenant il l'a pris...

(vl-load-com)
(setq ou (vlax-get-or-create-objet "Excel. application")

résultat
♪<vla-object 0000000029a861a8="" _application="">commande: (imprimer o)

♪<vla-object 0000000029a861a8="" _application=""> ♪<vla-object 0000000029a861a8="" _application="">Mais honnêtement, je ne sais pas où je viens comme ça. .définir la variable "ou" à laquelle j'attribue ce qui me donne en réponse le vlax-get-or-create....mais que ferais-je ?
tout vient de la création de la référence au fichier excel actif et feuille de travail pour aller à la lecture, copier les valeurs des cellules... mais cette étape ne comprend pas. .</vla-object></vla-object></vla-object>
 
Je commence à trouver quelque chose. . . .

; nous ouvrons le fichier excel pour le lire dans l'instruction lisp
; le fichier doit être préparé et enregistré dans "c:\users\\\\\\\\\desktop\\\\\\\\\\\\\\\\\\\\\\\\\" après changement d'adresse dans la lisp
; et toujours avec le nom bom.xls


(sans objet)
(startapp "c:\\program files\\\microsoft office 15\\root\\\office15\\excel.exe" "c:\\users\\lorenzo\desktop\\\\lisp\bom.xls")
)

; crée une référence au fichier excel obxls (feuille active ouverte) et obsheet (feuille active)
(défendez getexcel ()
(vl-load-com) ; avec ce tout vl-vla-vlax sont chargés afin qu'ils soient toujours prêts
(setq obxls (vlax-get-or-create-objet "Excel. application") ; je crée la connexion à l'excel ouvert
(vla-put-visible obxls t)

(setq obsheet (vlax-get-property obxls "cells") ; je crée la connexion à la propriété cellulaire de la feuille active
(setq rng (vlax-get-property obsheet 'range cell)); je me mets dans la cellule de recherche - "cell est une chaîne externe véritable à fonctionner"
(setq val (valeur vlax-get rng '); je trouve la valeur de la cellule
(princ val) ; J'écris sur l'invite la valeur trouvée
;(seq b "a")
;(valeur seq (rcells obset 1 b)
; (valeur d'impression)
)

maintenant lancer (open) et (getexcel) ouvrir le fichier concerné et je peux lire et attribuer la valeur variable de la première cellule.
sans toi, Je viens ici ! pour l'instant j'avais étudié des choses plus simples, mais comme vous dites... Pendant ce temps, j'ai commencé à étudier. . parce qu'à juste titre, il serait trop pratique de demander et de recevoir... et puis il est aussi intersecting. ..je pense que maintenant je vais mettre ceci en cycle pour quand j'aurai terminé toute l'action. Maintenant je dois l'attribuer à un attribut d'un bloc... et je prévois un autre scoglio.
 
mais pourquoi si je prends un texte et que je veux changer son contenu primaire en utilisant subst ne m'oblige pas à le faire?

dans l'ordre que je fais: (Sectq texte (entget))
envoyer et sélectionner le texte
puis je le fais (assoc. 1 texte)
et je reçois le texte régulièrement (1 . "pos.")
Mais si je le fais
(subst (1 "lore") (1 "pos.") texte)
Ça marche ?

commande: (subst (1 "a") (1 "pos.") texte)
; erreur : mauvaise fonction : 1

Personne ne peut me dire une raison ?
 
Merci gp dès que j'ai l'autocad sous la main j'essaie....J'espère à la fois pour ce putain d'apex... mais en même temps je reçois le diable parce que si j'écris sur l'aide d'autocad ou de lire dans d'autres sites que l'apex que je n'ai pas vu.
Disons que si j'insère le cycle pour la variable de ligne qui augmente jusqu'à ce que vous trouviez du contenu "mil" sur la première case, je peux stocker les coordonnées que j'ai dans trois cellules séparées sur la même ligne et la marque associée au nombre de position de l'élément. avec ces variables stockées maintenant le problème est de prendre un bloc dans lequel j'ai un attribut "pos" et insérer le nombre de la variable stockée, puis déplacer ce bloc à la coordonnée identifiée par les trois autres variables. . . cela doit être fait pendant le...
Qu'en pensez-vous ? Avez-vous des conseils ou d'autres opinions?
 
vous avez également omis le point de la "paire mise" (paire pointée).
l'apex, correspondant à la fonction (quote), retourne l'expiation telle qu'elle est, sans l'évaluer.

"(1 . "lore") -> (1 . "lore")


au lieu de construire la liste:

(cons 1 "lore") -> (1 . "lore")
 
Merci gp dans cet ensemble je suis désolé et je vous ferai savoir où je vais venir. pour le moment je veux pouvoir automatiser la première phase essentielle de lecture et de stockage uniquement des données liées pos et coordonne la manière intelligente pour tout nombre de lignes avec lesquelles le fichier source Excel sera enregistré. l'étape suivante va essayer cette étape pour insérer dans l'attribut de la variable enregistrée, puis la déplacer vers les coordonnées souhaitées. Merci encore!!!
 
Je ne comprends pas pourquoi il n'insère pas le texte. .

commande: (subst '(1 . "lore") '(1 . ") a)
; erreur : type de sujet incorrect : contre <nome 7f6dd17a2d0="" entità:=""></nome>
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut