Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Verschachtelte Elemente schieben

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:  Verschachtelte Elemente schieben (1424 mal gelesen)
Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 09. Jun. 2009 15:35    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

Hallo

Bei den Express-Tools gibts ja den Befehl "Verschachtelte Elemente kopieren" (ncopy).
Hatte jemand schon mal die Begegnung mit "Verschachtelte Elemente schieben" oder schon mal in die Richtung gedacht (Lösungsansätze)?
Denke zwar nicht, dass sowas mit "vertretbaren" Aufwand zu machen wäre, aber vielleicht bin ich auch nur blind ...

Hintergrund: Eine neuere Zeichnung in eine ältere einarbeiten. Die neue enthält aber nur Teilinformationen - also nix nix mit ausstanzen und einfügen.

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 09. Jun. 2009 15:46    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 Geos 10 Unities + Antwort hilfreich

ja hatte ich .. z.B. bei dem Tool Blockmovebasepoint ..  geht über die entsprechende vla-move Methode

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 10. Jun. 2009 08:13    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

Danke Thomas

Hab mal nach vla-move gegooglet - mal sehen, was sich aus den Fundstücken rauslesen läßt ...

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2009 08:30    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 Geos 10 Unities + Antwort hilfreich

.. der richtige WEG ! Top!

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 10. Jun. 2009 08: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 Geos 10 Unities + Antwort hilfreich

Hi Ernst,
schau auch mal nach vla-copy bzw delete,
bei move gab es irgend einen Haken... nur weiß ich nicht mehr wo,
vllt. fällt es mir ja noch ein.

mfg heiko

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Jun. 2009 08:45    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 Geos 10 Unities + Antwort hilfreich

weils fast das gleiche wie mein vorheriger Post ist :

(vl-load-com)
(defun MOVE (OBJ VEKTOR)
  (if(and(setq OBJ(cond
                    ((=(type OBJ)'VLA-OBJECT)OBJ)
                    ((=(type OBJ)'ENAME)(vlax-ename->vla-object OBJ))
                  )
        )             
        (=(type VEKTOR) 'LIST)
        (=(length VEKTOR) 3)
        (vl-every 'numberp VEKTOR)
    )
   
  (progn 
    (vla-move OBJ (vlax-3d-point '(0 0 0)) (vlax-3d-point VEKTOR))
    (vla-update OBJ)
    (vla-Regen(vla-get-activedocument(vlax-get-acad-object))acAllViewports)
  ) 
  )

(MOVE
  (car(nentsel"\nObjekt wählen:"))
  (mapcar '*
          '(-1.0 -1.0 -1.0)
          (mapcar '-
            (getpoint "\nAusgangspunkt wählen: ")
            (getpoint "\nEndpunkt wählen: ")
          )       
 
  )

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 11. Jun. 2009 12:11    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

Nachdem ich mir die Funde von vla-move und Deinen Code, Thomas, zu Gemüte geführt habe, muss ich zu dem Schluß kommen, dass ich ich mein Ziel nicht gut genug beschrieben habe.

Bei Jimmy Bergmarks http://www.jtbworld.com/lisp/axblock.htm  konnte ich zwar sehen, wie man ein Objekt aus einem Block/Xref entfernt und zusammen mit trexblk.lsp aus den Express-Tools eine Krücke bauen, aber eben nur eine Krücke ...

Ich würde also gerne das "neue File" (mit aktuellerem Inhalt) als Xref einfügen, kann dann bequem die Xref-Layer einfärben, Strichstärken ändern und somit den Inhalt klar erkennbar machen. Sodann die "überholten" Objekte löschen und das entsprechende "neue Objekt" aus dem Xref-Bereich in den Model-Bereich verschieben.

Man könnte zwar über (nentsel) an die Entity-Liste kommen und dann je nach Typ (Linie, Polyline, Block, usw.) die Objekte neu erzeugen (der oben erwähnte Aufwand), aber vielleicht gibts ja eine Möglichkeit zum schieben? (oder kopieren, denn löschen kann ich ja jetzt)

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 11. Jun. 2009 12:18    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 Geos 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Geos:
und das entsprechende "neue Objekt" aus dem Xref-Bereich in den Model-Bereich verschieben.

na dann ist die Methode vla-copyobjects [--> Googlestichwort]genau das richtige für dich

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 11. Jun. 2009 15:35    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

Soweit ich nach den (großteils englischen - ist ja anstrengender als arbeiten) Funden vermute,
sollte/könnte? die Syntax etwa so aussehen:

(vla-copyobjects    Quellblock=Xref    Objekt    Zielblock=ModelBereich) ?

Auf Grund dieser Vermutung hab ich mal folgendes gebastelt:

Code:
(defun c:mxobj
  (setq #actdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (setq #mspace (vla-get-modelSpace #actdoc))
  (setq #blk (vlax-ename->vla-object (car (entsel "\nWähle Xref: "))))
  (while (setq #vobj (vlax-ename->vla-object (car (nentsel "\nObjekt aus der Xref: "))))
    (vla-copyobjects
      #blk
      #vobj
      #mspace ;(auch mit #actdoc probiert)
    )
  )
)


Is allerdings falsch, wie die Antwort von ACAD zeigt:
Befehl: mxobj
Wähle Xref:
Objekt aus der Xref:
; Fehler: ActiveX-Server gab folgenden Fehler zurück:
unbekannter Name: CopyObjects

Da bereits in mehreren Variationen, aber ohne Erfolg probiert, bitte ich nochmal um Hilfe.

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 11. Jun. 2009 15:41    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 Geos 10 Unities + Antwort hilfreich

(vla-copyobjects
      #actdoc
      #vobj
      #mspace
)

Koordinaten wirst du allerdings noch anpassen müssen, da zu den koordinaten des Objektes in der Xref auch noch die Transformation der Xref in der akt. Zeichnung hinzukommt.
(ist die Xref ungleich skaliert gibts noch mehr Probleme .. ist aber wohl bei dir nicht der Fall)

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 11. Jun. 2009 15:53    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 Thomas

Deiner Antwort nach sollte das geschobene Objekt allerdings im Modellbereich auftauchen, wenn auch an falscher Position - oder

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 11. Jun. 2009 15:57    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 Geos 10 Unities + Antwort hilfreich

na ja , so sollte es zumindest bei Blöcken gehen , was Xrefs ja in gewisserweise auch sind .. ist jetzt aber alles ungetestet.

Kannst den Zugriff ja mit obiger MOVE-Funktion testen ...

------------------
      - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 11. Jun. 2009 16:00    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

...und kannst Du mit der Fehlermeldung was anfangen?

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 11. Jun. 2009 16: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 Nur für Geos 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Geos:
...und kannst Du mit der Fehlermeldung was anfangen?


ja .. der Xref-Block kennt keine Methode COpyobjects .. die kennt nur ein Document

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 15. Jun. 2009 07:57    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

Zitat:
na dann ist die Methode vla-copyobjects [--> Googlestichwort]genau das richtige für dich

Zitat:
der Xref-Block kennt keine Methode COpyobjects .. die kennt nur ein Document

Heißt das jetzt mein Vorhaben ist nicht möglich, oder wie 

------------------
Schöne Grüße
Ernst

www.geopaint.at

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 15. Jun. 2009 08:40    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 Geos 10 Unities + Antwort hilfreich

dann machs (ohne die Transformation) so :

(defun c:mxobj(/ RESULT OBJ NEWOBJ)     
  (setq RESULT (nentsel "\nObjekt aus der Xref: "))   
  (setq OBJ(car RESULT))
  (setq DATA(entget OBJ '("*")))
  (entmake DATA) 
)

über copyobjects muß man IMHO  die xrefdatabse als OBJECT-Parameter angeben .. ist mir jetzt zu aufwendig. sorry

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 15. Jun. 2009 18:37    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

Hallo Thomas

Ich hatte gehofft, dass es was "V-Lisp-iges" gibt, das alle Objekte kann (sind auch Blocks in der Xref)- natürlich ohne großen Aufwand.
Übrigens, die Transformation brauch ich nicht, beide Files haben das gleiche  Koord.System bzw. den gleichen Ursprung.

Danke für Deine Mühe.

------------------
Schöne Grüße
Ernst

www.geopaint.at

[Diese Nachricht wurde von Geos am 15. Jun. 2009 editiert.]

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 01. Jul. 2009 19:40    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

Wollt Euch noch nachliefern, was draus geworden ist - zwar eine etwas "russische" G'schichte, aber mir hat's geholfen.
Übrigens - die Original-Xref-Datei wird dadurch nicht verändert.

Code:
;Funktion (f#DeleteObjectFromBlock) von Jimmy Bergmarks
http://www.jtbworld.com/lisp/axblock.htm 

;;; Deletes the specified subentity from its block definition
;;; Arguments: the entity name of an item within a block reference
;;; Returns: the remaining item count of the block definition
;;; The drawing must be regenerated for the change to become visible
(defun f#DeleteObjectFromBlock (ent / doc blk)
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
ent (vlax-ename->vla-object ent)
blk (vla-ObjectIdToObject doc (vla-get-OwnerID ent))
  )
  (vla-Delete ent)
  (vla-get-Count blk)
)
;---------------------------------------------
(defun c:nmove (/ #elist #actdoc #obj #blk #xrefname #ename #elist #art #layer #objliste)
  ($undostart)
  (setq #actdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq #obj (entsel "\nObjekt aus der Xref: "))
    (setq #blk (vlax-ename->vla-object (car #obj)))
    (setq #xrefname (vla-get-Name #blk))
    (setq #ename (car (nentselp (cadr #obj))))
    (setq #elist (entget #ename '("*")))
    (setq #art (cdr (assoc 0 #elist)))
    (setq #layer (substr (cdr (assoc 8 #elist)) (+ 2 (strlen #xrefname))))
    (setq #elist (subst (cons 8 #layer) (assoc 8 #elist) #elist ))
    (setq #objliste (list "LINE" "LWPOLYLINE" "CIRCLE" "TEXT" "MTEXT" "ARC"))
    (if (member #art #objliste)
      (f#entmake #elist #layer #ename)
      (alert (strcat "das Objekt " #art " ist noch nicht freigegeben)"))
      ;bei neu auftauchenden Objekten erst prüfen, obs einwandfrei funktioniert
      ;dann in #objliste eintragen
    );if
  );while
  (command "_REGEN")
  ($undoend)
);defun
;---
(defun f#entmake (#elistx #layer #ename / #layobj)
  (if (setq #layobj (entsel "\nLayer von Objekt: <Nein> "))
    (progn
      (setq #layer (cdr (assoc 8 (entget (car #layobj)))))
    );progn
    (if (= 1 (crt2opt "Layer auswählen:" "Objekt auf welchen Layer legen?" (strcat "Akt. Layer:   " (getvar "CLAYER")) (strcat "Layer aus Xref:   " #layer) 1))
      (setq #layer (getvar "CLAYER"))
    );if
  );if
  (setq #elistx (subst (cons 8 #layer) (assoc 8 #elistx) #elistx ))
  (setq #lastobj (entlast))
  (if (/= #lastobj (entlast))
    (f#DeleteObjectFromBlock #ename)
  )
);defun


Edit - vergessener Hinweis:
die Funktion (crt2opt) stammt von hier: http://www.freecadapps.com/download.php?file=&filename=CreateDCL.exe&ID=4272

------------------
Schöne Grüße
Ernst

www.geopaint.at

[Diese Nachricht wurde von Geos am 01. Jul. 2009 editiert.]

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