23.12.2022 05:55    

bayankapris61
Merhabalar,
İnsert objeler, dynamik block nesneler içerisindeki hatchleri toplu bir şekilde seçebilmek mümkün müdür, buna ilişkin bir komut var mıdır? Bilgisi olan yardım edebilir mi.

23.12.2022 05:58    

ehya
Merhaba

Blok içindeki hatch'leri topluca seçemezsiniz. Sadece tek tek seçip birer kopyalarını çıkartabilirsiniz.

Merak ettim. Blok içindeki hatch'leri topluca seçmek istemenizin mantığı nedir?

23.12.2022 06:05    

bayankapris61
regen yapabilmek için bazı dynamik bloklarımdaki hatchler deforme gözüküyor ve geçiş yapmadan düzelmiyor. Design Centerdan yapmaya çalıştım ama similar olanlara işliyor, diğerleri için de yapmam gerekiyor sürekli.

23.12.2022 06:27    

ehya
Anladım.. Vakit bulabilirsem bununla ilgili bir lisp yazmaya çalışayım..

23.12.2022 06:59    

bayankapris61
Aslında block içindeki hatch leri silen bir lisp üzerinden bir çalışma yaptım. Amacım öncesinde blockların içindeki hatchlerin seçiminden sonra regen veya update edebilmek. Yardımcı olur mu bilemiyorum. Sonuç; çalışmadı.
(defun C:Regen_Hatch_Block (/ et x y te)
(setq et (vla-get-Activedocument (vlax-get-acad-object)))
(vla-startundomark et)
(if (setq te (ssget "x" '((0 . "hatch"))))
(progn
(setvar 'cmdecho 0) (command "_.regen" te "")
)
)
(vlax-for x (vla-get-blocks et)
(if (and (eq :vlax-false (vla-get-isLayout x))
(eq :vlax-false (vla-get-isXref x)))
(vlax-for y x
(if (wcmatch (vla-get-objectname y) "AcDbHatch")
(vl-catch-all-apply 'vla-regen (list y))
)
)
)
)
(vla-endundomark et)
(vla-regen et acAllViewports)
;(vla-Regen (vla-get-activedocument (vlax-get-acad-object)) acAllViewports)
(princ)
)

23.12.2022 10:41    

mttlp
Yanlış

23.12.2022 12:05    

ehya
Lee-Mac benzer birşey yazmış. Hatch nesnesine uyarladım. Bu lispi kullanabilirsin.


Kod:

(defun LM:ApplytoBlockObjects ( blks name func / def result )
    (setq func (eval func))
    (if (not (vl-catch-all-error-p (setq def (vl-catch-all-apply 'vla-item (list blks name)))))
        (vlax-for obj def (setq result (cons (func obj) result)))
    )
    (reverse result)
)

(defun LM:getowner ( obj )
    (eval
        (list 'defun 'LM:getowner '( obj )
            (if (vlax-method-applicable-p obj 'ownerid32)
                (list 'vla-objectidtoobject32 (LM:acdoc) '(vla-get-ownerid32 obj))
                (list 'vla-objectidtoobject   (LM:acdoc) '(vla-get-ownerid   obj))
            )
        )
    )
    (LM:getowner obj)
)


(defun LM:acdoc nil
    (eval (list 'defun 'LM:acdoc 'nil (vla-get-activedocument (vlax-get-acad-object))))
    (LM:acdoc)
)

(defun LM:sortentstable ( obj / dic )
    (cond
        (   (LM:catchapply 'vla-item (list (setq dic (vla-getextensiondictionary obj)) "acad_sortents")))
        (   (LM:catchapply 'vla-addobject  (list dic "acad_sortents" "AcDbSortentsTable")))
    )
)

(defun LM:catchapply ( fnc prm / rtn )
    (if (not (vl-catch-all-error-p (setq rtn (vl-catch-all-apply fnc prm))))
        rtn
    )
)


(defun LM:safearrayvariant ( typ lst )
    (vlax-make-variant
        (vlax-safearray-fill
            (vlax-make-safearray typ (cons 0 (1- (length lst))))
            lst
        )
    )
)

(defun LM:movetobottom ( obs / tab )
    (if (and (or (= 'list (type obs)) (setq obs (LM:ss->vla obs)))
             (setq tab (LM:sortentstable (LM:getowner (car obs))))
        )
        (not (vla-movetobottom tab (LM:safearrayvariant vlax-vbobject obs)))
    )
)
(defun c:BLDR ( / s )
    (princ "\nSelect Block: ")
    (if (setq s (ssget "_+.:E:S" '((0 . "INSERT"))))
      (progn
        (LM:ApplytoBlockObjects
            (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
            (vla-get-effectivename (vlax-ename->vla-object (ssname s 0)))
           '(lambda ( obj ) (if (= "AcDbHatch" (vlax-get obj 'objectname)) (LM:movetobottom (list obj))))
        )(vla-regen (vla-get-activedocument (vlax-get-acad-object))acActiveViewport)
    ))
    (princ)
)
(vl-load-com) (princ)

23.12.2022 13:17    

baha07
merhabalar
lispin calismasi icin ne yapmamiz gerekiyor ,
select oblects kismindan sonra hicbir islem yapmiyor

Command: BLDR
Select Block:
Select objects:
Command:

23.12.2022 13:25    

ehya
Merhaba baha07

Komutu çalıştırın ve blok nesnesini seçin. Eğer blok içinde Hatch nesnesi var ise, bunları Draworder_Back yapacaktır.

> 1 <
Copyright © 2004-2022 SQL: 1.29 saniye - Sorgu: 75 - Ortalama: 0.0172 saniye