AutoCAD library

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Merhaba, Ben bir şeyi öğrenmek istiyorum. Şimdi herhangi bir Excel dosyasından AutoCAD ‘e çizim yaptırmak için bilgisayarda hangi AutoCAD versiyonu yüklü ise onu library tanıtımının Excel dosyasında yapılması gerekiyor. Ancak ondan sonra AutoCAD ‘e işlem yapabiliyoruz. Ayrıca yüklediğiniz dosyada mesela AutoCAD 2019 kayıtlı fakat bilgisayarda AutoCAD 2018 yüklü ! Dosya hata verip açılmıyor! Benim öğrenmek istediğim şu; Excel ayarları şu şekilde yapılma imkanı varmı? Excel dosyası hangi bilgisayara yükleniyorsa o bilgisayardaki AutoCAD versiyonunu otomatik tanısın ve hata vermesin.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Meraktan soruyorum.
Neden AoutoCad VBA kısmını kullanmıyorsunuz?

Sorunuza gelince versiyon belirtmeden CreateObject yordamını kullanabilirsiniz.
Hangi versiyon yüklü olursa olsun.
Yani aynen Excelde olduğu gibi.
createobject("excel.application") hangi versiyon yüklü olursa olsun excel application bir değişkene atanır.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sn Dalgalikur verdiğiniz cevap için teşekkür ederim, ancak ben sanırım iyi anlatamadım! benim sorunum excel kısmında ! yani ortada excel vb ile hazırlanmış bir program var "xlsm" uzantılı. Bunu başka bir bilgisayara yüklüyoruz vede herhangi bir işlem yapmadan excel dosyasındaki ibrary bilgisayarda yüklü olan autocad versiyonu neyse onu görsün ve dosya açılsın. zira excel dosyası Tools / References bölümünde autocad 2018 library gözüküyor ancak yüklenen bilgisayarda autocad 2019 yüklü ise References bölümünde hata veriyor ve dosya açılmıyor. Yani excel dosyasında öyle bir makro olması lazımki, yüklendiği bilgisardaki autocad versiyonunu görüp Tools/References tablosunda o versiyonu aktif hala geçirsin.
Sanırım siz autocad'de bazı ayarlamalar yapılması konusunu işlemişsiniz. ben yanlış anlamadıysam.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Anlaşılmamışım.

Excel VBA ile Word dosyası açmak için önce Word application tanımlaması yapılır.
Örnek
Dim WordApp as object
set WordApp = createobject("Word.Application")
Word referansı eklemek yerine word sınıfı bir değişkene atanmış oldu.

Bu şekilde bir değişkene word programı atanırsa hangi versiyon olursa olsun sorunsuz çalışır.
Siz de aynısını AutoCad programı için yapabilirsiniz.

Excel VBA da referans eklemek yerine Referansı bir değişkene atarsınız ve kullanırsınız.
Sınıf adını (kırmızı ile işaretlediğim yere ne yazacağınızı) bilmiyorum ama
Örnek
Dim AutoCadApp as object
set AutoCadApp = createobject("AutoCad.Application")

Burada artık AutoCadApp değişkenini kullanarak AutoCad için kod yazabilirsiniz.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Şimdi anladım :) Peki ben AutoCad ile ilgili kodları eklesem siz burada düzeltme yaparmısınız.

Sub KoordinatCizimi()

On Error GoTo Hata

Dim koordinat
Dim xkoordinat
Dim ykoordinat
Dim cizgi1
Dim cizgi2


Dim Secim As Range

Set Secim = Application.InputBox(Prompt:="İLK(X)Koordinatı Fare ile seçiniz. ÖRNEK: $A$2 veya A2" & vbCrLf & _
vbCrLf & "* Y koordinatı Belirlediniz (X)hücrenin yanındaki Sütun olacaktır" & vbCrLf & _
"* Z koordinatı Sıfır(0) kabul edilecektir.", Title:="İlk X Koordinatını Seçiniz", Type:=8)

Range(Secim.Address(False, False)).Select

Application.ScreenUpdating = False


Do While Not IsEmpty(ActiveCell)

xkoordinat = Replace(ActiveCell.Value, ",", ".")
koordinat = koordinat & xkoordinat & ","

ActiveCell.Offset(0, 1).Activate

ykoordinat = Replace(ActiveCell.Value, ",", ".")
If ykoordinat = "" Then
ykoordinat = 0
End If

koordinat = koordinat & ykoordinat & ",0 "
ActiveCell.Offset(1, -1).Activate
Loop
cizgi1 = Range("D29").Value & "," & Range("E29").Value & " " & Range("F29").Value & "," & Range("G29").Value & " "
cizgi2 = Range("D30").Value & "," & Range("E30").Value & " " & Range("F30").Value & "," & Range("G30").Value & " "


Range(Secim.Address(False, False)).Select

Application.ScreenUpdating = True

Dim Cad As AutoCAD.AcadApplication

Set Cad = New AutoCAD.AcadApplication

Cad.Application.ActiveDocument.SaveAs ActiveWorkbook.Path & "/" & _
Replace(ActiveWorkbook.Name, ".xlsm", ".dwg")

Cad.Visible = True
Cad.Application.WindowState = acMax

Cad.ActiveDocument.SendCommand "Line " & koordinat & " "
Cad.ActiveDocument.SendCommand "Circle " & cizgi1 & Chr(27)
Cad.ActiveDocument.SendCommand "Circle " & cizgi2 & Chr(27)


Cad.ActiveDocument.SendCommand "Zoom Extents "

Cad.Application.ActiveDocument.Save

Set Cad = Nothing
Hata:
Exit Sub

End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kod:
Dim Cad As AutoCAD.AcadApplication
Set Cad = New AutoCAD.AcadApplication
yerine
Kod:
Dim Cad  as object
set Cad = createobject("AutoCad.Application")
yazmanız gerekiyor.

Sınıf adının doğru olup olmadığını bilmediğimi yukarıda söylemiştim.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Çok teşekkürler dalgalikur deneyeceğim 🙏🙏
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sn Dalgalikur yukarıdaki formülde sizin söylemiş olduğunuz değişikliği yaptım. Değişikliği yaptığım bilgisayarda autocad 2018 yüklüydü vede programın reference library 2018 autocad kayıtlı idi, programı başka bilgisayara yükledim , o bilgisayarda autocad 2020 yüklüydü, program açılışta hata verdi, VB / Tools / Reference bölümüne girdim autocad 2018 MISSING olarak gözüküyordu, onu autocad library 2019 ile değiştirdim (çünkü 2020 autocad 2019 kullanıyor) ve programı kaydettim, program çalıştı ! yani sizin gönderdiğiniz düzenleme dışında başka yapacağım gözden kaçırdığım bir şey varmı? mesela sınıf adından bahsediyorsunuz! o nedir? ekstra bir işlemmidir?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Hata vermesinin sebebi Referances kısmında AutoCad referansının eklenmiş olmasıdır.
Referances kısmında AutoCad referansı eklenmemiş olmalı.
Referansı "CreateObject" ile değişkene atıyoruz.

Sınıf (class) ismi kırmızı ile işaretlediğim yerdir.
Bir bilgisayarda bu sınıf adı ile çalıştıysa her bilgisayarda çalışır. Yani sınıf adı demek ki doğruymuş.

Dim Cad as object
set Cad = createobject("AutoCad.Application")
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sn dalgalikur merhaba, evet references bölümünden AutoCad referansını kaldırdım ve program başka bilgisayarda rahatlıkla açıldı. Ancak bu sefer başka bir sorun çıktı autocad sayfasını açıyor ancak çizim yapmıyor! ek'te autocad reference yapılmış vede kaldırılmış halinin resimlerini gönderiyorum.Deneme olsun diye refence bölümünde autocad'i tanımladım çizimi yaptı.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Şimdi kodlarınız inceledim kodun en başına "On Error GoTo Hata" yazmışsınız
Hata satırı olarak en son satırı seçmişsiniz.
Bunun anlamı şu: Benim kodlarımda herhangi bir hata varsa bunu görmezden gel ve kodları çalıştırmaya devam et.
Şu anda hata almamanızın sebebi bu.
Kodlar yazılıp bittikten sonra hata denetlemesi yapma anlamına gelen "On Error GoTo ..." yada "On Error Resume Next" satırlarını mutlaka silmelisiniz.
Eğer kodlarınızda bir hata varsa VBA nın hata vermesi ve doğru kodu yazmanıza yardımcı olmasına izin vermelisiniz.

O hata denetlemesi yapma "On Error GoTo Hata" satırını silin.
Kodları çalıştırın hata veren satırı söyleyin.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Cad.Visible = True
Cad.Application.WindowState = acMax

Hata verdi
 

Ekli dosyalar

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
"Hata:" bunuda sileyimmi?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
"Hata:" bunuda sileyimmi?
Evet "On Error Goto Hata" silince o satır artık işe yaramaz. Onu da sil.

Hata veren satırdaki "acMax " değeri Nothing olduğundan hata veriyor. yani "acMax " değişkenine hiçbir yerde bir değer atanmıyor.
O satırı da silip tekrar deneyin.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Merhaba dalgalikur ; yukarıda belirtmiş olduğunuz işlemleri yaptım. Kendi bilgisayarımda gayet güzel autocad çizimini yaptı :) Ancak diğer bilgisayara yüklediğimde program rahat açıldı ancak autocad'e çizim yaptırmak istediğimde resimdeki hatayı verdi!
 

Ekli dosyalar

Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba, @cocoa35
Temsili verilerinizi içeren dosyanızı paylaşırsanız incelemek isterim.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Merhaba ; ek'te dosyayı gönderiyorum. Dosya incelendiğinde Daire çiziminin yapılmadığı vede başka bilgisayarda hata verdiği görülmekte.
 

Ekli dosyalar

Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
2014 versiyonunda denedim. Autocad açılışında startup pop-up penceresi açılıyorken çizim yaptırmadı. Startup pop-up menüsünü açılışta gösterme deyince daire çizimini yapıp dwg olarak aynı klasör içerisine kayıt yaptı. Bir de 2018-2019 versiyonlarında deneyeceğim.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Tamam cicosz denemelerden sonra çalışan düzenlemenizi gönderirseniz sevinirim, teşekkürler.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sn cicosz “startup pop-up menüsü açılışta gösterme” iptali nasıl yaptınız?
 
Üst