Copyright © 2004-2022 SQL: 1.29 saniye - Sorgu: 75 - Ortalama: 0.0172 saniye
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:
|
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.
|