Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schnelle Suche in Xref's

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Schnelle Suche in Xref's (2004 mal gelesen)
marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 06. Feb. 2003 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,
ich suche eine Funktion die mir aus Xref's Texte und deren Koordinaten raussucht (nur 2D, nur Dtext).
Diese Funktion sollte extrem schnell sein, meine Funktion ist da einfach zu lahm. Gibt es da was, oder hat einer 'ne Idee?
Mit Hilfe von ActiveX, Arx odre VBA? Lisp pur ist da zu langsam, oder ich hab' das falsch angepackt (Xref zu fassen kriegen und dann ALLE Elemente des Xref's durchhacheln).
Ausgabe der Funktion sollte dann so aussehen:
(("Text1" (0 0 0))("Text2" (0 1 0)) ...)
Hat da wer was schnelles?
Axel?

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 07. Februar 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 07. Feb. 2003 12:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hi Marc,

was genaues kann ich so auch nicht sagen - ich weiss ja nicht, wie deine Funktion das macht. Unerheblich ist die Frage, ob es sich um ein XREF handelt oder nicht - es könnte wohl genausogut ein normaler Block sein. Bei XREFs können allerdings u.U. die Art des Ladens eine Rolle spielen.

Sollen nur Texte an der Oberfläche oder auch solche in Sub-Blöcken usw. gesucht werden?

Zur Wahl des Werkzeugs: In den seltenen Fällen, wo mir Lisp zu langsam ist (z.B. entmake eines PMESHs mit Zehntausenden von Stützpunkten), greife ich normalerweise zu ADSRX. Das ist meiner Ansicht nach die schnellste Möglichkeit. ActiveX scheint mir nicht die Bohne schneller zu sein als herkömmliche Lisp-Methoden, auch wenn AutoDESK das gerne behauptet. Und zu VBA sage ich lieber nix, da habe ich wenig Ahnung. Ich vermute nur, dass es sich wie ActiveX in Lisp verhalten wird, da es intern ja um genau die selben Funktionen handelt. Bleibt dann noch das volle ObjectARX, aber das bringt zu viel Overhead gegenüber ADS mit.

Vielleicht zu viele setqs drin *lach* ?

Gruss, Axel

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 07. Feb. 2003 12:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Axel,
"Vielleicht zu viele setqs drin *lach* ?"

Du kennst mich doch, nur eine Funktion mit setq's ist eine gute Funktion *kicher*.

Nein im Ernst, natürlich habe ich 'n Haufen setq drin, hab' halt nicht Deinen Wissensstand, aber ich arbeite dran ;-).

Wenn es Dich interessiert, schicke ich Dir die Funktion und Du kannst mal 'n Blick drauf werfen. Vielleicht findest Du ja auf Anhieb die zeitkritischen Stellen heraus.

Die Xref's werden "Überlagert" geladen, haben keinerlei Verschachtelungen und daher brauchen auch nur die Texte "an der Oberfläche" rausgesucht werden. Eigentlich "Easy-Going", 's dauert halt nur zu lange.

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 07. Februar 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 07. Feb. 2003 12:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hai Marc

mannchmal muss man sich damit abfinden, dass es einfach mal 'lange' dauert, wobei das doch ziemlich relatis sein dürfte.

Du kannst einen Wolkenkratzer eben nicht in einer Woche bauen.

------------------
Gruß
CADwiesel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 07. Feb. 2003 13:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Wiesel,
nein damit kann ich mich ausnahmsweise mal nicht abfinden.
Folgendes ist das Problem:
Bisher konnten wir unsere Pläne zusammenladen indem wir sie in eine leere Zeichnung geursprungt einfügen.
Das war auch bis 2000i ohne weiteres, schnell möglich.
Ab 2002 aber, benötigt Acad für den gleichen Vorgang auf einmal immens mehr Zeit.
Die Zeiten, mal so für'n Überblick:

Autocad 2002    1 min 53 sek
Autocad 2000i  28 sek

Da wir nun von diesem Kaliber so etwa 4-6 Pläne gleichzeitig laden,
kannst Du Dir ja vorstellen ,daß mir die User die Hölle heiß machen.
Die warten jetzt also nicht knapp unter 2 min, sondern 8 min.

Da das indiskutabel ist, müssen wir uns auf's Xrefen für diesen besonderen Fall verlegen. Mit der Konsequenz, das ich nun Texte in XRefs suchen muß. Und hier erwischt mich der Zeitfaktor nun erneut eiskalt. Ich MUSS also einen Weg finden den Zugriff auf die XRef-Texte akzeptabel schnell zu kriegen.
Und warum? Leider mal wieder weil ADesk so'n Höllenbug in Acad einbaut.
Ich habe das Problem übrigens schon dorthin weitergeleitet, sie konnten das Problem auch bestätigen... Eine Lösung jedoch wurde sehr schwammig auf "Hm, evtl. im nächsten ServicePack?" geschoben.
Die sehen das wohl nicht als kritischen Fehler an. Also könnte es genausogut sein, daß da gar nix gelöst wird oder es sich in R2004 sogar noch verschärft.


Für alle die solche Probleme nicht nachvollziehen können und sagen "Hey, bei mir ist das aber gar nicht so":
Das alles hängt erwiesenermaßen mit den Bemaßungen zusammen.
Davon haben wir im Schnitt in EINER Datei 5000 Stück (bei 6000 anderen Objekten). Macht beim zusammenladen also zwischen 20 und 30000 Bemaßungen. Und erst bei dieser Größenordnung fängt das Problem an. Acad checkt beim Einfügen jede Bemassung auf irgendwas und das dauert pro Bemassungs-Objekt seine Zeit. Bei der Masse summiert sich das dann zu solchen immensen Zeiten auf.

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 07. Februar 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 07. Feb. 2003 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Ich hab grad mal ein Beispiel gemacht, das veranschaulicht, wie die Dinge wirken. Ich teste mal 4 Ansatzweisen gegeneinander, es geht darum, eine Liste zu durchsuchen und eine Teilliste zu bilden. Die eigentliche Aufgabe ist ja, einen Strang in der Blocktabelle zu durchsuchen und alle Texte rauszupuhlen.

Ersatzweise mache ich folgendes: Ich nehme eine Liste aller Zahlen von 1 bis eine Million und durchsuche sie dann nach allen durch 2 teilbaren Zahlen *grins*. Die 4 Routinen machen das etwas unterschiedlich, und es wird die Zeit dafür gestoppt:

1. Ausser Konkurrenz läuft die Variante mit (append) - die ist so langsam, dass ich das Ergebnis wahrscheinlich erst in Wochen sagen könnte. Abgebrochen!

2. cons statt append, und zwei setq drin. Läuft in endlicher Zeit!

3. Wie 2, aber ein setq eliminiert.

4. Das zweite setq auch noch raus, keine Variablen mehr.

Festhalten, jetzt kommt der Code für das Profiling (Zeitermittlung). Näheres dazu gibt es auf meinen Advanced-Seiten, deshalb unkommentiert hier:

(defun safe-envelope(expr fences / )
  (eval
    (append
      (list'lambda(cons '/ fences))
      (list expr)
    )
  )
)

(defun elapsed(test-expr n-times / t1)
  (setq t1(time-list))
  (setq test-expr
    (safe-envelope test-expr
    '(test-expr n-times t1)
    )
  )
  (repeat n-times
    ((eval test-expr))
  )
  (time-diff t1(time-list))
)

(defun time-list( / cd)
  (setq cd(rtos(getvar"cdate")2 6))
  (append
    (list(atoi(substr cd 10 2)))
    (list(atoi(substr cd 12 2)))
    (list(atoi(substr cd 14 2)))
  )
)

(defun time-diff(t1 t2 / r)
  (setq r
    (abs
      (apply'-
        (mapcar
        '(lambda(tn / )
            (+(* 3600(car tn))
              (* 60(cadr tn))
              (caddr tn)
            )
          )
        (list t1 t2)
        )
      )
    )
  )
  (list
    (/ r 3600)
    (/ (rem r 3600) 60)
    (rem r 60)
  )
)

Jetzt eine Hilfsfunktion, die die Testvariable mit 1000000 Zahlen erzeugt:

(defun mk-testvar( / i ) ; *testvar* ist global
  (setq i 0)
  (repeat 1000000
    (setq *testvar*
      (cons i *testvar*)
    )
  )
  (length *testvar*)
)

Jetzt die 4 Vergleichsfunktionen:

(defun test1( / result)
  (while *testvar*
    (if(=(rem(car *testvar*)2)0)
      (setq result
        (append result(list(car *testvar*)))
      )
    )
    (setq *testvar*(cdr *testvar*))
  )
  nil
)

(defun test2( / result)
  (while *testvar*
    (if(=(rem(car *testvar*)2)0)
      (setq result
        (cons(car *testvar*)result)
      )
    )
    (setq *testvar*(cdr *testvar*))
  )
  nil
)

(defun test3( / result)
  (foreach elm *testvar*
    (if(=(rem(car *testvar*)2)0)
      (setq result
        (cons(car *testvar*)result)
      )
    )
  )
  nil
)

(defun test4( / )
  (apply'append
    (mapcar
    '(lambda(n / )
        (list(=(rem(car *testvar*)2)0))
      )
      *testvar*
    )
  )
  nil
)

So, und nun zum Ergebnis. Wie gesagt, Variante 1 kann mal jemand laufen lassen, der den Rechner die nächsten Wochen nicht braucht;-)

(mk-testvar)
(princ(elapsed'(test2)1))
(terpri)
(mk-testvar)
(princ(elapsed'(test3)1))
(terpri)
(mk-testvar)
(princ(elapsed'(test4)1))
(princ)

=> (0 0 23)  ; Nr. 2
=> (0 0 14)  ; Nr. 3
=> (0 0 43)  ; Nr. 4

Wie man sieht, muss man also vorsichtig abschätzen, wie man vorgeht. Das eine setq rauszunehmen, hat die Geschwindigkeit fast verdoppelt. Das zweite setq auch noch rauszunehmen, bringt hier aber nix, da wir dann zwei Durchläufe durch die Liste haben und doch wieder ein append drin haben, allerdings sehr entschärft, da nur 1 Aufruf in apply.

Und weil ich so gehässig bin, hier noch Variante 5 mit so einigen 'Stilblüten', wie man sie des öfteren sieht:

(defun test5( / result vergleich)
  (foreach elm *testvar*
    (if(=(rem(car *testvar*)2)0)
      (setq vergleich 'T)
      (setq vergleich nil)
    )
    (if(/= vergleich nil)
      (setq result
        (cons(car *testvar*)result)
      )
    )
  )
  nil
)

=> (0 0 56) ; kostet halt Rechenzeit!

Die Genauigkeit des Abstoppens hat übrigens ihre Grenzen, aber das Ganze kann ganz gut als Anhaltspunkt dienen.

So, jetzt aber Schluss mit den Romanen;-)

Gruss, Axel

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 07. Feb. 2003 14:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

bei 4 hab ich aus Versehen eine fehlerhafte Version reinkopert, ist aber egal, weil die sowie nix taugt;-)

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 07. Feb. 2003 14:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Und nochmal ich;-)))

Schick mal rüber, Marc, ich schaus mir an. Habe derzeit an sowas ein gesteigertes Interesse, da ich zusätzlich zu den 3 bisherigen Lisp-Seiten gerade noch eine vierte mache: Einen Praxis-Trail mit etwa 20 Kapiteln ausschliesslich zum Thema Blöcke, XREFs, Attribute, Redefinition usw. Kommt in Kürze!

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 07. Feb. 2003 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Tja, wie blöd kann man eigentlich sein??? Ich hab vergessen, zwischendurch *testvar* auf nil zu setzen:-((( Dadurch war Version 4 schwer im Nachteil, weil da schon 2 Mio. Zahlen drin waren.

Also:

(defun mk-testvar( / i ) ; *testvar* ist global
  (setq i 0 *testvar* nil)
  (repeat 1000000
    (setq *testvar*
      (cons i *testvar*)
    )
  )
  (length *testvar*)
)

Kommt jetzt auf etwa 16 Sekunden.

Schön, wenn man so ein Forum für sich allein hat;-)

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 07. Feb. 2003 17:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Axel,
das klingt ja echt interessant, mit Deinen Varianten.
Du bist da halt der Durchblicker schlechthin, mit der Analyse von "schlechtem" Code und "gutem" Code.
Da scheint doch einiges an Potenzial drinzustecken, welches ich durch 'n Haufen setq und dem Nichtvorhandensein von mapcar's und apply's verschenke.
Vielen Dank schonmal für Mühe. Ich versuche ja schon immer den ein oder anderen Tip von Dir umzusetzen, aber da haperts (siehe Thread mit dem GC 10 der Koordinaten bei Polylinien) dann bei mir doch ab und an mal am fundierten Wissen. Sorry.

Ich werde Dir mal meine Funktionen rüberschicken.

@: "Schön, wenn man so ein Forum für sich allein hat;-)"

Sorry Axel, bin schon im WE und erst eben nach Hause gekommen.
Hab' dann aber sofort hier reingeguckt.
Ich mache Dir die Mail jetzt fertig und hoffe auf die ein oder andere zeitbegünstigende Modifikation.

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 07. Februar 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 08. Feb. 2003 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

> @: "Schön, wenn man so ein Forum für sich allein hat;-)"
> Sorry Axel, bin ...

Das war doch nicht auf dich bezogen, war nur, weil ich mir da dauernd selbst geantwortet habe. Eigentlich führe ich sonst recht wenig Selbstgespräche;-)

Die Mail ist da, werde mir das heute mal ansehen. Vielleicht kommt ja was raus dabei.

Bis dann also!


------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

erstellt am: 08. Feb. 2003 13:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

@Axel

Selbstgespräche? 

Schön Dich wieder zu sehen.

Patrick Bateman -> Industrie24 

------------------
Grüße daywa1k3r

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fca_mi2
Mitglied
Bauingenieur


Sehen Sie sich das Profil von fca_mi2 an!   Senden Sie eine Private Message an fca_mi2  Schreiben Sie einen Gästebucheintrag für fca_mi2

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 19. Apr. 2005 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

hallo,

ich versuche das auch gerade, wie bist du denn da rangegangen ?

ich will nur einen kleine tipp, brauchst mir nicht dein ganzes programm zu geben . :-)
danke

------------------
MfG
Frank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Apr. 2005 20:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hallo Frank,

kurze Einweisung in VLAX-Lisp:
Du greifst hiermit auf die Eigenschaften und Methoden der Objekte zu, welche über ActiveX zur Verfügung stehen. Du kannst also alles, was in der Entwicklerhilfe zu ActiveX drin steht in Lisp verwenden - auch wenn dort ausschließlich VBA-Bsp zu finden sind.

Zunächst ist die Umwandlung eines EName in ein VLOBJECT notwendig
(vlax-ename->vla-object ENAME)

Auslesen von Eigenschaften:
(vlax-get-property VLOBJECT EIGENSCHAFT)

Setzen von Eigenschaften:
(vlax-put-property VLOBJECT EIGENSCHAFT WERT)

Methoden werden immer mit:
(vlax-invoke-method VLOBJECT METHODE [...])
im Lisp verfügbar.

Für deine XRef-Sache musst du also zunächst (auch in der Reihenfolge, wie im Objekt-Modell zu sehen) ermitteln:
- ACAD-Object- (vlax-get-acad-object)
- aktuelle Zeichnung Eigenschaft vom Acad-Object ActiveDocument
- Blöcke der aktuellen Zeichnung
--- Über die Eigenschaften kannst du herausfinden, ob es sich bei dem jeweiligen Block um ein XRef handelt
- XRef
- XRef- XRefDatabase auslesen
- XRef-XRefDatabase- Modelspace auslesen
- XRef-XRefDatabase-ModelSpace durchlaufen und über die Objekteigenschaften deine Linien 'rausfieseln' und Koordinaten speichern

Das war's eigentlich

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fca_mi2
Mitglied
Bauingenieur


Sehen Sie sich das Profil von fca_mi2 an!   Senden Sie eine Private Message an fca_mi2  Schreiben Sie einen Gästebucheintrag für fca_mi2

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 20. Apr. 2005 10:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

krass, es klappt ! :-)

danke für die hilfe.

bis denne

------------------
MfG
Frank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz