29.01.2014 13:07    

xpitonx_54
Arkadaşlar merhaba!

Autocad 2010 kullanıyorum.
Ekrandan çıktı almak için "window" ile belirlediğim alanın (çerçevenin) ekranda "line" yada "polyline" olarak çizili kalmasını istiyorum.Bu mümkün müdür? Bir de print alırken ekranda (model'de) önceden çizili çerçeveyi seçip de bu çerçeve içindekilerin çıktısını almak mümkün mü? Şİmdiden teşekkür ederim..

29.01.2014 14:24    

ehya
iki sorunuza ortak cevap olarak,
"mevcut komutlarda böyle birşey yoktur."

29.01.2014 14:36    

xpitonx_54
Peki bunun başka bir çözümü ya da kısa bir yolu var mıdır? Çıktısı alınacak tam 7453 grup çizimim var ve bu grupların en ve boyları farklı farklı ve de tüm bunlar "Acrobat Reader'de" hazırlanmış olan "fligran" içersine sığacak şekilde ayarlanacak :-)

29.01.2014 15:51    

ehya
lisp ile yapılabilir sadece..
o da özelleştirme kullanılarak dosyanıza ve bilgisayarınıza uygun bir şekilde yazılmalı.

29.01.2014 15:58    

özkan-wien
tarifini yaptiginiz sey "layout". bir secimin ciktisini birden fazla almak icin layout bicilmez Kaftan. hem de ayni kagit üzerinde farkli ölceklerde alabilirsiniz. digertürlü plot "window" icin koordinat girilmesi gerekir. Ehya üstadin dedigi gibi. Ben layout yokken böyle bi Lisp yazmistim.

29.01.2014 17:17    

ehya
özkan-vien




Layout geçmişi, yanlış hatırlamıyorsam Autocad R10 sürümünden beri var :) Paperspace adı ile geçiyordu. Daha sonra Layout adı verildi..

30.01.2014 10:13    

özkan-wien
dogrudur üstad ben acad12 den beri kullaniyorum o zamanlar layout falan kullanmiyoduk. :-)

özkan-wien (30.01.2014 10:26 GMT)

30.01.2014 10:24    

özkan-wien
simdi shan hurrley in sitesinden AutoCAD versiyonlari tarihcesine bakiyorum. layoutun ilk kez AutoCAD 2000 de ( Mart 1999) adi geciyor.
ilk AutoCAD versiyonu 1 Aralik 1982.

30.01.2014 11:55    

xpitonx_54
Yani şimdi binlerce grup çizimin ayrı ayrı ayarlanıp çıktısını almak için binlerce layout mu açmak gerekiyor ya da bir layout içinde binlerce altlık oluşturup ya da bir altlığı binlerce kez copy-past leyip bu çizimleri içersine oturtturmak mı gerekiyor?
Aslında benim istediğim ne biliyor musunuz? Bazı programlar ki bunu yaptı diye biliyorum.Print olayının bir layer ile ilişkilendirilmesi.Bu layer adı altında çizilen tüm kapalı alanların numaralandırılması ve print yaparken bize alan numarası sorması , girdiğimiz numaralı alanın önceden ayarlanmış print ayarları ile print edilmesi.Hiç olmadı şu print deki "window" ikonunu yanında "select area" gibi bir özelliğin olması.Bildiğiniz gibi günümüzde "Excel" programında artık macro ile çözülemeyen problem yok.Autocad de lisp ile bir çok problem çözülebiliyor.Acaba bu print olayı çözülebilir mi? Ya da ne gibi bir çözümü olabilir? Keşke lisp yazmasını bilebilsem :-) Herkese saygılar sunuyorum...

30.01.2014 12:01    

Travaci
Layoutdan çıktı alıyorsanız window yerine extents seçerseniz nokta göstermeye gerek kalmaz.

30.01.2014 12:19    

xpitonx_54
Bİraz açarsanız sevinirim.Bence bu pek pratik bir çözüm değil.Bu olay macro yazılım ile çözülür diye düşünüyorum.

30.01.2014 13:45    

ehya
Alıntı
özkan-wien :
simdi shan hurrley in sitesinden AutoCAD versiyonlari tarihcesine bakiyorum. layoutun ilk kez AutoCAD 2000 de ( Mart 1999) adi geciyor.
ilk AutoCAD versiyonu 1 Aralik 1982.



Layout adıyla haklısın. 1990 yılında R11 sürümüyle birlikte "paperspace" adıyla kullanıcıya sunuldu. Autocad 2000 ile birlikte daha gelişmiş hali layout oldu...

Autocad tarihçesi için TIKLAYIN...

30.01.2014 14:03    

özkan-wien
xpiton_54
senin derdini az cok anladim. sana bi dynamicblock yaptim. bu blogu plot almak istedigin yere yerlestirip numara vereceksin "plot no". sonra istedigin gibi uzatip kisaltabilirsin. sonra sana bi Lisp lazim bu dynamicblogun numarasini soracak ve ciktisini alacak.

plot yapilacak pencere numarasi "5" (diyelim mesela)
"plot" layerindaki Dynamik bloklardan plot-no su "5" olan bulunup
p1 ve p2 koordinatlari cekilip.
(command "-plot" "" "" "" "DWG To PDF.pc3" "" """-w" p1 p2 .....) bu ayarlar yapilip cikti alinacak.

30.01.2014 14:04    

özkan-wien
15847-testo.dwg
travaci ya da ehya bu konuda uzmanlar sana devaminda yardimci olabilirler belki.
kolay gelsin.

özkan-wien (30.01.2014 14:38 GMT)

30.01.2014 15:39    

xpitonx_54
özkan-wien , desteğin için çok teşekkürler.

(command "-plot" "" "" "" "DWG To PDF.pc3" "" """-w" p1 p2 .....) bu ayarı nasıl yapacağım?

Bu yalnız benim için değil bir çok insan için muazzam bir kolaylık olacak.Gerçekten lisp yazmasını bilmiyorum.Bu desteğin devamında yardımlarınızı bekliyorum.

31.01.2014 09:54    

özkan-wien
klavyenden yazarak test edeceksin. AutoCAD icinde command satirina "-plot" yazip gelen mesalari takip et yazici adi falan hepsini gir ve Lisp icin gerekli kodu elde et. senin ayarlarini burdan bilemem. deneyerek bulursun. "" isaretleri enter. klavyeden -plot dedikden sonra yaptigin hamleleri kod dilinde yukaridaki gibi yaz.

ancak bundan önemlisi sana bi secim seti gerekli.
@travaci kardese rica olunur.


*kullanici "plot-no" tagi icin sayi girisi "x"
*layeri "plot" olan "plot-no" tagi "x" olan dinamikblock secimi
*secilen dinamikblok icinden "p1" ve "p2" taginin valuelerini plot alirken acacagimiz pencerenin koordinatlarina atayacak bi Lisp lazim.


ama ben hala "layout" kullanman taraftariyim. cünkü her cikti alacagin bölgeye bu dinamicblogu yerlestirmekle layout icinde farkli pencereler hazirlamak Zaman olarak ayni is. Layoutta daha da fazla secenegin var üstelik.

31.01.2014 11:46    

Travaci
özkan-wien

Senin verdiğin dinamik block içindir... P1 ve p2 taglarını okur.
Seçim seti için sadece verdiğin dinamik blocku seçmesi için kodla uğraşamadım, öyüzden gösterilmesi gerekiyor, çalışırsa düzeltirim.



Plot ve ölçekle ilgili sorulara cevap vermekten kaçınıyorum, çünkü çok fazla soru sormak gerekebiliyor, sonunda ya anlaşamıyoruz yada ben bildiğimi anlatamıyorum :D ki plot la ilgili çok fazla şeyde bilmem...
Kod:

(defun c:plt (/ ss i en el pn pv p1 p2)
  (setvar "cmdecho" 0)
  (setq ss (ssget '((0 . "insert"))) i 0)
  (repeat (sslength ss)
    (setq en (ssname ss j) en (entnext en) el (entget en))
    (while (/= (cdr (assoc 0 el)) "SEQEND")
      (setq pn (cdr (assoc 2 el)) pv (cdr (assoc 1 el)))
      (if (= pn "P1") (setq p1 pv)) (if (= pn "P2") (setq p2 pv))
      (setq en (entnext en) el (entget en)))
    (command "-plot" "" "" "" "DWG To PDF.pc3" "" """-w" p1 p2 ...)
  )
  (princ)  
)

Command kısmına karışmadım, orasını siz ayarlarsınız, çalışıyormu diyede test edemedim. Siz command kısmına bakın öteki tarafları olmazsa müdehale ederim.

31.01.2014 12:41    

xpitonx_54
Arkadaşlar uğraştım didindim ama olmadı beceremedim.Entegrasyonu sağlayamadım.Macro çalışmadı.Ancak bu dili bilen bir arkadaş hazırlarsa ve sunarsa olaya vakıf olabilirim.Kusura bakmayın.

özkan-wien arkadaşım , inan "layout" da çalışmak hem bilgisayarı kasıyor hem de bu konuda pek pratiklik sağlamıyor.ben bundan önceki çizimlerimin her bir gurubunu "rectangle" içerisine aldım ve bütun bu çerçeveleri "plot" da "window" ile tek tek seçip pdf yaptım. Gerçekten 492 grup çizimimi "pdf" yapmak tam bir günümü aldı.İşte bu çerçeveler anlattığın gibi block lanıp numaralandırılsa istenildiği zaman istenilen numaralı çerçevenin çıktısı alınsa ya da hepsi otomatik print edilse vallahi deme keyfine.Neyse başınızı ağrıtmayayım. ))
Yardımlarınızı bekliyorum.Şimdiden teşekkürler.

31.01.2014 13:16    

özkan-wien
@travacinin yazdigi calismiyor test edememis zaten. ben yeniden derledim bu Lisp dinamicbloktan plot Windows penceresi icin acilacak pencerenin koordinatlarini aliyor.
sen sadece o dinamik blogu göstereceksin.

ikinci versiyonunu da yazdim ama ikisini birlestiremedim.
simdilik bunla idare et.
ancak (command "-plot" "" "" .... satirini sen kendin yazacaksin oraya Kadar hersey tamam.


(defun c:cikti (/ dxf ent p1 p2)
(defun dxf (code ent) (cdr (assoc code (entget ent))))
(if (and (setq ent (car (entsel "\nSelect an Attributed Block: "))))
(eq "INSERT" (dxf 0 ent))
(= 1 (dxf 66 ent)))
(while (not (eq "SEQEND" (dxf 0 (setq ent (entnext ent)))))
(if (= (dxf 2 ent) "P1")
(setq p1 (dxf 1 ent)) );if
(if (= (dxf 2 ent) "P2")
(setq p2 (dxf 1 ent))
)
);while
(princ)
);defun

özkan-wien (03.02.2014 08:19 GMT)

31.01.2014 13:18    

özkan-wien
bu lispte "plot-no" girisi ve cikti alinacak pencere numarsini sorup buluyor.


;plot penceresi bul

(defun c:ppbul (/ ent idx qty sel tag val p1 p2)
(cond
((null
(setq sel
(ssget "_X"
(list '(0 . "INSERT")
'(66 . 1)
(if (= 1 (getvar 'cvport))
(cons 410 (getvar 'ctab))
'(410 . "Model")
) ) ) ) )
(princ "\nNo attributed blocks found in current layout.") )
((or (= ""
(setq
tag (strcase (getstring "\nAttribute Tag adini girin: ")) ) )
(= ""
(setq
val (strcase
(getstring t "\nCiktisi alinacak Pencere Numarasi: ") ) ) ) ) )

(t
(repeat (setq idx (sslength sel))

(if
(not
(vl-some
'(lambda (att)
(and (= tag (strcase (vla-get-tagstring att)))
(= val (strcase (vla-get-textstring att))) ) )
(vlax-invoke
(vlax-ename->vla-object
(setq ent (ssname sel (setq idx (1- idx)))) )
'getattributes
) ) )
(ssdel ent sel) ) )
(if (< 0 (setq qty (sslength sel)))

(progn (sssetfirst nil sel)
(princ (strcat "\n" (itoa qty) " block(s) found."))
)
(princ "\nNo blocks found.") ) ) )
(princ)

(vl-load-com)

(princ))

Copyright © 2004-2022 SQL: 1.509 saniye - Sorgu: 98 - Ortalama: 0.0154 saniye