Bir çizimde bloklar için arama

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

thetmd

Guest
Merhaba, herkes, bazı tavsiyelere ihtiyacım var. Bir tasarım içinde bir blokun tüm örneklerini yerine getiren bir makro yaratmak istiyorum. Ama eğer, vba'da, blokajları doğrudan bir tasarımda bir tasarımda aramanın bir yolu var

dim blok as acadblockreference
Her blok için <boh?!? cercare??="" cosa="" devo="" entro="" lo="">....

Ya da aramanın tek yolu, bir blok tipi değişkeni tanımlamak ve sonra tüm çizim bloklarına bakmak, eğer beni bu ilgi alanlarına sahip olan isimle bulursam

dim blok as acadblock
Her blok 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
Eğer blok. İsim vs.
(ok, mülk onun adı ya da diğer:p ama şu anda etkilidir)

Bana bazı önerileri verebilir misiniz?:
Teşekkür ederim.
rpalo</boh?!?>
 
Merhaba, herkes, bazı tavsiyelere ihtiyacım var. Bir tasarım içinde bir blokun tüm örneklerini yerine getiren bir makro yaratmak istiyorum. Ama eğer, vba'da, blokajları doğrudan bir tasarımda bir tasarımda aramanın bir yolu var
Teşekkür ederim.
rpalo
dim filtretipi tam olarak tam olarak
dim filterdata, varyant olarak

Hatada bir sonraki sefere devam ediyor
“Eğer varsa seçim seti silin
if not isnull (budrawing.selectionsets.item ("element) sonra
Set sset = budrawing.selectionsets.item ("element")
sset.delete
Sonunda, eğer sona erirse

0.0scale = budrawing.getvariable("ltscale")

Set sset = budrawing.selectionsets.add("element")


Filtreleme = 0
filtredata = “insert”

sset.selectonscreen filtresi, filtredata


se oltre alle entità blockco vuoi anche filtrare la selezione con un nome blokco

dim filtre tipi (1) tam tam tam olarak
dim filterdata(1) olarak

Filtreleme = 0
filtredata = “insert”
Filtre Tipi (1) = 2
Filtredata(1) = "nome blockco"


Questo methodo usingza I codici dxf delel entita

per vedere i codicici

Comando: (entget(car(entsel))

selezionare oggetto: (-1 . <nome 7de10290="" entità:="">)</nome>0 . "insert"(330).
<nome 7e0e8cd0="" entità:="">(100 . "acdbentity" (67 . 0) (410 .
"model" (8 . "g") (100 . "acblockreference") (</nome>2 . "isim"10 152,768
6,8475e-0113 1.56769e-013 (41 .1.0) 42 . 1.0) (43 . 1.0) (50 . 3.14159)
. 0) (71 . 0) (44 . 00) (45 .0) (210 -2,13399e -016,66034 -0,775319)
 
Son düzenleme:
Bye. Üzgünüm şekli, sorumda çok prolific olduğumdan korkuyorum. Kendimi daha iyi açıklamaya çalışıyorum.
Birkaç kez tekrarlanan sembollerle bir dizi tasarım var. Diğerleriyle tüm çizimlerin tüm sembollerini değiştirmem gerekiyor, aynı ekleme noktası ve aynı rotasyonu kullanarak (yeni sembolü eskiye aynı, ancak diğerin sahip olmadığı bir özellik var). Yeni sembolü ayrı bir tasarımda yarattım ve onu önceki sembolün rotasyon özelliklerini kullanarak değiştirmek için tasarıma ekledim. Bunun yanı sıra, başka bir blok özelliğinin değerini geri almaya adanmış bir prosedürün bir parçasım ve yeni eklediğim sembolü ile ilişkilendiriyorum.
Şimdi bulduğum sorun, sembollerin iptali nedeniyledir (hem değiştirdiklerim hem de özelliğin değerini yeniden açtığımdan biri). Eğer rutindeki sembollerin iptali için sıra eklersem...sonunda... Bazı bir noktada "otomi hatası" (bu yüzden değişkenimin işaret ettiği bir varlıkla kapılıyorum). Problemi düzgün bir şekilde nasıl çözeceğimi anlayamadım, bu yüzden sembolleri başka bir döngü ile silmeyi tercih etmem gerekiyordu. diğer (bir tür sembolü için, hangi sorunları silebilirim) ikinci sembolü (bundan sonra özelliği geri alıyorum) Tüm örnekleri silemiyorum ve şu anda kullanıcıdan gelen sembolleri seçerek ve onları ortadan kaldırıyorum.

Kod geliştirmeme yardımcı olabilir, lütfen, onları kullanırken sembolleri silebilirsiniz?

Tekrar teşekkürler
rpalo


Ürettiğim kodu çıkardım:
(bazı çizgiler kasıtlı olarak yorum modunda)


'on hatası iyi
'on hatası bir sonraki sefere devam ediyor
dim acadentity'nin aradığı varlık olarak değil
dim entn as acadblockreference 'Yeni varlık
dim entn_att as vary' yeni blok özelliği
dim entv as acadblockreference 'old entity
dim p insert(2) iki "yeni kör körlüğü" olarak
dim rotasyonu, kör rotasyon açısı olarak
dim filename as string 'yeni kör kör körün adı
dim elsse as acadentity' Elsses entity
dim elsse_att as variable'ellisse özelliği
dim ppoint as variable's point taken
dim değeri as string' kör adı
dim pickbox tam anlamıyla 'memorizzo the value of the autocad pickbox değişken
dim sset as acadselectionset

Beni.hide

pickbox = budrawing.getvariable("pickbox")
Prosedürü başlatacağım.
‘ ‘ ‘ Tüm çizimlerin açılmış olduğunu varsayıyorum

‘Doğan adı = "c:\_work\blindness\simbcieca.dwg"
Dosya adı = "g:\_cieche\simbcieca.dwg"
* Yeni semboller ekler ve yeniden kör değer
Her biri için budrawing.modelspace
Eğer ent.objectname = "acdbblockreference" o zaman bir blok olup olmadığını kontrol edin.
Eğer ent. name = "cieca" o zaman 'Ben kontrol edemiyorum ve neden tüm elementlerin bir 'isim' mülk sahibi olmadığını bilmiyorum
Set Entv = ent

Yeni blok ve rotasyon açısını ortaya koydum
p insertion = **** entv.insertionpoint
p insertion (1) = entv.insertionpoint (1)
p insertion(2) = entv.insertionpoint(2)
rotasyon = entv.rotation

“Yeni sembolü ekleyeceğim
Set entn = thisdrawing.modelspace. addblock(p insert, file name, 1, rotasyon)

“Yeni sembolün üzerinde, kör sayıyı kurtarmak için
rotasyon açısı, elpse bloğu ile aynıdır
‘ ‘ ‘ Yeni özelliği aynı pozisyonda eski biri olarak hareket ediyorum
zoomcenter p insertion, 35
Entn_att = entn.getattributes
Budrawing. Setvariable "pickbox", 40
Budrawing.uttitude.getentity elpse, ppoint
Budrawing. Setvariable "pickbox", pickbox
Elsse_att = elsse.getattributes
Entn_att(0).textstring = elsse_att ****.textstring
Entn_att(0).rotation = elsse.rotation
Entn_att ****.move entn_att ****.textmentpoint, elsse_att ****.textmentpoint

"Regenero il progetto
Budrawing. regen acallviewports

Sonunda, eğer sona erirse
Sonunda, eğer sona erirse
Bir sonraki ent

(1)
“Onları ilk önce hata durumunda silsem
Her biri için budrawing.modelspace
Eğer ent.objectname = "acdbblockreference" o zaman
Eğer ent.name = "cieca" o zaman 'ya da ent.name = "cieca_testo" o zaman
'set entv = ent
Ent
Sonunda, eğer sona erirse
Sonunda, eğer sona erirse
Bir sonraki ent

- [Bleep tüm çizimleri üzerinde zoom
zoomextents


Set sset = budrawing.selectionsets.add("selection")
sset.selectonscreen
Her bir başlangıç için
Eğer ent.objectname = "acdbblockreference" o zaman bir blok olup olmadığını kontrol edin.
Eğer ent.name = "cieca_testo" o zaman 'Ben kontrol edemiyorum ve neden tüm elementlerin ‘isim’ mülkleri yok
Ent
Sonunda, eğer sona erirse
Sonunda, eğer sona erirse
Bir sonraki ent


Budrawing.
Budrawing.close
döngüsü

Sonunda:
 
Bunun gibi bir şey yapardım.

Eğer dvb ve örnek bir dosyanızı geçerseniz, ne olduğundan daha iyi görebiliyorum... Aksi halde... sahip olduğum bilgilerle daha fazla, bu yüzden nasıl ve nerede hareket edeceğimi bilmiyorum.

'on hatası iyi
'on hatası bir sonraki sefere devam ediyor
dim acadblockreference'in aradığı varlık olarak değil
dim entn as acadblockreference 'Yeni varlık
dim entn_att as vary' yeni blok özelliği
dim entv as acadblockreference 'old entity
dim p insertion (0 to 2) iki "yeni kör kör körlüğün"
dim rotasyonu, kör rotasyon açısı olarak
dim filename as string 'yeni kör kör körün adı
dim elsse as acadentity' Elsses entity
dim elsse_att as variable'ellisse özelliği
dim ppoint as variable's point taken
dim değeri as string' kör adı
dim pickbox tam anlamıyla 'memorizzo the value of the autocad pickbox değişken
dim sset as acadselectionset

Beni.hide

pickbox = budrawing.getvariable("pickbox")

Dosya adı = "g:\_cieche\simbcieca.dwg"



Hatada bir sonraki sefere devam ediyor
“Eğer varsa seçim seti silin
if not isnull (budrawing.selectionsets.item("ent) o zaman
Set sset = budrawing.selectionsets.item("ent)
sset.delete
Sonunda, eğer sona erirse


Set sset = budrawing.selectionsets.add("ent)



dim filtre tipi (1) tam tam tam olarak
dim filterdata(1) olarak

Filtreleme = 0
filtredata = “insert”
Filtre Tipi (1) = 2
Filtredata(1) = "cieca"


sset.selectonscreen filtresi, filtredata

Her bir başlangıç için

Yeni blok ve rotasyon açısını ortaya koydum
p insertion = **** ent.insertionpoint
p insertion (1) = ent.insertionpoint (1)
p insertion(2) = ent.insertionpoint(2)
rotasyon = ent.rotation

Ent

“Yeni sembolü ekleyeceğim
Set entn = thisdrawing.modelspace. addblock(p insert, file name, 1, rotasyon)

zoomcenter p insertion, 35
Entn_att = entn.getattributes
Budrawing. Setvariable "pickbox", 40
Budrawing.uttitude.getentity elpse, ppoint
Budrawing. Setvariable "pickbox", pickbox
Elsse_att = elsse.getattributes
Entn_att(0).textstring = elsse_att ****.textstring
Entn_att(0).rotation = elsse.rotation
Entn_att ****.move entn_att ****.textmentpoint, elsse_att ****.textmentpoint

"Regenero il progetto
Budrawing. regen acallviewports

Bir sonraki ent
 
Cevap için teşekkürler, ancak nesneler seçiminden kaçınmak için bir yol var ve makro'un değiştirilmesi gereken tüm sembolleri doğrudan kontrol etmesine izin vermek için... Aslında yaptığım gibi, hafta sonu ihtiyacım olan tüm tasarımları değiştirdim, cmq, sadece 'kullanıcıya' ihtiyacı olan bir makro almak istiyorum. Makro kodu değiştirmeye çalışacağım ve varlıkların silinmesinde daha iyi davranırsam göreceğim. ;)

Cevap için teşekkürler
rpalo
 
Cevap için teşekkürler, ancak nesneler seçiminden kaçınmak için bir yol var ve makro'un değiştirilmesi gereken tüm sembolleri doğrudan kontrol etmesine izin vermek için... Aslında yaptığım gibi, hafta sonu ihtiyacım olan tüm tasarımları değiştirdim, cmq, sadece 'kullanıcıya' ihtiyacı olan bir makro almak istiyorum. Makro kodu değiştirmeye çalışacağım ve varlıkların silinmesinde daha iyi davranırsam göreceğim. ;)

Cevap için teşekkürler
rpalo
sset kullanmak yerine.selectonscreen filtresi, filtredata

sset kullanın. selectionsetall, , filtre tipi, filtredata

Ve o, çizim varlıkları aktif filtre ile takım elbiseler giyiyor
 

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