Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Blockdefinition neuladen mit ODBX

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:  Blockdefinition neuladen mit ODBX (424 mal gelesen)
Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 06. Jan. 2009 11: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 zusammen und frohes neues Jahr,
ich hole mir Blockdefinitionen aus anderen Dateien mit diesem Programmteil:

(if (setq blocks (vla-get-blocks DBX))
    (progn
      (setq i -1)
      (vlax-for ITEM blocks ;wenn Blockname aus Block_Collection in Liste, dann in temp-Liste
(if (member (strcase (vla-get-name ITEM))
    (mapcar 'strcase namenliste)
    )
  (setq temp (cons ITEM temp))
)
(setq i (1+ i))
      )
      (if temp
(progn
  (setq ARRAY (vl-catch-all-apply
'vlax-make-safearray
(list
  vlax-vbObject
  (cons 0 (1- (length temp)))
)
      )
  )
  (setq i -1)
  (mapcar '(lambda (A)
    (vlax-safearray-put-element ARRAY (setq i (1+ i)) A)
  )
  temp
  ) ; Blöcke ARRAY zuweisen
  (not (vl-catch-all-error-p
(vl-catch-all-apply
  'vla-CopyObjects ;_ die Blockdefinitionen in die Zeichnung kopieren
  (list ;_dabei evtl. Fehler abfangen
    DBX
    ARRAY
    (vla-get-Blocks
      (vla-get-activedocument (vlax-get-acad-object))
    )
  )
)
      )
  )
  (princ
    "\nEs wurden folgenden Blockdefinitionen in die Zeichnung eingefügt:"
  )
  (mapcar '(lambda (A)
    (princ (strcat "\n" (vla-get-name A)))
  )
  (reverse temp)
  )
)
(princ "\nEs wurden keine Blockdefinitionen eingefügt.")
      )
      (not (vl-catch-all-error-p
    (vl-catch-all-apply
      'vlax-release-object
      (list DBX) ;_DBX-Verknüfung wieder freigeben
    )
  )
      )
    )
  )

Wenn die Blockdefinition aber schon besteht wird sie leider nicht eretzt und genau das brauch ich aber.
Wenn ich die Blockdefinition mit WBLOCK rausgeschrieben habe und z.B. das mache:

(command "_.insert"
  (strcat blk_name "=" datname)
  "0,0"
  "1"
  ""
  "0"
  )

wird die alte Definition überschrieben.
Das hätte ich gern über ODBX.

Geht das ?
Und wenn ja, wie ?

Danke
Gruß
Andreas

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: 06. Jan. 2009 11: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 Nur für Andreas Kraus 10 Unities + Antwort hilfreich

wenn der Block in der Zeichnung schon existiert, löscht du alle Blockelemente via activX und durchläufts dann den Block in der anderen Zeichnung, sammelst die Blockelemente in einem safearray und machst dann vla-copy-objects .... genauso wie auch jetzt schon, bloß halt nicht mit blockdefs zum Doc sondern mit Objekten zur Blockdef als neuen Owner ...
code bekommst du sicher selber hin, so dass ich mir den Teil zwecks Übung deinerseits erübrige 

------------------
       - 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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 06. Jan. 2009 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

Danke,
ich glaub so mach ichs.
Wär ja auch zu einfach wenns einfacher ging 

Gruß
Andreas

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: 06. Jan. 2009 11: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 Nur für Andreas Kraus 10 Unities + Antwort hilfreich

Ist doch das gleiche Prinzip ... was soll da noch einfacher gehen ? ...

------------------
  - 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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 07. Jan. 2009 17:52    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

Ja, aber man muß halt noch die einzelnen Elemente "abarbeiten".
Ich darf doch wohl am Jahresanfang noch ein wenig faul sein - oder  ?
So nach dem Urlaub incl. Weihnachtsfressen und Silvesterfeier fällt jeder Tastendruck schwer  .

Mittleidsschreiben werden gerne entgegengenommen 

Gruß
Andreas

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