• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Bewegen Sie ein Objekt nach Koordinaten in einer Tabelle

  • Ersteller Ersteller anfaloni
  • Erstellt am Erstellt am

anfaloni

Guest
Bye to all,

Ich versuche, in den Deckel zu kommen, um damit zu arbeiten und mich zu automatisieren. Ich wollte Sie fragen, ob Sie Folgendes tun können:

mit einer in Autocad importierten Tabelle, bestehend aus x Zeilen und Bericht über drei verschiedene Spalten der Koordinaten, möchte ich eine Lippe machen, die x-mal ein Objekt in der Zeichnung abdeckt und es auf Punkt a,b,c bewegt, wo b, gibt es Variablen, die die in der Zeile des Zuges des Zell-Excels definierten Werte annehmen müssen.

Ich hoffe, ich habe klar erklärt. Wenn ich es nicht geschafft hätte,
 
Tut mir leid, dass ich im vierten... Lesen Sie mehr über das Lesen einer Variablen definiert in einer lisp ein Wert einer importierten Excel-Zelle innerhalb des Cad-Designs wäre ein wichtiger erster Schritt. Hast du eine Idee, wie man das macht?
 
1) excel starten und Ihre Datei öffnen
2) starten autocad, laden excel.lsp und starten (getexcel)
3) in einer Zelle zu schreiben: (Zellen obsheet Zeilenspalte Text)
4) um eine Zelle zu lesen: (setq-Wert (rcells obsheet Spaltenzeile))

n.b.: (getexcel) erstellt 2 öffentliche Variablen, die sich auf Arbeitsmappe (obxls) und verwandten (obsheet) beziehen

Bye
 

Anhänge

Hallo und entschuldigen Sie, wenn ich jetzt antworte! Ich werde versuchen, zu tun, wie Sie schreiben, auch wenn ich sicherlich Schwierigkeiten finden Sie wissen.... aber cmq danke! Ich dachte stattdessen, ein Makro von Excel zu Autocad oder umgekehrt zu machen, weil am Ende habe ich in Autocad ein Attribut, in dem ich den Wert einer Zelle von Excel durch Kopieren von Excel einfügen und dann bewegen Sie es in den Autocad Raum nach den Werten x,y,z kopiert von Excel. . . Ich dachte, es wäre möglich, Makro zu gehen
 
Ich habe mich auch getäuscht. .

Befehl: (setq oder (vlax-get-or-create-object "excel.application"))
; Fehler: keine Funktionsdefinition: vlax-get-or-create-object

vla und vlax putton auf meine knie... Ich verstehe sie nicht sehr. .
 
Jetzt hat er es...

(vl-load-com)
(setq oder (vlax-get-or-create-object "excel.application"))

Ergebnis
♪<vla-object 0000000029a861a8="" _application="">Befehl: (Druck o)

♪<vla-object 0000000029a861a8="" _application=""> ♪<vla-object 0000000029a861a8="" _application="">Aber ehrlich gesagt weiß ich nicht, wo ich so komme. .definiere die Variable "oder", auf die ich akribiere, was mir in Reaktion auf die vlax-get-or-create gibt....aber was würde ich tun?
alles kommt von der Erstellung der Referenz auf die aktive Excel-Datei und das Arbeitsblatt zu lesen gehen, kopieren Sie die Werte der Zellen... aber dieser Schritt versteht nicht. .</vla-object></vla-object></vla-object>
 
Ich fange an, etwas herauszufinden. .

; wir öffnen die Excel-Datei, um sie lesbar für die lisp-Anweisung
; die Datei muss in "c:\users\\\\\\\\\\\\desktop\\\\\\\\\\\\\\\\\" nach Änderung der Adresse in der Lisp
; und immer mit dem Namen bom.xls


(defun open)
(Start "c:\\program files\\\microsoft office 15\root\\\office15\excel.exe" "c:\\users\\\lorenzo\desktop\\\\\lisp\bom.xls")
)

; erstellt Referenz auf Excel obxls Datei (eröffnet aktives Blatt) und Obsheet (aktives Arbeitsblatt)
(Defun getexcel)
(vl-load-com)
(setq obxls (vlax-get-or-create-object "excel.application")); Ich erstelle die Verbindung zum offenen Excel
(vla-put-visible obxls t)

(setq obsheet (vlax-get-property obxls "cells")); Ich erstelle die Verbindung zur Zelleigenschaft des aktiven Blattes
(setq rng (vlax-get-property obsheet 'range cell)); Ich setze mich in die Suchzelle - "cell is a veriable extern string to function"
(setq val (vlax-get rng 'value)); ich finde den Zellwert
(princ val)
;(seq b "a")
;(seq-Wert (rcells obsheet 1 b)
;(Druckwert)
)

Jetzt starten (open) und (getexcel) öffnen Sie die betroffene Datei und ich kann den variablen Wert der ersten Zelle lesen und zuordnen.
ohne dich, Ich komme! für jetzt hatte ich einfachere Dinge studiert, aber wie Sie sagen... In der Zwischenzeit begann ich zu studieren. .weil es zu bequem wäre, zu fragen und zu empfangen... und dann ist es auch schneiden. ..Ich glaube, jetzt werde ich das in den Zyklus setzen, für wenn ich die ganze Aktion abgeschlossen habe. Jetzt muss ich es einem Attribut eines Blocks zuordnen... und ich prognostiziere einen anderen Soglio.
 
Aber warum, wenn ich einen Text nehme und seine primären Inhalte mit Subst ändern möchte, mache ich das nicht?

in der Reihenfolge tue ich: (Sectq text (entget))
senden und wählen Sie den Text
dann tue ich (Verein 1 Text)
und ich bekomme den Textinhalt regelmäßig (1 . "pos.")
Aber wenn ich das tue
(subst (1 "lore") (1 "pos.") Text)
Arbeitet es?

Befehl: (subst (1 "a") (1 "pos.") Text)
; Fehler: falsche Funktion: 1

Kann mir niemand einen Grund sagen?
 
Danke gp, sobald ich das Autocad Underhand habe, versuche ich....Ich hoffe beide auf diesen verdammten Apex... aber gleichzeitig bekomme ich den Teufel, weil wenn ich auf die Hilfe von Autocad schreibe oder in anderen Seiten lese, die apex ich nicht sah.
Sagen wir, wenn ich den Zyklus für die Zeilenvariable einfügen, die einen erhöht, bis Sie "mil" Inhalt auf der ersten Box finden, kann ich die Koordinaten speichern, die ich in drei separaten Zellen auf der gleichen Zeile und die Marke mit der Anzahl der Position des Elements verbunden. Bei diesen nun gespeicherten Variablen besteht das Problem, einen Block zu nehmen, in dem ich ein "pos" Attribut habe und die Anzahl der gespeicherten Variablen einfügen und diesen Block dann auf die durch die anderen drei Variablen identifizierte Koordinaten verschieben. . . . das während der...
Was denkst du? Haben Sie Ratschläge oder andere Meinungen?
 
Sie haben auch den Punkt des "Paareinsatzes" (gepunktetes Paar) weggelassen.
der apex, entsprechend der Funktion (quote), gibt den Ablauf zurück, wie er ist, ohne ihn auszuwerten.

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


anstatt die Liste zu erstellen:

(cons 1 "lore") -> (1 . "lore")
 
Danke, dass du mir das angetan hast, tut mir leid und ich lasse dich wissen, wo ich komme. für den Moment, in dem ich die erste essentielle Phase des Lesens und Speicherns von nur datenbezogenen pos automatisieren und die intelligente Weise für jede Anzahl von Zeilen koordinieren möchte, mit denen die Excel-Quellendatei gespeichert wird. nächster Schritt wird diesen Schritt zum Einfügen in das Attribut der gespeicherten Variablen versuchen und dann auf die gewünschten Koordinaten verschieben. Danke noch einmal!!!
 
Ich verstehe nicht, warum es den Text nicht einfügt. .

Befehl: (subst '(1 . "lore") '(1. ") a)
; Fehler: Art des falschen Themas: cons <nome 7f6dd17a2d0="" entità:=""></nome>
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben