AutoCAD • AutoLISP • Programlama • Püfler • Komutlar • Terimler • Eğitim
aLd • TCad • FacadeCAD • Cephe Kot • HQ Library • FreeMUST • Pasdoc.A
15.06.2012 12:19    

waytooraider
Åžahin Hocam,

Farklı layerlarla ebl bloğu oluşturduğumda layoff ve layiso komutları mükemmel çalışyor.
Ama herhangi bir layerda oluşturduğum ebl bloğu kopyalayıp layer'ını değiştirdiğimde layoff yada layiso'da hepsi birden gizleniyor.

Bu konu benim için çok önemli çünkü şantiye ilerledikçe önceden oluşmuş blokların layerını kendim manuel değiştiriyorum.Mesela yapıldı yapılmadı layer'ı diye. Yapıldı layerını lay iso yapınca yapılmadı layer'ıda lay iso oluyor.Aynı şey layoff içinde geçerli. Umarım sıkıntımı anlatabilmişimdir.

Saygılarımla.

15.06.2012 13:22    

ProhibiT
Daha bu gün ele aldığımız bir konu var. Block tanımındaki (BLock Definition) objelerin Layer'larını değiştirmeden, yalnızca Insert (bLock Reference) objelerinin yerini değiştirince, ortaya çıkan kargaşa ile ilgili olarak bir fonksiyon paylaşmıştık. Sizin Probleminiz de bundan kaynaklanıyor sanıyorum.



Linkleri görebilmek için ÜYE olmalısınız.

linkindeki bLsoL fonksiyonunu kullanarak mevcut ebL blocklarınızın Layer'larını değiştirirseniz bahsettiğiniz problem ortadan kalakacaktır diye düşünüyorum.

Bir deneyin, çözüm olmazsa bir yolunu bulmaya çalışırız.

15.06.2012 13:55    

waytooraider
Hocam,

Dediğiniz blsol fonksiyonu çalıştırdım ebl bloğuna ait; faklı layerdaki blokları, referans aldığım bloğun layerına çeviriyor.

Blsol fonksiyonu bu arada çok başarılı imiş. Ama istediğim sonucu alamadım.

Ald fonksiyonunu ile bi tane blok oluşturalım. o bloğu kopyalayıp kopya bloğun layerını değiştirelim. sonra herhangi birini layoff yaptığımızda ikiside gizleniyor.Sadece seçtiğim layerın gizlenmesini istiyorum:)

Blokların içindeki nesnelerin layerı 0 olmalı dimi ?.Konuyla alakasız oldu ama neyse:)

Sonsuz Saygılarımla.

15.06.2012 20:12    

ProhibiT
Her iki fonksiyon için de başlangıçta hiç aklımıza gelmeyen bir durumla karşı karşıyayız.
- BLock definition altındaki Attribute Definition'ların Layer'ını değiştirdiğimizde, BLock Reference (Insert) altındaki Attribute'ün Layer'ı değişmiyor.
- bLsoL fonksiyonu seçilen bLock'u ele alıp alt objelerinin Layer'ını değiştirdikten sonra, çizim içindeki aynı isimli tüm bLock referansları (Insert) nın da Layer'ını değiştiriyor.

Çözüm;
Kod:

;|===========================================================================|;
;| chbaL: Change bLock and Atrribute Layer                                   |;
;|        Seçilen Insert objelerini ve bunun altında tanımlı Attribute'lerin |;
;|        Layer'ını belirlenen (seçilen) Layer'a deÄŸiÅŸtirir.                 |;
;|        Hazırlayan: M. Åžahin Güvercin  www.autocadokulu.com  15.06.2012    |;
;|---------------------------------------------------------------------------|;
(defun c:chbaL (/ LyR bLn n PvT)
  (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
  (setq LyR (getstring "\nLayer Name [Enter to Select]: "))
  (if (= "" LyR) (setq LyR (cdr (assoc 8 (entget (car (entsel)))))))
  (princ "\nSelect Reference bLock(s): ")
  (setq bLn (ssget (list (cons 0 "Insert") (cons 2 "EbL"))) n -1)
  (while (< (setq n (1+ n)) (sslength bLn))
    (setq PvT (ssname bLn n))
    (vlax-put-property (vlax-ename->vla-object PvT) 'Layer LyR)(entupd PvT)
    (while (/= (cdr (assoc 0 (entget (setq PvT (entnext PvT))))) "SEQEND")
      (vlax-put-property (vlax-ename->vla-object PvT) 'Layer LyR)(entupd PvT)))
  (command "_.undo" "e") (prin1))
şeklinde yeni bir fonksiyon yazdım. Layer'ını değiştireceğiniz EbL bLock'larının Layer'ını bu fonksiyonu kullanarak değiştirirseniz, Layer açıp kapattığınızda biribirilerine karışmayacaklardır.

Kolay gelsin.

15.06.2012 20:25    

waytooraider
Süper. Tek kelimeyle elinize aklınıza sağlık.

04.10.2012 15:40    

yesilege
selamlar. bu komutu 3d polyline için nasıl düzenleyebiliriz?

04.10.2012 20:44    

ProhibiT
Yanlış bir yere mi yazdınız sorunuzu?
"Komut" diye bahsettiÄŸiniz nedir?
"3dpolyline için düzenlemek" ne demek?
Hepsini sürç-ü lisan olarak kabul etsek bile, peki denediniz mi?
Yapılabileceğinden eminsiniz de, nasıl yapılacağını soruyorsunuz!
O kadar eminseniz yapmış olmanız gerekirdi.
Paylaşımlara saygı açısından lutfen sorularınızda özenli olunuz...

20.10.2012 08:51    

waytooraider
Åžahin Hocam,

Çok Yoğun bir tempoda çalıştığınızı tahmin edebiliyorum.
Ald fonksiyonu ile ilgili bir maruzuatım olacak.Elipsi de ölçsün diye bir istekte bulunmadığım için dolayısıyla elipsi ölçmüyor.Eğr fırsat bulurda bu konuyla ilgilenme gibi bir durumunuz söz konusu olursa müteşekkir olurum.

Sonsuz saygılarımla.

21.10.2012 06:58    

ProhibiT
(while (setq Czg (ssget":s"(list(cons 0"Line,*polyline,arc,circle,spline")))) yerine
(while (setq Czg (ssget ":s" (list (cons 0 "*line,arc,circle,ellipse")))) yazılırsa istediğiniz işlemi yapabilirsiniz.

16.11.2012 13:16    

waytooraider
Hocam,

Komutu çalıştırdıktan sonra ölçüsünü alacağımız çizginin rengi oluşan ebl atribute bloğunun rengine dönebilirmi. Bu şekilde geniş ekrandan bakıldığında bloksuz çizgilerle bloklu çizgiler çok daha net bir şekilde görülebilir.

Sonsuz Saygılarımla.

waytooraider (22.11.2012 06:52 GMT)

23.11.2012 18:01    

ProhibiT
- Ellipse objelerini de seçip işlem yapacak şekilde düzenlendi.
- İşleme alınan objelerin Layerları ebL bLock'u ile aynı Layer a geçirecek şekilde düzenlendi.
Burada işleme alınan objelerin renginin ByLayer olduğu varsayıyoruz.
Diğer renk atamaları için zaten uzun olan fonksiyon kodunu daha da uzatmak mantıklı gelmedi.

24.11.2012 09:41    

waytooraider
Hocam,

Elinize,aklınıza sağlık. Nasıl yorum yapacağımı bilemiyorum :)

Saygılarımla.

13.04.2013 10:22    

ozgurayhan
ProhibiT öncelikle eline sağlık.

bu lispi arc, line, polyline vs.. sadece uzunluklarını çizginin üzerine yazan, ama bunu yaparken de blok olmadan yapabilir mi. Kalıp metrajı yaparken kullanmak istiyorum, özellikle kiriş kanat uzunlukları için, eğik, oval ve düz kirişler mevcut ben önce bu çizgilerin uzunluklarını autocadde çizgi üzerine sonra da başka lisp kullanarak excele atmak istiyorum. " UY" lispi mevcut ama onda sadece line için var.

Yadımcı olabilirsen çok sevinirim.
Teşekkürler

28.11.2013 20:44    

ProhibiT
İstek üzerine yeniden düzenlenen aLd fonksiyonu: 174410-ald-1.rar
Daha önce de bahsettiğimiz gibi, AutoCAD klasörlerinde yeterli erişim yetkisine sahip olmak gerekiyor.
aLd fonksiyonunu daha önce kullandıysanız, c:\Program Files\AutoDesk\AutoCAD xxxx\Support klasöründe bulunan aLd.dcL dosyasını sildikten sonra yeni fonksiyonu kullanmalısınız.

Kolay gelsin.

29.11.2013 06:50    

waytooraider
Öncelikle bu inanılmaz çalışma için çok teşekkür ederim.Her gün acaba o gün bu gün mü diye yolunu beklediğim şahane bir lisp olmuş

Hocam çapın yanındaki ikona tıklayıp sonrada text yada mtexte tıkladığımızda çalışmıyor.Atribute bloğun içindeki yazıya tıkladığımızda lisp gayet güzel çalışıyor.Text yada mtext içinde bu ayarı yapabilirmiyiz.

29.11.2013 11:43    

ProhibiT
Gerekli eklemeyi yaptım. Son halini aynı linkten indirip kullanabilirsiniz. Çap belirlemek içilen Text veya Mtext nesnesinin içeriğini olduğu gibi alır. Seçilen nesne içeriği yalnızca çap bilgisinden oluşmalıdır. Başka yazılar da varsa, içlerinden çap değerini seçip almaz.

12.06.2014 09:37    

kesinhesapci
Öncelikle Berat kanlinizi kutlar hayırlara vesile olmasını temenni ederim..

Değerli büyüklerim, bir istirhamın olacak;
ALn lispi ile alanlarını ve çevrelerini yazdığım mahal bilgilerini DECC lispi ile excele atmak istiyorum.(bunu yaparken m²-m ve A-Ç bilgilerini yazdırmadan yapıyorum)
Velhasıl kelam Decc lispi ile seçim yaptığımda işlem gerçekleşmiyor.
kuvvetle muhtemel bir yerlerde yanlışlık yapıyorum lakin bulamadım.

Engin bilgilerinizde bu sorunun bir açıklaması ola bilir mi?

Selam ve saygılarımla.

kesinhesapci (12.06.2014 09:44 GMT)

12.06.2014 11:43    

ProhibiT
_____________________________
ProhibiT :
Kod:

;|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| DECC: Seçilen Objenin ilgili deÄŸeri Aktif Excel Hücresinden baÅŸlayarak,  |
|       sütun düzeninde yazılır. ilk Objenin ilgili deÄŸeri, Aktif Excel    |
|       Hücresine yazılır. Excel hücrelerinin formatı deÄŸiÅŸtirilmez, varsa |
|       mevcut deÄŸer veya formül kaybedilecektir. Yeni Obje seçilmeye devam|
|       edildikçe, bir alt hücreye geçilerek yazmaya devam edilir. Objeler,|
|       Dimension, Line, Polyline, Lwpolyline veya Arc olabilir.           |
|       Dimension objesi seçilmiÅŸse deÄŸeri, baÅŸka tür objeler seçilmiÅŸse,  |
|       uzunluÄŸu Excel hücresine yazılır. Excel Decimal Seperator'ü nokta  |
|       olarak kullanılır. AutoCAD ortamında DIMDSEP sistem deÄŸiÅŸkeni      |
|       farklı kullanılmış ise oluÅŸan hata kullanıcının sorumluluÄŸundadır. |
|       Açık Excel Uygulaması yoksa, hata iletisiyle sonlanır.             |
|        M. Åžahin Güvercin (ProhibiT) www.cizimokulu.com  27.03.2013       |
|--------___________________________________________________________-------|;
(defun c:DECC  (/ ExcLApp ExcLLs oLc Stn Str)
174410-decc.rar
_____________________________

DECC Lisp'ini farklı bir amaçla yazmıştık. Seçilen nesne Dimension ise ölçü değeri, Line, Polyline, Lwpolyline veya Arc ise uzunluğu Excel ortamındaki aktif hücreden başlanarak alt alta yazılır.
aLn lisp'i ile mahal bilgilerinizi oluşturduğunuzda Nesne cinsiniz nedir? Text veya Mtext (Field dahil) türü bir nesne ise DECC benzeri bir Lisp yazmak gerekir. Mahal bilgilerinizi tablo şeklinde oluşturmuşsanız, AcxL isimli fonksiyonu kullanmanız daha doğru olabilir.

12.06.2014 12:28    

kesinhesapci
Lütfen cehaletimi mazur görünüz..
Göre bileceğiniz en acemi autocad kullanıcısı olduğumu belirterek başlamak istiyorum.
Hocam ; "BOUNDARY" komutu ile oluşturulmuş "PLINE"lar üzerinde işlem yapıyoruz.
Çalıştığımız projecilerimiz de yabancı uyruklu. Standart layer kullanmak konusunda da malesef başarısızlar.
Mahal listesi gibi açıklayıcı bir bilgi beklemek gerçekten imkansız. Her gün önümüze atılan projelerden yaklaşık keşif çıkartmaya çalışıyoruz.(Cebelleşiyoz demek daha doğrusu).
Mahçup olmamak için de elimizden geleni yapmaya gayret sarfediyoruz. (Bu ağlama kısmı için de tekrar mazur görün lütfen.)

12.06.2014 18:36    

ProhibiT
Kod:

;|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| aLnEx: Seçilen Text nesnelerinin içeriği önek ve soneklerinden sıyrılarak |
|        sayısal deÄŸerleri Aktif Excel Hücresinden baÅŸlayarak, sütun        |
|        düzeninde yazılır. Seçilen Objenin ilgili deÄŸeri, Aktif Excel      |
|        Hücresine yazılır. Excel hücrelerinin formatı deÄŸiÅŸtirilmez, varsa |
|        mevcut deÄŸer veya formül kaybedilecektir. Yeni Obje seçilmeye      |
|        devam edildikçe, bir alt hücreye geçilerek yazmaya devam edilir.   |
|        Seçilen nesneler Text olmak zorundadır. Excel Decimal Seperator'ü  |
|        nokta olarak kullanılır. AutoCAD ortamında DIMDSEP sistem deÄŸiÅŸkeni|
|        farklı kullanılmış ise oluÅŸan hata kullanıcının sorumluluÄŸundadır. |
|        Açık Excel Uygulaması yoksa, fonksiyon hata iletisiyle sonlanır.   |
|          M. Åžahin Güvercin (ProhibiT) www.cizimokulu.com  12.06.2014      |
|--------___________________________________________________________--------|;
(defun c:aLnEx (/ ExcLApp ExcLLs onE snE Stn Str)
  (setvar "cmdecho" 0) (command "undo" "group") (vl-load-com)
.
.
.

- 174410-alnex.rar linkinden aLnEx.Fas dosyasını indirin.
- AutoCAD komut satırından (Load "aLnEx.fas") girerek veya AppLoad ile bu dosyayı yükleyin.
- aLn fonksiyonuyla Kapalı şekillerin içine alanlarını yazdırın. Önek veya Sonek olmasının bir önemi yoktur. Her durumda alanın sayısal değeri Excel'e aktarılacaktır.
- Excel uygulamasını çalıştırıp yeni (veya mevcut) bir dosya açın.
- Alan değerlerinin yazılmaya başlanacağı hücreye gelin.
- AutoCAD komut satırından aLnEx komutunu girin. AutoCAD grafik ekranından alan yazılarını seçmeye devam ettiğiniz sürece seçilen alan değerleri alt alta Excel'e yazılacaktır. Yazdırılacak alan yazıları bittiğinde sağ tuş veya enter girerek işlemi sonlandırın.

Kolay gelsin.

Copyright © 2004-2022 SQL: 1.433 saniye - Sorgu: 98 - Ortalama: 0.01462 saniye