• 09-08-2023, 20:09:23
    #1
    Merhaba iyi forumlar. Kendimce autocad ile bir çalışma yapıyorum. Amacım şu örnek olarak "yol" adında bir layerımız olsun. Bu layer ile line çizimleri biliyorsunuz ki bitirdiğiniz zaman orayı keşişim noktası olarak alıyor ve yeni bir line açıyor. Bu keşişim noktalarına 3cm çapında daireler eklemek istiyorum yardımcı olabilecek arkadaşlar ulaşabilirse sevinirim.
  • 16-08-2023, 20:06:21
    #2
    Lorem adlı üyeden alıntı: mesajı görüntüle
    Merhaba iyi forumlar. Kendimce autocad ile bir çalışma yapıyorum. Amacım şu örnek olarak "yol" adında bir layerımız olsun. Bu layer ile line çizimleri biliyorsunuz ki bitirdiğiniz zaman orayı keşişim noktası olarak alıyor ve yeni bir line açıyor. Bu keşişim noktalarına 3cm çapında daireler eklemek istiyorum yardımcı olabilecek arkadaşlar ulaşabilirse sevinirim.

    import math
    import win32com.client  # pywin32 kütüphanesini yüklemeniz gerekebilir
    
    # Autocad uygulamasını başlat
    acad = win32com.client.Dispatch("AutoCAD.Application")
    
    # Aktif belgeyi al
    doc = acad.ActiveDocument
    
    # İşlem yapmak istediğiniz layer adı
    layer_name = "yol"
    
    # Layer'ı bul
    layer = doc.Layers.Item(layer_name)
    
    # Layer'daki tüm line çizimlerini al
    lines = layer.Explode(doc.ModelSpace)
    
    # Keşişim noktalarını depolamak için bir liste
    intersection_points = []
    
    # Tüm line çizimlerinin keşişim noktalarını bul
    for i in range(len(lines)):
        for j in range(i + 1, len(lines)):
            line1 = lines[i]
            line2 = lines[j]
            intersection = line1.IntersectWith(line2, 1)
            if intersection[0]:
                intersection_points.extend(intersection[1])
    
    # Keşişim noktalarına daireler ekle
    for point in intersection_points:
        center = point
        radius = 3  # 3 cm çapında daireler eklemek için
        circle = doc.ModelSpace.AddCircle(center, radius)
    
    # Değişiklikleri kaydet
    doc.Save()