1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

Ölçülerin “Dimensions Nesneler ile Nasıl İlişkilendirildiğini Anlama

Sekil-1

AutoLISP (veya başka bir programlama dilini) öğrenmek sizi tam anlamıyla bir programcı haline getirmeye yetmez. AutoCAD’in kendi içerisinde nasıl çalıştığını daha iyi anlamaya çalışmalı ve etkileşimli çalışma becerilerinizi arttırmalısınız. Böylece; AutoLISP programlama dili ile ilgili olarak bir uzman haline gelebilir ve başkalarının bir adım önüne geçebilirsiniz.

Geçenlerde müşterilerimden birindenAutoCAD 2004’de yaratılmış bir çizim aldım. Bu çizimi AutoCAD 2010’da tekrar kaydetmeme rağmen; herhangi bir çizginin boyunu değiştirdiğim zaman, bu çizgiye atılmış olan ölçü değişmiyordu. Sadece yeni bir ölçü yarattığım zaman, bu özelliği kullanabiliyordum. Bununla ilgili olarak bulduğum sebep;  AutoCAD 2004’de ölçülerin “dimensions” tekrar aktiflenme “reactors” özelliğine (tekrar aktiflenme  “reactors”  özelliğini aşağıda detaylı olarak anlatacağım) sahip olmamalarıydı. Yalnız, ölçüleri “dimensions” AutoCAD 2010’da yarattığım zaman, bu tekrar aktiflenme özelliği ölçülere “dimensions” ekleniyordu.

Şimdi bu konuyu bir örnekle öğrenelim

Hepimizin bildiği gibi, bir nesneyi ölçülendirdiğinizde; nesneyi değiştirdiğiniz zaman, ölçüde otomatik olarak güncellenir. Hiç ölçünün kendini güncellemek için, nesnenin değiştiğini nasıl bildiğini merak ettiniz mi? Şayet bu konuda hiçbir fikriniz yoksa, AutoLISP bu konuyu öğrenmenizde size yardımcı olabilir.

İşte örneğimiz aşağıda:

1. Bir çizgi çizin.

2. Komut satırına aşağıdaki küçük AutoLISP kod parçasını yazarak bu çizginin AutoCAD tarafından yaratılış listesini görüntületin:

(entget (car (entsel)))

Ve bir nesne seçin uyarısı geldiği zaman, çizdiğiniz çizgiyi seçin. Komut satırında aşağıdakilere benzer bilgiler görürsünüz:

((-1 . <Entity name: 7ee45a18>) (0 . “LINE”) (330 . <Entity name: 7ee43cf8>) (5 . “22B”) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0″) (100 . “AcDbLine”) (10 10.0 10.0 0.0) (11 160.0 160.0 0.0) (210 0.0 0.0 1.0))

Bu , tahmin edebileceğiniz gibi AutoCAD’in kendi veri tabanında bu çizgi için, tuttuğu kayıttır.

3. Çizginin uzunluğunu göstermek ve çizginin yaratılış listesini tekrar elde etmek için, bir ölçü “dimension” (örneğin hizalı ölçü “aligned dimension”) yaratın. Aşağıdakilere benzeyen bir sonuç alacaksınız:

((-1 . <Entity name: 7ee45a18>) (0 . “LINE”) (5 . “22B”) (102 . “{ACAD_REACTORS”) (330 . <Entity name: 7ee45ae8>) (102 . “}”) (330 . <Entity name: 7ee43cf8>) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0″) (100 . “AcDbLine”) (10 10.0 10.0 0.0) (11 160.0 160.0 0.0) (210 0.0 0.0 1.0))

Çizginin yaratılış listesine ilave olarak (102 . “{ACAD_REACTORS”) (330 . <Entity name: 7ee45ae8>) (102 . “}”) kodu ile yeni bir nesnenin başladığını fark etmiş olmalısınız.

Bu kod ilk çizdiğimiz çizgiye ölçü “dimension” ekledikten sonra, yaratılan ölçünün “dimension” çizgi ile ilişkilendirileceğini söyleyen AutoCAD’in tekrar aktiflenme özelliğine ait olan kodudur. Ölçüye “Dimensions” eklenen bu tekrar aktiflenme özelliği, nesne (bu örnekte çizgi) değiştirildiği zaman, o nesneye atılmış olan ölçünün “dimensions” de otomatik olarak değiştirilmesini sağlamaktadır.

Tekrar aktifleyici “Reactor” belirli bir eylem (bu örnekte çizginin boyunun değiştirilmesi) tamamlandıktan sonra otomatik olarak çalıştırılan bir programdır. Tekrar aktifleyici “Reactor” sadece bir düzenlenme eylemi tamamlandıktan SONRA çalıştırılmaktadır. Bu nedenle, çizginin düzenleme komutu tamamlandıktan sonra ölçünün “dimension” güncellendiğini görürsünüz. Siz çizginin boyunu uzatır veya kısaltırken ölçünün “dimension” de eş zamanlı olarak değiştiğini görmezsiniz.

  1.  Daha sonra, aynı kodu kullanarak; fakat bu kez ölçüyü “dimension seçip ölçünün kayıt kodu listesini çağırın. Aşağıdakilere benzeyen bir sonuç alacaksınız:

((-1 . <Entity name: 7ee45a20>) (0 . “DIMENSION”) (5 . “22C”) (102 . “{ACAD_XDICTIONARY”) (360 . <Entity name: 7ee45a90>) (102 . “}”) (102 . “{ACAD_REACTORS”) (330 . <Entity name: 7ee45ae8>) (102 . “}”) (330 . <Entity name: 7ee43cf8>) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0″) (100 . “AcDbDimension”) (280 . 0) (2 . “*D6″) (10 173.511 146.489 0.0) (11 98.5106 71.4894 0.0) (12 0.0 0.0 0.0) (70 . 33) (1 . “”) (71 . 5) (72 . 1) (41 . 1.0) (42 . 212.132) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3 . “Standard”) (100 . “AcDbAlignedDimension”) (13 10.0 10.0 0.0) (14 160.0 160.0 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0))

Ölçünün yaratılış listesinde tamamıyla aynı tekrar aktifleştirime özellik kodunun olduğuna dikkat edin. Çünkü bu tekrar aktifleştirme özelliği çizdiğiniz çizgi ve ölçü “dimension” arasında bir bağlantıdır.

5. Çizgiye bir ölçü “dimension” daha ekleyin ve çizginin kayıt kodu listesini bir kez daha çağırın. Tekrar aktifleyici “Reactor” referansında (330 ibaresi olan bir öğe göreceksiniz. Yarattığınız iki ölçü “dimension” de çizgi ile ilişkilendirildiği için, çizginin kayıt kodu listesine 330 ile başlayan dxf kodu eklenir.

6. Şimdi ölçülerden “dimensions” bir tanesini silin ve çizginin yeni kayıt kodu listesini çağırın. (330 ibaresi olan öğelerden bir tanesinin kaldırılmış olduğunu göreceksiniz.

7. Tüm ölçüleri “dimensions” sildikten sonra, çizginin kayıt kodu listesi orijinal hali olan herhangi bir (102 ibaresi olmayan haline geri dönecektir.

İlişkililiği Geliştirmenin Bir Yolu

Dikkat etmeniz gereken ilginç bir konu da nesne silindiği zaman, ölçünün “dimension” silinmemesidir. Ölçü “Dimension” ile nesnenin gerçek ilişkililiği kilitlenmiş durumda olduğu için, davranış bu şekilde olmaktadır.

Ölçünün “Dimension” kayıt kodu listesine bir Tekrar aktifleyici “Reactor” referansı ekleyerek nesne silindiği zaman ölçünün “dimension” de silinmesini sağlayan durumunu yaratabilirsiniz.

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Kesit Başlığı Ailesi Oluşturma

Revit’te kesit başı sembolünüze çizim ve pafta numaraları ekleyebilirsiniz. Aşağıdaki prosedür, bir kesit başı ailesi …

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yardıma mı ihtiyacınız var? Chat with us
Bir görüşme başlatmak için lütfen önce gizlilik politikamızı kabul edin.