Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  2 ode 3 letzte Elemente

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:  2 ode 3 letzte Elemente (917 mal gelesen)
RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 26. Jan. 2005 16: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

Hallo

Ich will zwei oder drei letzt gezeichnete Elemente verschieben, drehen, und kopieren.
Jedoch es ist mir noch nicht klar wie soll ich das definieren.
Wenn ich will nur das letzte Element kopiren, drehen, verschieben dann geht es so:
----------------------------------------------------------------------
(command "_pline" pr1u schrpow6 schrpow6 sp4 sp4 pt11 pt10  "_a" "_r" 48.3 pr1u "")
(command "_.copy" (ENTLAST) "" (cdr(assoc 10 (entget (ENTLAST)))) pause
"_rotate" (ENTLAST) "" ptm  165.0
"_.move" (ENTLAST) "" (cdr(assoc 10 (entget (ENTLAST)))) pause )
--------------------------------------------------------------------
aber wenn ich schon so was habe dann geht es daneben
--------------------------------------------------------------------
(command "_pline" pt16 pt17 pt17 sp3 sp3 schrpow5  ptsu "_a" "_r" 48.3 pt16 ""
  "bogen" cncbog14 "e" cncbog13 "r"  48.30)
   
(command "_.copy" AW "" (cdr(assoc 10 (entget (ENTLAST)))) pause
"_rotate" AW "" ptm  105.0
"_.move" AW "" (cdr(assoc 10 (entget (ENTLAST))))
---------------------------------------------------------------
Ich habe auch mit (ssadd (entlast) AW) aber das war auch falsch.

Gruß
Roy

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 26. Jan. 2005 16:26    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 RoyCAD 10 Unities + Antwort hilfreich

spontan und ohne Ahnung:
vor dem erstellen "neuer" Objekte das letzte "merken" -- alles was danach exisistiert
(nach Erstellung der Elemente) ist dann eben "neu" und gehört in deinen Auswahlsatz..

gibt hier inen Thread dazu, müßte aber auch erst suchen..

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

RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 26. Jan. 2005 16:33    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 CADFFM
Ein Beispiel wäre nicht schlecht wen es geht

Danke!!

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 26. Jan. 2005 16: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 RoyCAD 10 Unities + Antwort hilfreich

;letzte Objekt ermitteln
(setq OBJ (entlast))
(setq ss (ssadd))

<Objekte erstellen>

(while  (setq OBJ (entnext OBJ))
(setq ss (ssadd OBJ ss))
)

///nicht berücksichtigt: komplexe Objekte.. muß also noch erweiert werden//

[Diese Nachricht wurde von cadffm am 26. Jan. 2005 editiert.]

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: 26. Jan. 2005 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 Nur für RoyCAD 10 Unities + Antwort hilfreich

Hi,
sag doch mal GENAU was Du willst...
Wenn Du die zu manipulierenden Objekte innerhalb Deiner Routine erzeugst, kannst Du Sie ja jeweils nach deren Erzeugung über (entlast) in 'ne Liste packen. Und alle Objekte in dieser Liste am Ende wieder verändern...
Code:

...
> Pgm erzeugt Objekt...
> dann:
(setq obj-lst (cons (entlast)  obj-lst))
...


...

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

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 26. Jan. 2005 22: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 Nur für RoyCAD 10 Unities + Antwort hilfreich

(entnext) ohne Elementnamen gibt das erste Element der Zeichnungsdatenbank zurück.
Davon ausgehend kann man auch das Xte "von hinten" bestimmen.
und den Rest natürlich wieder mit (entnext xtesElement).

Eine Routine dafür könnte so aussehen:

Code:

; diese Routine gibt den Elementnamen des
; x-letzten Objektes der Zeichnung zurück
(defun xvorletztem (x / pointer1 pointer2)
  (setq pointer1 (entnext)
        pointer2 Pointer1
  )
  (repeat (1+ x)
    (if pointer2 ; falls gar nicht x Objekte
                ; in der Zeichnung sind
      (setq pointer2 (entnext pointer2))
    )
  )
  (while pointer2
    (setq pointer2 (entnext pointer2)
          pointer1 (entnext pointer1)
    )  
  )
  pointer1
)


------------------
Mit freundlichem Gruß

Udo Hübner
----------
Der versteckte Fehler bleibt nie unentdeckt.

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 27. Jan. 2005 10: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 RoyCAD 10 Unities + Antwort hilfreich

@cadffm

;letzte Objekt ermitteln
(setq OBJ (entlast))
(setq ss (ssadd))


der vollständigkeitshalber
(setq obj (entlast)) (while (entnext obj) (setq obj (entnext obj)))


falls nämlich das letzte Objekt zufällig ein Block mit Attributen war, gibt (entlast)  den INSERT zurück, danach muss man noch mit (entnext) solange arbeiten bis auch die ATTRIBS und das SEQUEND durch sind.

------------------
WWW.FFZELL.AT.TC

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

RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 27. Jan. 2005 10:49    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 es funktioniert fast richtig aber den rest schaffe ich alein
Gruß
Roy

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