Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 6 mesaj ]
Yazar Mesaj
 Mesaj Başlığı: SDS altinda farkli dosyalarda cizim yapmak
MesajGönderilme zamanı: 09 Oca 2004 17:17 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
İyigünler

sds_comand(); i kullanmadan yeni bir cizim dosyasi nasil yaratabilirim. O cizim dosyasini nasil current cizim haline getirebilirim. .Dwg file'ını kullaniciya gostermeden nasil databaseine ulasabilirim. Gene kullaniciya gostermeden bu database de degisiklik yapma (entity ekleyip cikarma, layer islemleri , dictionary vs..) olanagim varmi? Yani ekrande ana cizim dosyasi gorunecek ama arka planda ben yeni cizim dosyalari olusturacagim ve icinde oynamalar yapacagim yada mevcut dosyalari acip benzer seyleri onlarda gerceklestirecegim.

Tüm bu dediklerimi yapabilmem icin ne önerebilirsiniz.


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 18:25 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
HWND hWndMain = sds_getmainhwnd();
HWND hWndClient = GetWindow(hWndMain, GW_CHILD);
HWND hWndActive = (HWND)SendMessage(hWndClient, WM_MDIGETACTIVE, 0, 0L);
if (!hWndActive)
return RTERROR;
SendMessage(hWndClient, WM_MDIACTIVATE, (WPARAM)rb->resval.rlong, 0L);

Şeklinde mesaj atarak yeni bir pencere ve ve bu pencereyi active edebilirsiniz..

açılan view'ın database'ine gelince ise bunu direk olarak elde etmek için com(intelliCAD'in o andaki active penceresine istediğiniz ilaveleri yapabilirsiniz)yoluyla bağlanmanızı öneririm ki bu da sizin için pek iyi çözüm olmaz lakin kısa bir yol olur.. ve çok kolaydır..

Bir başka çözüm ise memoryde dxf database'ini tutmak ve istenildiği anda ekrana basmak.

Genelde bu gibi sorunlar kesit hazırlamada kullanılır.. Sizde galiba statik hesaplarınızda kullanıcaksınız.


içtenliklerimle ...
Murat KAPLAN


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 09 Oca 2004 19:42 
Site Admin

Kayıt: 07 Oca 2002 13:14
Mesajlar: 1085
Konum: Turkey
sds_entmake, sds_entmod ve sds_entdel'i hem nesne hem de table yaratmak için kullanabilirsiniz.

Bu arada sds_name (long[2])'in ilk longu dwgnin, ikincisi ise nesnenin indexidir (yoksa tersi mi?)



Destek/Support tarafından 09/01/2004 17:45:07 tarihinde değiştirildi


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 10 Oca 2004 07:45 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
sds_name ename
sds_point pt1;
sds_entsel("\nBir nesne seçiniz:",ename,pt1)

ename[0]->Nesnenin database deki clasına ait pointerı
ename[1]->Dwg nin pointer olarak adresi

Yani siz bir nesnenin hangi pencereye ait olup olmadığını ayırmak için ename[1] 'inden yararlanabilirsiniz.
sizin için nemli olan ename[0]'dır.....
Süha beyin dediğine katılıyorum lakin siz bu yolu bildiğinizden dolayı pek bahsetmedim.

Bana göre en güvenilir yol dxf motoru bulundurmak... şayet runtime'da nesneleriniz devamlı değişiyosaki bu sizin bilgilerinizi rem'de tutmanızı gerektirir.Bu birazcık sakınca doğurabilir.

ARX çaşmalarımız başladı.DWG databasini de dışarı çıkartmayı düşünüyoruz.
Diğer programcı arkadaşlarımızın da önemli bir ihtiyacı!

İçtenliklerimle

Murat KAPLAN
ADeko GROUP


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 12 Oca 2004 14:53 

Kayıt: 26 Ağu 2003 15:56
Mesajlar: 13
Konum:
ename[1] dwg ye bir pointer oldugunu bilmiyordum. bu konuyu biraz acarmisiniz. ancak dwg ye bir pointer olsa dahi bunun pratikte nasil bir faydasi var?

Benim anladigim kadariyla sds altinda yazilan bir appplication active olan dwg file 'inda islem yapiyor. Yani sds_entmake() ile yaratilan objeler active dwg nin database'ine yerlestiriliyor. Dwg yi aktif hale getirmek icinde magnamana'nin yazdigi ilk cevaptaki codu kullanmak gerekli. Yalniz bu islem yeni bir pencere acip onun ekranda gosterilmesine sebep olmaz mi. Islemler tamamlanir tamamlanmaz bu ekran kapatilabilir. Ancak islem yapilmak istenen dwg dosyasinin bir sure de olsa ekranda gorunmesi gerekmekte. Icerden bu isi su an icin halledemiyoruz.

Buraya kadar dogrumu anladigimi bana soyler; bir de mevcut bir dwg dosyasini file name'ine gore acip active hale getirmeyi anlatan bir code ornegi gonderirseniz cok sevinirim.

iyigunler dilerim


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 12 Oca 2004 22:12 

Kayıt: 18 Kas 2003 22:53
Mesajlar: 18
Konum: Turkey
merhaba,
sizin bahsettiğiniz com ve vba arabirimlerinde active document'la çalışır.

sds uydulamalarında böyle bir durum söz konusu değildir.

ename[1]=long(CICadDoc*)
rb=sds_resbuf(RTSTR,....)


1.dwg'ye ekleme
sds_entmakex(rb,ename)
1.dwnin adresi long Dwg_ONE=ename[1];

2.dwg'ye ekleme
bu dwg nin adresini de biliyoruz diyelim
1.dwnin adresi long Dwg_TWO=daha önceden atanmış;
ename[1]=Dwg_TWO;
sds_entmake(ename) öbür dwg'ye ilave eder.

içtenliklerimle..

Murat KAPLAN
ADeko GROUP..


Başa Dön
 Profil  
 
Eskiden itibaren mesajları göster:  Sırala  
Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 6 mesaj ]


Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 8 misafir


Bu foruma yeni başlıklar gönderemezsiniz
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı düzenleyemezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu foruma eklentiler gönderemezsiniz

Aranacak:
Geçiş yap:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net


Türkçe çeviri: phpBB Türkiye