Bloklar içinde Typeline değişimi

  • Konuyu başlatan Konuyu başlatan tiziano69
  • Başlangıç tarihi Başlangıç tarihi

tiziano69

Guest
İyi sabah, aşağıdaki sorunum var.
"pippo" hattını değiştirmek istiyorum ( blokların içinde temsil) "alpha" hattıyla.
Bunun nedeni... çünkü birçok kez dwg çizimleri mikro tarafından ihraç edildi ve kendimi değiştirebileceğim bir dizi tip buldum ve bu özel tipin varsa her bir blok aramasına ve değişikliği düşünülemez.
Ek olarak, değiştirilebilmesini istediğiniz çizgiyi yeniden adlandırmak istemiyorum, böylece işlemenin sonunda + kullanılır ve kalıcı olarak "neden" yapabilirim.

Bu kodu nesnelere ölçek faktörü değiştirmek için gerekli olan değiştirmeye çalıştım ama sadece bloklara nasıl gireceğinizi ve blok içindeki tüm subentitasları analiz etmeye çalıştım, böylece özelliklerini değiştirebilirim


function change_typeline()

dim asa as an object

Set oautocad = getobject (, "autocad.application")

Omodelspace = oautocad.activedocument.modelspace

Asa = oautocad.activedocument.blocks

sayı_entta = asa.count
i = 1 numara
Asa.item (s)

end fonksiyonu
 
Daha sonra bu kodu yazdım ama blok içinde bulunan varlıkları taramada "Indices" sorunum var ... bunu çözdün, sonra vba kodundan tipte değiştirebilirsiniz.

function write_text()

dim asa as an object
dim typeline as string

Set oautocad = getobject (, "autocad.application")

Omodelspace = oautocad.activedocument.modelspace
Asa = oautocad.activedocument.blocks
dim nr_ent as Full


Inti = 1 to asa.count

Eğer asa.item(inti) adı <> "model_space" veya asa.item (inti).name <> "paper_space"
msgbox ("bir blok")

x = 1 to asa.item (inti).count
typelinea = asa.item (inti).item(x). linetype
msgbox (typeline)
Sonraki x x x x

Sonunda, eğer sona erirse

next inti
end fonksiyonu
 
Bu yüzden burada, sanırım işe yarıyor, şimdi iki "inputbox"ı hattın isimlerini seçmek için otocad'nın "tline" paneliyle geliştiriliyor.

function change_typeline_blocchi()
dim asa as an object
dim typeline as string

Set oautocad = getobject (, "autocad.application")
Omodelspace = oautocad.activedocument.modelspace
Asa = oautocad.activedocument.blocks

dim nr_ent as Full

name_typelinea_prec = inputbox("typeline name to be replace")
Yeni_typelinea = giriş kutusu ("new typeline name")

For inti = 0 to asa.count - 1

Eğer asa.item(inti) adı <> "model_space" veya asa.item (inti).name <> "paper_space"
"msgbox ("bir blok")

x = 0 to asa.item (inti).count - 1
typelinea = asa.item (inti).item(x). linetype

Asa.item (inti)item (x).linetype=typelinea_prec O zaman sonra
Asa.item(inti).item(x).linetype = new_typelinea
Asa.item (inti)item (x) yüksek ışık (gerçek)
Sonunda, eğer sona erirse

'msgbox (typeline)
Sonraki x x x x

Sonunda, eğer sona erirse

next inti

Budrawing. Uygulama. update update update
Budrawing. regen activeviewport


end fonksiyonu
 
Bu çalışmıyor, aynı zamanda blokların dışındaki varlıkları da analiz ediyor. Neden?

Yardım yardım yardım yardım yardım yardım yardım yardım
 
Yeniden yazıyorum. Tatillerde size neyin yanlış olduğunu söylemek için konsantrasyon;-)

Bu kod sizinkinden daha lineer ve basittir (Ben inanıyorum) :-)
HTML:
function change_typeline_blocchi()

--------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- ---------------
dim blokları as acadblocks
dim i as Full
Bloklar = budrawing. blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok

dim name_typelinea_prec as string
dim new_typelinea as string
dim typeline as string

‘user input
name_typelinea_prec = ucase(inputbox("typename to be değiştirildi)
Yeni_typelinea = ucase(inputbox("new typeline name"))

“Tüm tasarım blokları analiz eden döngü
i = 0 bloklara. sayı - 1

Eğer blok (s) “*model_space” veya bloklar (s) daha sonra "*paper_space" gibi isim

 
"Bütün varlıkları analiz eden döngü" blok
x = 0 bloklara (s) sayı - 1
Tür = bloklar (s)item (x). linetype

Eğer ucase(typeline) = name_typelinea_prec O zaman sonra
Bloklar (i)item(x).linetype = new_typelinea
Sonunda, eğer sona erirse
Sonraki x x x x
Sonunda, eğer sona erirse

Bir sonraki i

Budrawing. regen activeviewport

end fonksiyonu
 
Allora hoktanotto bir arayışçı, semplificando di molto e interagisce Soltanto sui blokchichichichichichichichichi
Funziona anche con la proprieta dakat (attenzione ai caratteri)

Özel alt komutbutton2_ click()
dim blk as acadblock
dim xrent as acadentity
dim b as string

= giriş kutusu (eski)
b = inputbox("new")

Her blk için budrawing. blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok blok
if not blk.islayout then

x = 0 to blk.count - 1

Eğer g.item (x). linetype = a then
b.item(x).linetype = b
Sonunda, eğer sona erirse
Sonraki x x x x

Sonunda, eğer sona erirse
Bir sonraki blk

Budrawing. regen activeviewport
Sonunda alt alt
 

Forum İstatistikleri

Konular
58,521
Mesajlar
499,056
Kullanıcılar
104,110
Son Üye
ChristianR

Çevrimiçi Üyeler

Şu anda çevrimiçi üye yok.
Geri
Üst