(SETQ *Doc* (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT))) (defun HatchToBackBlk (blkname / od_ent ent_obj) (SETQ od_ent (TBLOBJNAME "BLOCK" blkname)) (while (setq od_ent (ENTNEXT od_ent)) (setq ent_obj (VLAX-ENAME->VLA-OBJECT od_ent)) (if (and ; (= (vla-get-objectname ent_obj) "AcDbHatch") ; je to šrafování ; (equal (strcase (vla-get-patternname ent_obj)) "SOLID") ; vzor je SOLID (eq "HATCH" (strcase (getpropertyvalue od_ent "LocalizedName"))) (wcmatch (strcase (getpropertyvalue od_ent "PatternName")) "*SOLID") ) (vl-catch-all-apply (function (lambda () (VLA-MOVETOBOTTOM (VLA-ADDOBJECT (VLA-GETEXTENSIONDICTIONARY (VLA-ITEM (VLA-GET-BLOCKS *Doc*) blkname)) "ACAD_SORTENTS" "AcDbSortentsTable") (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbobject '(0 . 0)) (list ent_obj))) ) ) ) ) ) ) ) (defun blocks_in_table (/ result) (setq result (list)) (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (if ; (not (wcmatch (strcase (vla-get-name block) t) "*_space*")) (and (not (wcmatch (strcase (vla-get-name block) t) "*_space*")) ; don't include model & paper space (not (wcmatch (vla-get-name block) "*|*")) ; don't include xrefs or blocks inside xrefs ) (setq result (append result (list (vla-get-name block)))) ) ) result ) (defun c:hstb (/ blkname) (foreach blkname (blocks_in_table) (HatchToBackBlk blkname) ) (VLA-REGEN *Doc* 1) (princ) )