seçeneği açık
“ Blokun ölçek faktörlerini tutan özel bir tür.
Özel tip ölçek faktörü
x olarak çift
y as double
çift olarak
end tipi
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-posta:
[email protected]“evet:
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 ()
.activate
Sonrow = .cells (.rows.count, "a").end(xlup).row
Sonunda ile
“En az bir çember için koordinatlar varsa kontrol edin.
Eğer sonrow < 2 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 ()
i = 2 to lastrow
" Blok adını girin.
Blok adı = .range("d" & 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 ("a" & i). değer değeri değer değeri
Addionpoint (1) = .range("b" & i). değer değeri değer değeri
Addionpoint(2) = .range("c" & 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 ("e" ve i.value <> vnullstring sonra blokscale.x = .range ("e" & i). değer değeri değer değeri
Eğer .range ("f" & i).value <> / etcnullstring then blockscale.y = .range("f" & i). değer değeri değer değeri
Eğer .range ("g" & i).value <> / vnullstring then blockscale.z = .range("g" & i). değer değeri değer değeri
Eğer .range ("h" & i)değer <> / sonra döndürmek = .range("h" & i). değer değeri değer değeri
“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
“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