Gruppen nach löschen der Grafik noch gespeichert? / Lisp
romi1 05. Nov. 2008, 15:40

Hallo!
Habe festgestellt, das die Gruppen im DICTIONARY "ACAD_GROUP" auch nach dem Löschen der Grafiken, die eben die jeweilige Gruppe gebildet hatten, noch immer vorhanden sind. Warum werden die Gruppeneinträge beim Löschen aller Elemente einer Gruppe nicht mitgelöscht?
Anders gefragt: Gibt es eine Möglichkeit, nicht benötigte Gruppen (jene, von denen alle grafischen Elemente gelöscht sind) zu bereinigen?
Gruß,
Roman

CADmium 05. Nov. 2008, 15:51

 

Zitat:
Original erstellt von romi1:
Hallo!
Habe festgestellt, das die Gruppen im DICTIONARY "ACAD_GROUP" auch nach dem Löschen der Grafiken, die eben die jeweilige Gruppe gebildet hatten, noch immer vorhanden sind. Warum werden die Gruppeneinträge beim Löschen aller Elemente einer Gruppe nicht mitgelöscht?
Anders gefragt: Gibt es eine Möglichkeit, nicht benötigte Gruppen (jene, von denen alle grafischen Elemente gelöscht sind) zu bereinigen?
Gruß,
Roman

ja gibt es .. die Anworten , wie, hast du dir eigentlich schon selbst gegeben ... Analyses der Dictionaryeinträge und anschleißendes Löschen der entsprechenden..

Wenn du fertigen Code suchst ... im Forum oder per Google sollte was zu finden sein  .. ich klemm mir deshalb das posten eines solchen .. 


Und zum "Warum ist das so?"  .. Es gibt auch leere Blockdefinitionen, leere Texte.... die man theoretisch wieder Befüllen kann .. das gleiche mit Gruppen  .. warum also zwingend löschen ?? (obwohl ich das manchmal auch besser fände)

romi1 06. Nov. 2008, 09:04

Hi!
Sowas hab' ich leider befürchtet; Werde den Schrott vermutlich drinnen lassen, denn das Handling der DICTIONARYS fällt mir alles andere als leicht ...
Danke.

Gruß,
Roman

cadffm 06. Nov. 2008, 09:19

@Romi
Da ich nur ab und zu kleinigkeiten lisple muß ich bei sowas auch immer nachschauen,
das wird aber automatisch besser selbst wenn man nicht extra dafür "lernt".
Was ich noch sagen wollte:
Dir ist schon bekannt das es für sowas aber auch bereits Fertiglösungen gibt, ja ?

Dorfy 06. Nov. 2008, 09:28

Hi,

;;SUB;;; löschen aller gruppeneinträge mit 0 und 1 elemt aus der acadbibo
(defun APG (/ VlaObj) 
  (or AcadApp (setq AcadApp (vlax-get-acad-object)))
  (or ActvDwg
      (setq ActvDwg (vla-get-ActiveDocument AcadApp))
  )
  (vlax-for ForElm (setq VlaObj (vla-get-groups ActvDwg))
    (or
      (< 1 (vla-get-count ForElm))
      (vl-catch-all-apply 'vla-delete (list ForElm))
    )
  )
  (vlax-release-object VlaObj)
)

na dann mach mal was draus...
mfg heiko

romi1 07. Nov. 2008, 08:28

Hi!
@Dorfy:
Da ich mich nur im "normalen" Lisp, nicht aber im Active-X auskenne, will ich es zuerst mal auf die "alte" Art (namedobjdict, dictsearch, ...) versuchen. Schließlich will ich ja auch verstehen, was ich da anwende. Trotzdem VIELEN DANK.
Gruß,
Roman