Osnap filtre kontrolü VBA6'da şeffaf modda

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

tiziano69

Guest
İyi sabah, bir tasarım veya değişiklik emrinde toplanan bir formda toplanan bazı otocad komutları oluşturmanıza izin veren bir uygulama yaratıyorum, komutlar için her zaman aktif olmaya devam ediyor (copy, line vs.) Bunun yerine, otomatik olarak şeffaf bir şekilde, bir tasarım veya değişiklik emrinde, bir osnap filtresine geçmek için yapabileceğim bir sorun yok. Bir çizgi çiziyorum ve belirli bir noktada son_point filtre formunu seçmek istiyorum.

Başladığım projeyi eğitiyorum

Teşekkür ederim.
 

Ekli dosyalar

bhè, iyi örnek snap (_end), med (_mid) vb. bir şekilde komut satırına kadar geçti.

Projeyi görmedim, ancak bir vsa sendcommand çözümü ile, şimdi onu vs çevirip çalışmalıyım.
 
Zaten denedim (aşağıya bak) problem şu ki, açıkça osnap filtrelerin şeffaf bir şekilde kullanılması gerektiği, örneğin zaten aktif komuta içinde, vb. bir filtre şeffaf bir şekilde ve bu yüzden seçebilmeliyim. olduğu gibi, bu gerçekleşmez, eğer düğmeyi seçerlerse, komut biter.

Özel alt komut3_ click()
dim utilobj nesne olarak
dim objacad as object

objacad = getobject (, "autocad.application")
Utilobj = objacad.activedocument.uttitude.
'form1.hide
objacad.visible = gerçek

Autocad.acadapplication.activedocument.sendcommand "_endp" & vscr
'form1.show
Form1.visible = true
 
... bir çizgi çizdiğim gibi ve bir noktada son_point filtre formunu seçmek istiyorum.

Başladığım projeyi eğitiyorum

Teşekkür ederim.
Osnap modu ayarlamak için düğmeden seçilirken, sistem değişkenlerini “kıtılabilir” ayarlama için işlevi kullanır.
Bu durumda değişken osmode.
Projenize uygun olan bir şeyi deneyin:
dim sysvardata as Full
sysvarname = "osmode"
sysvardata = 1
Budrawing. svarname, sysvardata
Osmode to 1, _endpoint anlamına gelir, 2 = _midpoint and so on (see help from autocad)
 
"sendcommand" kullanmaktan daha iyi, problem şu ki, program her zaman açık kalır ve bu şekilde yerine getirilir veya bu şekilde değiştirilir.

Özel alt komut6_ click()
dim sysvardata as Full
dim sysvarname as string

sysvarname = "osmode"
sysvardata = 1
Autocad.activedocument.setvariable sysvarname, sysvardata
“Budrawing. Setvariable sysvarname, sibling dataend end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end

Sorun aynı kalır, filtreyi aktive etmek için düğmeye tıkladığımda, birkaç saniye sonra iki uygulama arasında bir süre boyunca bir sorun gibi görünüyor.
 
Bana göre problem aktif bir komutta olduğunuz gerçeğiyle ilgilidir, bir setvar çağrısı muhtemelen komut satırından geçmek zorunda kalır, çünkü komut satırında bir komut (söz oyunu) geçmek söyledim.
 

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