Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Körper extrudiernen und in Block einfügen

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:  Körper extrudiernen und in Block einfügen (875 mal gelesen)
MH Bit
Mitglied
Angestellter


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

Beiträge: 20
Registriert: 23.03.2004

erstellt am: 21. Apr. 2004 12:25    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 möchte eine Fläche z.B. T-Träger-Querschnitt erstellen. Dieser muss anschließend gedreht werden. Danach möchte ich den Körper exdrudieren. Dieser Köper muß anschließend mit anderen Körpern verschmolzen und beschnitten werden.

Diesen neuen Körper möchte ich in einen Block packen um ihm dann noch ein paar Attribute mitgeben, Zahlenwerte die über eine Eingabemaske eingegeben wurden.

Ich bekomme den Körper gezeichnet, schafe es aber nicht den Körper in einen Block zu packen.

Eine Fläche zu zeichnen, und die dann in einen Bloch zu packen schaff ich auch, sobald ich diese exdrudieren will bekomme ich die Meldung: Konnte gewähltes Objekt nicht extrudieren.

Wer kann mir weiterhelfen

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: 21. Apr. 2004 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 MH Bit 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MH Bit:
Eine Fläche zu zeichnen, und die dann in einen Bloch zu packen schaff ich auch, sobald ich diese exdrudieren will bekomme ich die Meldung: Konnte gewähltes Objekt nicht extrudieren.

In der Reihenfolge sowieso nicht... Blockreferenzen können nicht extrudiert werden 

------------------
- Sebastian Mattis -

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

MH Bit
Mitglied
Angestellter


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

Beiträge: 20
Registriert: 23.03.2004

erstellt am: 21. Apr. 2004 12:55    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

Das man einen Block nicht exdtrudieren kann ist mir bekannt. Deshalb hab ich es in der Blockdefinition versucht.
Ich vermute das der Command Befhel hir nicht hin passt, hab aber keine Idee wie ich es sonst machen könnte.

Hier ist der Quelltext:

(defun c:test2()
  (entmake '((0 . "Block")(2 . "Testblock")(70 . 2)(10 0.0 0.0 0.0)))
 
  (entmake (append  '(
      (0 . "LWPOLYLINE"))
      (list(cons 8 "03-Überbau"))
      (list(cons 100 "AcDbEntity"))
      (list(cons 410 "Model"))
      (list(cons 100 "AcDbPolyline"))
      (list(cons 90 12)
          (cons 10 (list ubb1-pkt1x ubb1-pkt1y))
          (cons 10 (list ubb1-pkt2x ubb1-pkt2y))
  (cons 10 (list ubb1-pkt3x ubb1-pkt3y))
  (cons 10 (list ubb1-pkt4x ubb1-pkt4y))
  (cons 10 (list ubb1-pkt5x ubb1-pkt5y))
  (cons 10 (list ubb1-pkt6x ubb1-pkt6y))
  (cons 10 (list ubb1-pkt7x ubb1-pkt7y))
  (cons 10 (list ubb1-pkt8x ubb1-pkt8y))
  (cons 10 (list ubb1-pkt9x ubb1-pkt9y))
  (cons 10 (list ubb1-pkt10x ubb1-pkt10y))
  (cons 10 (list ubb1-pkt11x ubb1-pkt11y))
  (cons 10 (list ubb1-pkt1x ubb1-pkt1y))
      )))
  (setq ubb1 (cdr(assoc '-1 (entget (entlast)))))
  (command "_extrude" ubb1 "" "10" )
  (entmake '((0 . "ENDBLK")))
  (ins-test "Testblock")

)

Den ubb* sind natürlich entsprechende Werte zugewiesen

Michael

(defun ins-test (name)
  (regapp "xdatamicky")
  (entmake '((0 . "INSERT")(2 . "Testblock")(10 0.0 0.0 0.0)(-3 ("xdatamicky" (1000 . "dfs")))))

 
)

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: 21. Apr. 2004 13: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 MH Bit 10 Unities + Antwort hilfreich

zwischen
(entmake '((0 . "Block")(2 . "Testblock")(70 . 2)(10 0.0 0.0 0.0)))
(entmake '((0 . "ENDBLK")))

kanst du nur mit entmake erstellte objekte in die blockdefintion packen , und nicht welche die mit command erzeugt wurden!!

command "extrude" verändert die polylinie nicht, sondern erzeugt daraus ein neues element

da hilft nur , mit command "extrude" teil erzeugen, mit (entlast) neu erzeugtes tel holen, und dann daraus block machen

------------------

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

MH Bit
Mitglied
Angestellter


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

Beiträge: 20
Registriert: 23.03.2004

erstellt am: 23. Apr. 2004 10:19    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 Fuchsi,

Danke für deinen Tip, aber leider klappt das immer noch nicht. Ich hab den code vollgendermassen geändert:

(defun c:test2()

  (entmake (append  '(
      (0 . "LWPOLYLINE"))
      (list(cons 8 "03-Überbau"))
      (list(cons 100 "AcDbEntity"))
      (list(cons 410 "Model"))
      (list(cons 100 "AcDbPolyline"))
      (list(cons 90 12); 12 kontrollpunkte
          (cons 10 (list ubb1-pkt1x ubb1-pkt1y)); kontrollpunkte
          (cons 10 (list ubb1-pkt2x ubb1-pkt2y))
  (cons 10 (list ubb1-pkt3x ubb1-pkt3y))
  (cons 10 (list ubb1-pkt4x ubb1-pkt4y))
  (cons 10 (list ubb1-pkt5x ubb1-pkt5y))
  (cons 10 (list ubb1-pkt6x ubb1-pkt6y))
  (cons 10 (list ubb1-pkt7x ubb1-pkt7y))
  (cons 10 (list ubb1-pkt8x ubb1-pkt8y))
  (cons 10 (list ubb1-pkt9x ubb1-pkt9y))
  (cons 10 (list ubb1-pkt10x ubb1-pkt10y))
  (cons 10 (list ubb1-pkt11x ubb1-pkt11y))
  (cons 10 (list ubb1-pkt1x ubb1-pkt1y))
      )))
  (setq ubb1 (cdr(assoc '-1 (entget (entlast)))))
  (command "_extrude" (cdr(assoc '-1 (entget (entlast)))) "" "10" "0")
  (entmake '((0 . "Block")(2 . "Testblock")(70 . 2)(10 0.0 0.0 0.0)))
  (entget (entlast))

  (entmake '((0 . "ENDBLK")))
  (ins-test "Testblock")

)

Der Block der so erzeugt wird ist leer. Kannst du mir vileicht die Letzten Zeilen, so ab (entmake '((0 . " Block")..
mit dem (entlast) basteln?

Ich glaub ich seh dn Wald vor lauter Bäumen nicht mehr.

Gruß Michael

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: 26. Apr. 2004 10:04    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 MH Bit 10 Unities + Antwort hilfreich

Hallo Michael,

so wie fuchsi es bereits geschrieben hat: Du musst die zu einem Block gehörigen Elemente zwischen dem
(entmake "BLOCK") und (entmake "ENDBLOCK") mit (entmake ..) erzeugen.
Das fehlt bei dir. Ich würde das Element, welches du mit (command erzeugt hast, als 'Kopiervorlage' nutzen.
(entmake ..);Block
;;;
(entmake(vl-remove-if '(lambda (X)
  (member (car X) '(-1 5))
  )
    (entget (entlast))
    ))
;;;
(entmake ..);ENDBLK

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

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