Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Eplan > ACAD Blockdefinition

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:  Eplan > ACAD Blockdefinition (1198 mal gelesen)
rabu
Mitglied


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

Beiträge: 4
Registriert: 17.06.2005

erstellt am: 18. Jun. 2005 21: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

Hallo Zusammen,
ich bin neu im Forum und hoffe das mir jemand weiterhelfen kann.
Ich habe die Anforderung, Stromlaufpläne die nach dem Export nach DWG im Plottrahmen positionierte Texte enthalten, in einen Block mit Attributen automatisiert zu wandeln. Die in der Zeichnung enthaltenen Symbole sind schon korrekt gewandelt.
Die Texte , Einträge werden immer auf den gleichen Koordinaten stehen.

Für eure Hilfe wäre ich sehr dankbar!!!

Gruß

Ralf

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 19. Jun. 2005 00:24    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 rabu 10 Unities + Antwort hilfreich

Eigentlich ist die Aufgabenstellung nur schnell und fehlerfrei mit einem auf deine Anforderungen perfekt angepasstem Lisp realisierbar.

Falls du Lisp kannst, könntest du dieses Lisp (nur das Grundprinzip wird dort gezeigt, keine Musterlösung und sowieso nur ein Webfind) entsprechend deiner Aufgabenstellung anpassen:

Code:

(defun dxf (code ename)
(cdr (assoc code (entget ename)))
) ;_ end of defun

(defun text2att (/ block-exists blockname btble ss)
(setq block-exists t)
(while block-exists
  (setq blockname (getstring "Neuer Blockname: "))
  (setq btble (tblsearch "BLOCK" blockname))
  (if btble
  (progn
    (setq block-exists t)
    (prompt "\nBlock bereits vorhanden, anderen Namen wählen: ")
  ) ;_ progn
  (progn
    (setq block-exists nil)
  ) ;_ progn
  ) ;_ if
) ;_ while
(setq ss nil)
(prompt "\nD-Text(e) wählen : ")
(while (= ss nil)
  (setq ss (ssget '((0 . "TEXT"))))
  (if (= ss nil)
  (prompt "\nKeine D-TEXTE ausgewählt, nochmal: ")
  ) ;_ if
) ;_ while
(if ss
  (progn
  (make-attributes ss blockname)
  ) ;_ progn
) ;_ if
) ;_ text2att

(defun make-attributes (ss blockname / i tmsg pmsg t-str p-str en ins-pt txt-ht txt-str txt-style lyr btble)
(setq i    (- 1)
      tmsg  "\nAttribute Tag: "
      pmsg  (strcat "\nPrompt des Attributes wählen (ENTER "
    "falls wie der Attributname): "
    ) ;_ strcat
      t-str (getstring tmsg)
      p-str (getstring t pmsg)
) ;_ setq
(repeat (sslength ss)
  (setq en   (ssname ss (setq i (1+ i)))
ins-pt   (dxf 10 en)
txt-ht   (dxf 40 en)
txt-str   (dxf 1 en)
txt-style (dxf 7 en)
lyr   (dxf 8 en)
  ) ;_ setq
;;; **************** Make the block ************
  (setq btble (tblsearch "BLOCK" blockname))
  (if (= btble nil)
  (progn
    (entmake
    (list '(0 . "BLOCK")
  '(100 . "AcDbEntity")
  (cons 8 lyr)
  '(100 . "AcDbBlockBegin")
  (cons 2 blockname)
  '(70 . 2)
  (cons 10 ins-pt)
    ) ;_ list
    ) ;_ entmake
    (entmake
    (list '(0 . "ATTDEF")
  '(100 . "AcDbEntity")
  '(67 . 0)
  (cons 8 lyr)
  '(100 . "AcDbText")
  (cons 10 ins-pt)
  (cons 40 txt-ht)
  '(1 . "")
  (cons 7 txt-style)
  '(100 . "AcDbAttributeDefinition")
  (cons 3 p-str)
  (cons 2 (strcase t-str))
  '(70 . 0)
    ) ;_ list
    ) ;_ entmake
    (setq bname (entmake (list '(0 . "ENDBLK")
      '(100 . "AcDbEntity")
      (cons 8 lyr)
      '(100 . "AcDbBlockEnd")
) ;_ list
) ;_ entmake
    ) ;_ setq
  ) ;_ progn
  ) ;_ if
;;; *************** Insert the block ******
  (entmake (list '(0 . "INSERT")
'(100 . "AcDbEntity")
(cons 8 lyr)
'(100 . "AcDbBlockReference")
'(66 . 1)
(cons 2 bname)
(cons 10 ins-pt)
  ) ;_ list
  ) ;_ entmake
  (entmake (list '(0 . "ATTRIB")
'(100 . "AcDbEntity")
(cons 8 lyr)
'(100 . "AcDbText")
(cons 10 ins-pt)
(cons 40 txt-ht)
(cons 1 txt-str)
(cons 7 txt-style)
'(100 . "AcDbAttribute")
(cons 2 t-str)
'(70 . 0)
  ) ;_ list
  ) ;_ entmake
  (entmake '((0 . "SEQEND")))
  (entdel en)
) ;_ repeat
(princ)
) ;_ make-attributes

(defun c:tat () (text2att))
(prompt "\nMit TAT starten: ")

;|«Visual LISP© Format Options»
(110 1 70 2 nil "Ende von " 100 45 0 0 0 T T nil T)
;*** DO NOT add text below the comment! ***|;


Falls nein solltest du einen der sich mit CODen auskennt damit beauftragen.

------------------
MfG Proxy

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

Brischke
Ehrenmitglied V.I.P. h.c.
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

erstellt am: 19. Jun. 2005 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 rabu 10 Unities + Antwort hilfreich

Hallo Ralf,

im Grunde gibt es 2 Wege, deine Aufgabenstellung zu lösen.
a) man definiert die Blöcke neu mit Attributen und aktualisiert alle Einfügungen mit dem Befehl BATTMAN. Bei der Attributerstellung sollte man darauf achten, dass diese einen Wert haben, damit man diese auswählen kann. Danach kopierst du die Texte in die Attribute. Dabei können die folgenden Zeilen helfen:

Code:

(defun c:Dt2AttVal (/ txt Att)
  (setq txt (car(entsel"\nTextobjekt wählen: ")))
  (setq Att (car(nentsel"\nZielattribut wählen: ")))
  (entmod
    (subst (assoc 1 (entget txt))
          (assoc 1 (entget Att))
          (entget Att)
          )
    )
  (entupd(cdr(assoc 330(entget Att))))
  (princ)
  )
;Starten mit Dt2AttVal


(das kann man natürlich noch soweit aufbohren, dass mehrere Texte auch mehrere Attribute füllen)

b) Das Tool hängt automatisch einen Attributsatz an die bestehenden Blockreferenzen und füllt die Werte entsprechend der Texte.
Diese Variante ist sehr stark abhängig von deinem Zeichnungsaufbau.  Die immer gleichen Koordinaten wären hier schon mal ein Anhaltspunkt, damit das Tool die zum Insert gehörenden Texte automatisch sucht/findet.
Grundsätzlich wäre hier Proxys-Codeansatz schon das Grundgerüst des Programmes.

Bei Fragen ...

Grüße Holger


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

[Diese Nachricht wurde von Brischke am 19. Jun. 2005 editiert.]

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

rabu
Mitglied


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

Beiträge: 4
Registriert: 17.06.2005

erstellt am: 20. Jun. 2005 06: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

Hallo Proxy,

vielen Dank für deinen Hinweis.
Leider kann ich kein Lisp und bin deshalb auf eine Komplettlösung angewiesen.

Danke trotzdem, so bekomme ich auch mehr Einblick in das was und wie es gehen muesste.

MfG

Ralf

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

rabu
Mitglied


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

Beiträge: 4
Registriert: 17.06.2005

erstellt am: 20. Jun. 2005 06: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

Hallo Holger,

vielen Dank für deine Hilfe.

Ich werde mal schauen was ich mit deiner und Proxys Hilfe anfangen kann.

Danke

Ralf

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

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 20. Jun. 2005 08: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 rabu 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rabu:
Hallo Proxy,

vielen Dank für deinen Hinweis.
Leider kann ich kein Lisp [B]und bin deshalb auf eine Komplettlösung angewiesen...


Na, dann kann man sich so ein Programm doch bei einem geeigneten Programmierer bestellen. Anfrage nach kostenlosen individuellen Komplettlösungen geht für ein Forum eigentlich über die üblichen Hilfestellungen weit hinaus.

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

Udo Hübner

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