subblocks()
"-!"
'Teklifleri kullanarak otomatik bloklar - ekleme noktası, blok adı / tam yol, ölçek faktörleri, rotasyon açısı - mükemmellikten.
“ Blok adı veya blok yolu zaten var olması gerekmez, aksi takdirde hiçbir şey eklemez.
“ kod geç bağlayıcı kullanır, bu yüzden dış otomatik (tip) kütüphaneye referans gerekmez.
“Bu kodu çalıştırmadan önce bilgisayarınızın üzerine kurulu olması gerektiğini söylemeye gerek yok.
“Yazar: christos samaras
Tarih: 21.04.2019
"e-mail: [email protected]
"site: http://www.myengineeringworld.net
"-!"
“ gerekli değişkenleri gösterir.
dim acadapp as object
dim acaddoc as object
dim acadblock as object
dim lastrow as long
dim i as long
dim addionpoint(0 to 2) çift olarak
dim blockname as string
dim blok boyutu ölçek faktör olarak
dim rotasyonu çift olarak
“ koordinatlar sayfasını etkinleştirin ve son sırayı bulun.
çarşaflar ("attributes")
.activate
Sonrow = .cells (.rows.count, "i").end(xlup). Sıra sıra sıra sıra
Sonunda ile
“En az bir çember için koordinatlar varsa kontrol edin.
Eğer sonrow < 5 sonra
msgbox "uygunluk noktası için koordinat yok!", vb.
çıkış alt alt alt
Sonunda, eğer sona erirse
" autocad uygulaması açıksa kontrol edin. Eğer açılmamışsa yeni bir örnek yaratır ve görünür hale getirir.
Hatada bir sonraki sefere devam ediyor
acadapp = getobject (, "autocad.application")
Eğer acadapp bir şey değilse o zaman
acadapp = createobject ("autocad.application")
acadapp.visible = true
Sonunda, eğer sona erirse
'check (again) eğer otocad bir nesne varsa.
Eğer acadapp bir şey değilse o zaman
msgbox "sorry, otocad'a başlamak imkansızdı!", vb.
çıkış alt alt alt
Sonunda, eğer sona erirse
Hata goto 0
“ Aktif bir çizim yeni bir tane yaratmıyorsa.
Hatada bir sonraki sefere devam ediyor
acaddoc = acadapp.activedocument
Eğer acaddoc bir şey değilse o zaman
acaddoc = acadapp.documents.add
Sonunda, eğer sona erirse
Hata goto 0
Aktif alan kağıt alanıysa ve onu modellemek için değiştirir.
Eğer acaddoc.activespace = 0 sonra '0 = erken bağlayıcılık alanı
acaddoc.activespace = 1 '1 = erken bağlayıcılık alanı
Sonunda, eğer sona erirse
Hatada bir sonraki sefere devam ediyor
“Tüm satırlar boyunca ve otocaddaki ilgili blokları ekleyin.
çarşaflar ("attributes")
i = 5 to lastrow
" Blok adını girin.
Blok adı = .range("l" & i). değer değeri değer değeri
“Eğer blok adı boş değilse, bloğu ekleyin.
Eğer blok adı <> vsnullstring sonra
"Katılım noktası.
Addionpoint = **** .range("i & i). değer değeri değer değeri
Addionpoint (1) = .range("j" & i). değer değeri değer değeri
Addionpoint(2) = .range("k" & i). değer değeri değer değeri
“ Seçmeli parametrelere dikkat edin.
blokscale.x = 1
blokscale.y = 1
blokscale.z = 1
Döndürme = 0
Seçmeli parametreler (eğer ilgili aralıklarda değerler varsa).
Eğer .range ("m" ve i.value <> vnullstring sonra blokscale.x = .range ("m" & i). değer değeri değer değeri
Eğer .range ("n" ve i).value <> / vnullstring then blockscale.y = .range ("n" & i). değer değeri değer değeri
Eğer .range ("o" & i).value <> / etcnullstring then blockscale.z = .range ("o" & i). değer değeri değer değeri
Eğer .range ("p" & i).value <> / vüllstring sonra döndürmek = .range("p" & i).value
“Doğal verileri kullanarak bloğu ekleyin (kesinlik noktası, blok adı, ölçek faktörleri ve rotasyon açısı).
" 0.0174532925, radians'a derece dönüştürmektir.
acadblock = acaddoc.modelspace.insertblock(insertionpoint, blockname, _
blokscale.x, blokscale.y, blokscale.z, rotasyon bok * 0.0174532925)
Sonunda, eğer sona erirse
Bir sonraki i
Sonunda ile
"Hareketi
" call updateattr
“Hazır alana kadar.
acadapp.zoomextents
“Haydileri serbest bırak.
Acadblock = Hiçbir şey
Acaddoc = Hiçbir şey
acadapp = hiçbir şey
Kullanıcıyı süreçle ilgili olarak ifade edin.
msgbox " Bloklar otomatik olarak yerleştirildi!", vb., "finished"
Sonunda alt alt