Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Insert verschieben in anderen Insert

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:  Insert verschieben in anderen Insert (1504 mal gelesen)
HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 21. Aug. 2017 18:01    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 habe eine Anzahl Inserts auf der obersten Ebene.
Um die eigentliche Struktur besser darzustellen möchte ich nun einige Inserts in einen anderen Insert verschieben.
Also ein Insert wird zum Haupt-Insert auf der obersten Ebene und die Subinserts werden in den Haupt-Insert verschachtelt und sind nicht mehr auf der obersten Ebene.
Für dieeses nachträgliche Verschieben suche ich eine Lisp-Funktion die die beiden Handles übergeben bekommt und die Verschachtelung ausführt. Grafisch soll sich dabei nichts ändern.

Grüsse,
Hans-Peter

------------------
Hans-Peter

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: 21. Aug. 2017 18: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 HPW 10 Unities + Antwort hilfreich

... schön, und was ist deine Frage?

Wie weit bist du mit deinem Code?
An welcher Stelle der Aufgabenstellung fehlt dir der Lösungsansatz?

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 21. Aug. 2017 18:58    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,

Naja die Frage war: ...eine Lisp-Funktion die die beiden Handles übergeben bekommt und die Verschachtelung ausführt.

Code habe ich noch nicht. Ich habe schon mal eine Funktion programmiert die einen Block durchliesst und Entyties darin mit (entmod .) modifiziert.
Habe auch schon bei meiner Suche code gesehen wo mit entmake neue Blöcke erstellt wurden.
Was jetzt der beste Weg ist einen vorhandenen Block um einen Sub-Block zu erweitern, da fehlt mir der Ansatz wie das am besten gemacht wird.

Grüsse,
Hans-Petet

------------------
Hans-Peter

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 21. Aug. 2017 21: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 Nur für HPW 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HPW:
Hallo,

Naja die Frage war: ...eine Lisp-Funktion die die beiden Handles übergeben bekommt und die Verschachtelung ausführt.

Code habe ich noch nicht. Ich habe schon mal eine Funktion programmiert die einen Block durchliesst und Entyties darin mit (entmod .) modifiziert.
Habe auch schon bei meiner Suche code gesehen wo mit entmake neue Blöcke erstellt wurden.
Was jetzt der beste Weg ist einen vorhandenen Block um einen Sub-Block zu erweitern, da fehlt mir der Ansatz wie das am besten gemacht wird.

Grüsse,
Hans-Petet



Ich nehme an, Du willst ein Insert nicht in ein anderes Insert, sondern in eine vorhandene Blockdefinition verschieben. Das geht nicht. Du kannst eine Blockdefinition nicht wie eine Datei oder wie ein Pickset öffnen und neue Zeilen oder Elemente dran hängen. Du musst die Blockdefinition mit ihren bisherigen Entities und zusätzlich Deinem Insert neu erzeugen. Die Referenzen auf diese Blockdefinition (also die Inserts in Deiner DWG, die sich darauf beziehen), werden mit ENTUPD aktualisiert und zeigen dann auch den neuen Inhalt an.

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 07:14    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,

Danke für die Klarstellung. Ich denke ich hab jetzt die Vorgehensweise verstanden.

Block durchlesen und Daten einsammeln.
Insert's anhängen.
Block neu erzeugen.
SubInsert auf oberer Ebenen löschen.

Grüsse,
Hans-Peter


------------------
Hans-Peter

[Diese Nachricht wurde von HPW am 22. Aug. 2017 editiert.]

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: 22. Aug. 2017 07:50    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 HPW 10 Unities + Antwort hilfreich

... noch ein Hinweis: den SubInsert kannst du nicht einfach mit den Koordinaten, wie dieser im Modellbereich eingefügt ist, übernehmen. Du musst die Lage, Drehung/Skalierung auf den Block umrechnen, der den Hauptblock darstellt, und durch den HauptInsert repräsentiert wird.
Ist dieser gedreht und skaliert und auf irgendeiner Koordinate eingefügt, und du fügst den SubInsert einfach so, wie dieser im Modellbereich dargestellt ist, hinzu, ändert sich die Lage, also auch das Erscheinungsbild der Zeichnung.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 08: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

Hallo,

Danke für den Hinweiss. Werde es testen.

Grüsse,
Hans-Peter

------------------
Hans-Peter

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 11:38    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,

Habe nun ein Problem:

Code:

ent_info1 : ((0 . INSERT) (330 . <Objektname: 7efec4d0>) (5 . 140D8) (100 .
AcDbEntity) (67 . 0) (8 . KCAD) (100 . AcDbBlockReference) (2 .
GEN22B0C0ABJVE9) (10 0.0 0.0 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0)
(70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 1433C) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.010]_J5253_DK_1_1_1) (10 505.0 -7.0 1.55431e-015)
(41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 .
0.0) (210 0.0 2.22045e-016 1.0))
Nach entmake ent_info2

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 146B0) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.020]_J7253_DR_1_1_1) (10 505.0 -1.06581e-014 25.0)
(41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 .
0.0) (210 0.0 2.22045e-016 1.0))
Ungültiges komplexes Objekt.
Nach entmake ent_info2

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 147E4) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.030]_J9251_DT_1_1_1) (10 505.0 -455.0 25.0) (41 .
1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 2.22045e-016 1.0))
Nach entmake ent_info2

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 14926) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.040]_J9251_DT_1_1_2) (10 952.0 -455.0 25.0) (41 .
1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 2.22045e-016 1.0))
Ungültiges komplexes Objekt.
Nach entmake ent_info2

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 14A71) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.050]_J0443_DE_1_1_1) (10 952.0 -26.2 322.9) (41 .
1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 2.22045e-016 1.0))
Nach entmake ent_info2

ent_info2 : ((0 . INSERT) (330 . <Objektname: 7efe0240>) (5 . 14BC7) (100 .
AcDbEntity) (67 . 0) (410 . Model) (8 . kcadsbg) (100 . AcDbBlockReference) (66
. 1) (2 . INT225751_[__200.060]_J0443_DE_1_1_2) (10 952.0 -26.2 622.9) (41 .
1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 2.22045e-016 1.0))
Ungültiges komplexes Objekt.
Nach entmake ent_info2

EndBlk.


In ent_info1 steht die Entget-Liste eines schon im Hauptblock enthaltenen SubBlock. Der wird so übernommen und es entsteht der neue Block.

Beim ersten SubBlock in ent_info2 wirft er keinen Fehler bei entmake.
Bei zweiten dann: Ungültiges komplexes Objekt.

Entget-Liste sieht aber so ähnlich aus wie bei der ersten.
Und dann kommt der Fehler bei jedem zweiten SubBlock

Jemand eine Idee?

Grüsse,
Hans-Peter

------------------
Hans-Peter

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: 22. Aug. 2017 11: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 HPW 10 Unities + Antwort hilfreich

... wie sieht der Code dazu aus?
Jedes Objekt existiert nur ein einziges mal in der Zeichnung. Daher erscheint es mir etwas wirr, weshalb 2x entmake gemacht wird?

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 11: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

Code:

(setq OldBlockName (strcase (cdr (assoc 2 (entget HposEnt))))) ;
(setq rewind T) ;
(while (setq Info (tblnext "BLOCK" rewind)) ;
(setq BlockName (strcase (cdr (assoc 2 Info)))) ;
(if (= OldBlockName BlockName) ;
(setq BlockInfo Info) ;
) ;
(setq rewind nil) ;
) ;ende while
(if BlockInfo ;
  (progn ;
(setq ent_name (cdr (assoc -2 BlockInfo))) ;
; header definition:
(entmake ;
(list (cons 0 "BLOCK") ;
  (cons 2 NewBlockName) ;
  (cons 70 2) ;
  (cons 10 (list 0 0 0)) ;
) ;
) ;
; body definition:
(entmake (cdr (entget ent_name))) ;
(while (setq ent_name (entnext ent_name)) ;
(setq ent_info (cdr (entget ent_name))) ;
; (setq ent_typ (cdr (assoc 0 ent_info))) ;
(princ "\n\nent_info1 : ")
(princ ent_info)
(entmake ent_info) ;
) ;ende while
; UPOS binding:
(if (setq masterliste (getref HposEnt "CADT_CAB_MASTER")) ;wenn master
(progn ;
(setq masterliste (reverse masterliste)) ;Liste in richtige Reihenfolge
(foreach m masterliste ;
(if (handent m) ;
(if (getvareed0 (handent m) "CADT_MBI_VAR" "") ;
(progn ;
(setq ent_info (cdr (entget (handent m))));
(princ "\n\nent_info2 : ")
(princ ent_info)
(entmake ent_info) ;
(princ "\nNach entmake ent_info2\n")
) ;ende progn
) ;ende if
) ;ende if
) ;ende foreach
) ;ende progn
) ;ende if
; footer definition:
(princ "\n\nEndBlk")
(entmake (list(cons 0 "ENDBLK")))
(setq adat0(CADT:WOINT:GETTXT HposEnt 0) ;
adat1(CADT:WOINT:GETTXT HposEnt 1) ;
adat2(CADT:WOINT:GETTXT HposEnt 2) ;
adat3(CADT:WOINT:GETTXT HposEnt 3) ;
adat4(CADT:WOINT:GETTXT HposEnt 4) ;
adat5(CADT:WOINT:GETTXT HposEnt 5) ;
adat6(CADT:WOINT:GETTXT HposEnt 6) ;
adat7(CADT:WOINT:GETTXT HposEnt 7) ;
adat8(CADT:WOINT:GETTXT HposEnt 8) ;
adat9(CADT:WOINT:GETTXT HposEnt 9) ;
adat10(CADT:WOINT:GETTXT HposEnt 10) ;
adat11(CADT:WOINT:GETTXT HposEnt 11) ;
) ;
(command "._INSERT" NewBlockName pause "1" "1" pause adat0 adat1 adat2 adat3 adat4 adat5 adat6 adat7 adat8 adat9 adat10 adat11)
  ) ;
) ;ende if

------------------
Hans-Peter

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 11: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

Hallo,

Habe da was gefunden:

http://ww3.cad.de/foren/ubb/Forum54/HTML/009903.shtml

Die SubBlöcke enthalten auch Atrribute.
Muss weiter suchen.

Grüsse,

------------------
Hans-Peter

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 22. Aug. 2017 12:10    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 HPW 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HPW:
Hallo,

Habe da was gefunden:

http://ww3.cad.de/foren/ubb/Forum54/HTML/009903.shtml

Die SubBlöcke enthalten auch Atrribute.
Muss weiter suchen.

Grüsse,



Attribute sind eigenständige Entitis, die in der DWG liegen. Die werden den Inserts nur angehängt (Flag "Elemente folgen"). Die musst Du unterscheiden von Attributdefinitionen, die wiederum in den Blockdefinitionen enthalten sind. Die Attributdefinitionen sind nur dazu da, den Anwender beim Einfügen einer Blockreferenz nach den entsprechenden Attributwerten zu fragen bzw die Attribute mit vordefinierten Werten an die Inserts zu hängen.

Ich hab' mir Deinen Code nicht angesehen, aber der Hinweis hilft Dir vielleicht weiter: Du brauchst nur die Blockdefinition durchzugehen, um dort alle darin stehenden Entities (auch die Attributdefinitionen, ud auch die ATTRIBs eventuell drin stehender Inserts) zu sammeln. Dazu schreibst Du Dir eine sehr einfache und übersichtliche Funktion, die den Blocknamen als Input erhält und als Rückgabewert die Liste der ENamen der Blockdefinition zurück gibt. Bei der Neudefintion der Blockdefinition gehst Du einfach diese Liste durch, und erzeugst die Entities mit (entmake (entget ename))) neu. Und dann hängst Du einfach Deine Inserts noch dran, bevor Du die Blockdefinition beendest.

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 12:38    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,

Was du beschrieben hast, meine ich auch so zu tun.
Ohne Dranhängen der SubBlock's funktioniert das ja auch.
Nur beim 'Einfach Dranhängen' kommt ja der Fehler.

Grüsse,

------------------
Hans-Peter

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 22. Aug. 2017 14:07    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 HPW 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HPW:
Hallo,

Was du beschrieben hast, meine ich auch so zu tun.
Ohne Dranhängen der SubBlock's funktioniert das ja auch.
Nur beim 'Einfach Dranhängen' kommt ja der Fehler.

Grüsse,




Warum nennst Du das Ding "Subblock"? Du hängst ein INSERT Entitiy an. Und das sollte keinen Fehler ergeben. Wie eine INSERT-Entmake-Liste aussieht, kannst Du ja leicht abfragen. Und wenn Du uns hier nicht mitteilst, welche Fehlermeldung Dir ausgegeben wird, können wir nur unsere leider ziemlich schlecht funktionierenden Kristallkugeln befragen. darauf hab' ich keine Lust.

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 14:31    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,

Entschuldigung wenn ich es nicht klar genug beschrieben habe.

Im Post 8 hatte ich sowohl die jeweilige entmake-Liste ausgegeben als auch die Fehlermeldung: Ungültiges komplexes Objekt.

Im Post 10 dann der code mit den princ-Ausgaben die zum Post 8 paasen.

Was fehlt dazu noch?

Grüsse,


------------------
Hans-Peter

[Diese Nachricht wurde von HPW am 22. Aug. 2017 editiert.]

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: 22. Aug. 2017 15: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 HPW 10 Unities + Antwort hilfreich

HP

Ohne die Sache genauer zu prüfen greife ich den Hinweis von oben erneut auf:
Du erzeugst ein INSERT mit der Eigenschaft '(66 . 1), Acad erwartet also
nachfolgend mind. ein Attribut, anstatt eines Attributes kommt ein weiteres Insert: MÖÖÖP Fehler.

Da du offenbar noch keine Attributierten Blockreferenzen erstellt hast,
teste erst einmal mit ein paar Test-Zeilen.
Wenn du dies dann kannst, dann steht auch der Verwendung/Erzeugung für eine Blockdefinition nichts im Wege:

; Insert 66 . 1
(progn
(entmake e2_insert_66=1)
(entmake e2_folgendes_Attribute1) ; ein Attribut folgt
(entmake e2_folgendes_Attribute2) ; wenn ein Zweites folgt, usw.
(entmake '((0 . "SEQEND"))) ; erst hier ist eine Blockreferenz mit Attributen "fertig"
)


; Block
(progn
(entmake '((0 . "BLOCK")(2 . "TEST555")(70 . 2)(10 0.0 0.0 0.0)))
(entmake e1) ; Irgendein Objekt

(entmake e2_insert_66=1)
(entmake e2_folgendes_Attribute1)
(entmake e2_folgendes_Attribute2) ; wenn ein Zweites folgt, usw.
(entmake '((0 . "SEQEND"))) ; erst hier ist eine Blockreferenz mit Attributen "fertig"

(entmake e3) ; Irgendein anderes Objekt
(entmake (list(cons 0 "ENDBLK"))) ; Blockende
; TEST
(command "_.-INSERT" "TEST555" (while (> (getvar "cmdactive") 0) (command pause)))
)

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 22. Aug. 2017 15:51    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,

Danke für den Tip.
Ich denke das es das sein wird.
Ich hatte gerade einen Block händisch erzeugt mit denselben Inserts und dann die Daten ausgelesen. Da stehen dann die Attribute und das SEQEND dazwischen. Werde es testen.

Grüsse,

------------------
Hans-Peter

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

HPW
Mitglied
Holz-Techniker


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

Beiträge: 80
Registriert: 11.01.2005

Dell Precision T3610
Autocad 2016

erstellt am: 23. Aug. 2017 12:01    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,

Danke nochmal an alle die mir geduldig auf den richtigen Weg geholfen haben.

Ich hatte noch etwas zu kämpfen, aber jetzt funktioniert es.
Man muss verstehen das an den neuen Haupt-Block ATTDEF dran gehängt werden müssen und an die INSERTS aber die ATTRIB. Die muss man dann auch erst mal ermitteln. Das Transformieren des Einfügepunkts der Inserts ins Block-Koordinaten-Systems war nach obigen Hinweisen auch möglich. Zum Schluss noch Weglöschen der INSERTS auf der Hauptebene und gut wars.

Grüsse,

------------------
Hans-Peter

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 23. Aug. 2017 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 HPW 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HPW:

Man muss verstehen das an den neuen Haupt-Block ATTDEF dran gehängt werden müssen und an die INSERTS aber die ATTRIB.

Die ATTDEFs sind nicht zwingend nötig. Du kannst auch an ein INSERT, dessen Blockdefinition keine ATTDEFs hat, problemlos ATTRIBs anhängen. Ob die ATTDEFs nötig sind, hängt davon ab, ob die INSERTs auch händisch, also nicht durch eine Applikation, eingesetzt werden sollen.

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