Çizim Paylaş

Bülten Aboneliği
*  E-posta adresiniz:



* Güvenlik kodu:
Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] > 44 <
İleti Yazar
20.01.2017 21:58
84566    
yazgunesi

[70] Editör

Online Durumu

594 ileti
Teknik Ressam
Çanakkale

Alıntı
BLack|E :
Merhaba
Ustalarıma sorum olacaktı bir kaç tane...



1) Komutu tekrar çalıştırdığımda benden bir önceki kullandığım değeri anımsamasını nasıl yaparız ?

Kod:

(setq en (getreal "\nOk Isaretinin Genisligini Giriniz  < "en" >  :"))


Yanlış hatırlamıyorsam çift tırnak kullanılarak böyle olması lazım. Eğer hata veririse strcat komutunu kullanarak birleştirme yapmak fayda sağlaybilir..

Kod:

;;  strcat kullanım örneği
(princ (strcat "\n Şu anki Block ismi : " "  -->> " (cdr (assoc 2 blkselect)) " <<--" ))


2) Object Snap (kenetleme) ayarlarında bütün modları Select All yapmam için sıfır yerine ne yazmam gerekir ?

Osmode'yi açıp kapatmazsak, Autocad belli bir zaman sonra saçmalamaya başlamaktadır, yanlış çizim yapılması gibi sonuçlar ortaya çıkar.Sadece bir adet çizgi çizdirilmesi yada sadece 1 adet daire çizmek için herhangi bir sorun yoktur. Birden fazla çizim objesi var ise o zaman osmode'yi kullanmak gereklidir. Ben bu tip çizimlere kendimce komplex çizimler diye adlandırdım, yanı karmaşık çizim, birden bazla çizim objesi olan şekiller.. Autolisp programın başında osmodeyi değişkene kaydedip sıfırlıyoruz, program sonunda eski haline getiriyoruz.

Autodesk forum sitesinde osmode ile ilgili açıklama

Özel osmode durumu gerekebilir, mesela sadece endpoint aktif olsun yada endpoint ve mindpoint ikisi birden aktif olsun..Bunun çözümü Autocad'te istediğin osnap modlarını seç aktif olacak olanları, sonra klavyeden osmode yazıyoruz. Ekranda gözüken değer güncel osmode değeridir.O sayısal değeri de Autolisp programda kullanırsın.

Osmode'yi açıp kapatma işlemi sadece çizim yaptırmak amacıyla kullanmak; işin kolayına kaçmak oluyor. Entmake kullanarak ta çizim yaptırılabilir ve osmode kullanmaya gerek kalmaz. Osmode zaten esas kullanım amacı yakalama noktaları tayini içindir, çizim yaptırmak için değil. Visual Lisp ile de çizim yaptırabiliriz, osmode kullanmanıza gerek kalmaz.


Bu mesaj yazgunesi tarafından düzenlendi (21.01.2017 09:03 GMT, 269 Gün önce)

----------------------------------
www.cizimokulu.com

24.01.2017 11:09
84587    
BLack|E

[8] Kıdemli Uzman

Online Durumu

114 ileti
Teknik Ressam
ANKARA

Kod:

(setq en (getreal "\nOk Isaretinin Genisligini Giriniz  < "en" >  :"))

1. Verdiğiniz < "en" > datası ile olmuyor hocam, strcat kullanım örneğini anlamadım açıkcası. Benim aşağıdaki örneğe uygulayarak gösterseniz mutlu olurum.
Kod:

(defun c:ok (/ osm en okn1 okn2 mesafe aci n1 n2 n3 n4 n5 n6 )
(setq osm (getvar "osmode"))(command "_undo" "group")
(setq en (getreal "\nOk Isaretinin Genisligini Giriniz:"))
(setq okn1 (getpoint "\nOk Isaretinin Baslangic Noktasini Giriniz:"))
(setq okn2 (getpoint okn1 "\nOk Isaretinin Bitis Noktasini Giriniz:"))
(setq mesafe (distance okn1 okn2))
(setq aci (angle okn1 okn2))
(setq n1 (polar okn1 (- aci (/ pi 2))(* 0.5 en)))
(setq n2 (polar n1 aci (- mesafe (* 1.5 en))))
(setq n3 (polar n2 (- aci (/ pi 2)) en))
(setq n4 (polar okn1 (+ aci (/ pi 2))(* 0.5 en)))
(setq n5 (polar n4 aci (- mesafe (* 1.5 en))))
(setq n6 (polar n5 (+ aci (/ pi 2 )) en))
(command "osmode" 0)
(command "pline" n1 n2 n3 okn2 n6 n5 n4 "close")
(setvar "osmode" osm)(command "_undo" "e")
(princ)
)


2. verdiğiniz linkte bütün osnap kodları mevcut. fakat buradanda anladığım 16384 kodunu yazdığında osnapların hepsi seçilmiş olması lazım ama olmuyor.
Kod:

(setvar "osmode" 16384)

ya da
Kod:

(command "osmode" 16384)



    0 NONe
    1 ENDpoint
    2 MIDpoint
    4 CENter
    8 NODe
    16 QUAdrant
    32 INTersection
    64 INSertion
    128 PERpendicular
    256 TANgent
    512 NEArest
    1024 Geometric CEnter
    2048 APParent Intersection
    4096 EXTension
    8192 PARallel
    16384 Suppresses the current running object snaps

_____________________
M.Ertan KIRTIL
Teknik Ressam
Konstrüktör

24.01.2017 11:55
84590    
Travaci

[70] Editör

Online Durumu

2016 ileti
Teknik Ressam
Konstantinopol

BLack|E


Sitede bununla ilgili 100 lerce örnek bulabilirsin. Sorulacak en son soru bu olmalı.

15.02.2017 14:56
84675    
BLack|E

[8] Kıdemli Uzman

Online Durumu

114 ileti
Teknik Ressam
ANKARA

Selam.
Herkese kolay gelsin. Üzerinde çalıştığım, dcl arayüzüyle desteklediğim bir lisp var. Daha önce hocalarıma özelden sordum fakat çözüme ulaşamadım. Sorunumu biraz sadeleştirdim. action_tile 'lerdeki değerleri alıp lispte if fonksiyonlarında kullanmak istiyorum, bir türlü yapamadım. Aşağıda kullandığım dcl yüzün fotoğrafı var. Ardından dcl kod ve lsp kodlar mevcut. Yardımcı olursanız beni çok mutlu edersiniz. Bu belirsizlikten kurtulmak isterim. Nerede yanlış yapıyorum?
------------------------------------------------

------------------------------------------------
Kod:

member: dialog {
label = "FINLANDIYA KESİM / OYMA LİSP'İ V.1.1";
: paragraph {
: text_part {
label = "Designed and Created";  alignment = centered;
}
: text_part {
label = "By. M.Ertan KIRTIL";  alignment = centered;
}
}
: column {

: column {
  fixed_height=true;
  fixed_width=true;
 
  : boxed_row {
  label = "KESİM TİPİ";

: column {
 
: image {
   key          = "Tss1";
   aspect_ratio = 1.0;
   fixed_width  = true;
   vertical_margin = none;
   width        = 20;
   height       = 6;
   color        = 0;
   value="1";
}
  : image {
   key          = "Tss2";
   aspect_ratio = 1;
   fixed_width  = true;
   vertical_margin = none;
   width        = 20;
   height       = 6;
   color        = 0;
}
  : image {
   key          = "Tss3";
   aspect_ratio = 1;
   fixed_width  = true;
   vertical_margin = none;
   width        = 20;
   height       = 6;
   color        = 0;
}
}

: boxed_column {
           label=" KESİM TİPİ SEÇİMİ ";
  : radio_button {label = "KESİM-1 (T1)"; key   = "Ts1";  }
  : radio_button {label = "KESİM-2 (T2)"; key   = "Ts2"; value="1"; }
  : radio_button {label = "KESİM-3 (T3)"; key   = "Ts3"; }
}
}
  :boxed_row {
           label=" KESİM YÖNÜ ";
           
        : image {
            color = black ;
            fixed_height = true ;
            fixed_width = true ;
            height = 9 ;
            key = "ana" ;
            width = 36 ;
            alignment  = centered ;
        }
  : boxed_column {
  label = "KESİM YÖNÜ SEÇİMİ";
  : radio_button {label = "SOL ÜST KESİM &(A)"; key   = "a_tipi";  }
  : radio_button {label = "SOL ALT KESİM &(B)"; key   = "b_tipi";  }
  : radio_button {label = "SAG ÜST KESİM &(C)"; key   = "c_tipi"; value="1"; }
  : radio_button {label = "SAG ALT KESİM &(D)"; key   = "d_tipi";  }
}
}
: edit_box {
     label = "YANAK GENİŞLİĞİ";
     key   = "LENG";
     edit_width=15;
   }
}
: boxed_row {
ok_cancel;
}
}
}

------------------------------------------------
Kod:

(defun c:fn ( / )

(setq dcl_id (load_dialog "fn.dcl"))
(if (not (new_dialog "member" dcl_id))(exit))   


(start_image "Tss1")
(setq max_x (dimx_tile "Tss1"))
(setq max_y (dimy_tile "Tss1"))
(slide_image 0 0 max_x max_y "Tr1")
(end_image)

(start_image "Tss2")
(setq max_x (dimx_tile "Tss2"))
(setq max_y (dimy_tile "Tss2"))
(slide_image 0 0 max_x max_y "Tr2")
(end_image)

(start_image "Tss3")
(setq max_x (dimx_tile "Tss3"))
(setq max_y (dimy_tile "Tss3"))
(slide_image 0 0 max_x max_y "Tr3")
(end_image)

(start_image "ana")
(setq max_x (dimx_tile "ana"))
(setq max_y (dimy_tile "ana"))
(slide_image 0 0 max_x max_y "ana_ekran")
(end_image)

(set_tile "LENG" "50")

(mode_tile "LENG" 2)
(mode_tile "Ts1" 2)
(mode_tile "c_tipi" 2)

(action_tile "LENG" "(setq LEN $value)")
(action_tile "Ts1" "(setq Tip1 "1")(mode_tile "LENG" 2)")
(action_tile "Ts2" "(setq Tip2 "2")(mode_tile "LENG" 2)")
(action_tile "Ts3" "(setq Tip3 "3")(mode_tile "LENG" 2)")
(action_tile "a_tipi" "(setq Types1 "1")(mode_tile "LENG" 2)")
(action_tile "b_tipi" "(setq Types2 "2")(mode_tile "LENG" 2)")
(action_tile "c_tipi" "(setq Types3 "3")(mode_tile "LENG" 2)")
(action_tile "d_tipi" "(setq Types4 "4")(mode_tile "LENG" 2)")
  (action_tile "cancel" "(done_dialog 1)")
  (action_tile "accept" "(done_dialog 2)(setq LEN (atof (get_tile "LENG")))"
  )

  (setq flag (start_dialog))
 
  (unload_dialog dcl_id)


(if (= flag 2)
(islem)
)
  (princ))
 
(defun islem ( / )


(if (and(= Tip1 1)(= Types1 1))
(progn
....................
....................
)

(if (and(= Tip1 1)(= Types2 1))
(progn
....................
....................
)

(princ)) ;;;;;;;;;;;;;;;;;;;SON

_____________________
M.Ertan KIRTIL
Teknik Ressam
Konstrüktör

15.02.2017 17:07
84676    
Travaci

[70] Editör

Online Durumu

2016 ileti
Teknik Ressam
Konstantinopol

BLack|E


Kendıne gore duzenlersın, aradıgın hersey bu kucuk kodda mevcut.
Eklıyecegın sadece olasılıklara gore ıslemı yaptırmak.
Kendı kodunda gereksız ve hatalı yerlerı tespıt et.
Bu kod uzerınde sormak ıstedıgın bırsey olursa buralardayız.

Kod:

(defun c:Test (/ dg dz)
  (if (not (new_dialog "Test" (setq dg (load_dialog "Test.dcl")))) (exit))
  (if (not ns) (setq ns "1"))
  (if (not ss) (setq ss "A"))
  (if (not cc) (setq cc "50"))
  (setq ons ns oss ss occ cc) 
  (set_tile ns "1")
  (set_tile ss "1") 
  (set_tile "C" cc)
  (action_tile "1" "(setq ns "1")")
  (action_tile "2" "(setq ns "2")") 
  (action_tile "3" "(setq ns "3")") 
  (action_tile "A" "(setq ss "A")")
  (action_tile "B" "(setq ss "B")") 
  (action_tile "cancel" "(setq ns ons ss oss cc occ)") 
  (action_tile "accept" "(setq dz t cc (get_tile "C")) (done_dialog)") 
  (start_dialog)
  (unload_dialog dg)
  (if dz (alert (strcat ns "-" ss "-" cc)))
  (princ) 
)

Kod:

Test : dialog {
  label = "Test";
  spacer;
  : boxed_column {
    : column {
      : radio_button { label = " 1"; key = "1"; }
      : radio_button { label = " 2"; key = "2"; }
      : radio_button { label = " 3"; key = "3"; }
    }
  }
  : boxed_column {
    : column {
      : radio_button { label = " A"; key = "A"; }
      : radio_button { label = " B"; key = "B"; }
    }
  }
  : boxed_column { 
    : edit_box { label = " C"; key = "C";}
  } 
  ok_cancel;
}


Bu mesaj Travaci tarafından düzenlendi (16.02.2017 08:40 GMT, 243 Gün önce)

15.02.2017 20:40
84677    
BLack|E

[8] Kıdemli Uzman

Online Durumu

114 ileti
Teknik Ressam
ANKARA

Tamam hocam, derdime derman oldunuz kaç haftadır uğraşıyordum. Bu kodlar istediğimi verecek. Çok teşekkür ederim. Sağolun.

_____________________
M.Ertan KIRTIL
Teknik Ressam
Konstrüktör

02.06.2017 08:33
85068    
LEYLO

[5] Uzman

Online Durumu

38 ileti

Autocad çiziminde kullanılan nesnelerin (blok, line ...vb) oluşturulma tarihini autolisp ile öğrenebilir miyiz? İlgilenen arkadaşlara şimdiden teşekkürler.

02.06.2017 10:01
85070    
ehya

[90] Yönetici

Online Durumu

3107 ileti
Teknik Ressam
Ankara

LEYLO




Bırak autolisp'i, başka bir yöntemle öğrenme şansı varsa haberim olsun

02.06.2017 11:23
85071    
LEYLO

[5] Uzman

Online Durumu

38 ileti

Anlaşıldı hocam.

07.06.2017 19:42
85086    
muratsemih

[2] Girişimci

Online Durumu

7 ileti
Elektrik Mühendisi
Sakarya

Arkadaşlar Merhaba,
Bir lisp yazıyorum 8 tane farklı yere 8 tanede bir başka yere alt alta yazı yazılacak yazdığım koordinatlara yazılar tam oturmuyor yazıyla gelen şekillere yapışıp o şekilde geliyorlar bunu çözümünü ve neyden kaynaklandığın bilen var mı?

08.06.2017 09:26
85087    
Travaci

[70] Editör

Online Durumu

2016 ileti
Teknik Ressam
Konstantinopol

muratsemih


Yazdırmadan önce Osmode u kapayın.

15.06.2017 12:59
85099    
LEYLO

[5] Uzman

Online Durumu

38 ileti

Merhaba arkadaşlar,

Autocad de ilk açılıştaki standard text yüksekliğini lisp ile değiştirmek istiyorum. Yardımcı olursanız sevinirim.

15.06.2017 13:25
85100    
alumina

[70] Editör

Online Durumu

623 ileti
Insaat Muhendisi
Istanbul

Alıntı
LEYLO :

Kod:

(defun c:th (/)
  (setvar 'textsize h) (princ)
)

15.06.2017 14:36
85101    
LEYLO

[5] Uzman

Online Durumu

38 ileti

teşekkürler..

28.07.2017 19:08
85319    
BLack|E

[8] Kıdemli Uzman

Online Durumu

114 ileti
Teknik Ressam
ANKARA

Herkese selam,
Sorumu basitçe sormak için aşağıdaki resimden faydalandım.
Sorum şöyle Polar Array'ı seçmek için P harfinin altı çizgili olduğu için p'ye basmamız yeterli,
ya da Select objects butonunu aktif hale getirmek için S harfinin altı çizgili olduğu için S harfine basmamız yeterli
Pick Center Point butonunu aktif hale getirmek için herhangi bir harf atanmamış, bu konuda ne yapılabilir.
Array komutunun ara yüzündeki işlemleri yazıp öğrenmek için çalıştığım bir lisp'te kullanmayı düşünü yorumda.


_____________________
M.Ertan KIRTIL
Teknik Ressam
Konstrüktör

28.07.2017 20:02
85320    
ehya

[90] Yönetici

Online Durumu

3107 ileti
Teknik Ressam
Ankara

mevcut komuta birşey yapılamaz.
kısayol ataması dcl'de "mnemonic" diye geçiyor. bu da autolisp değil. müdahale etmeye müsade etmez.

lisp'de yapmak için, zaten butona ikon atayamıyorsunuz. o butona . (nokta) atarsınız.. kısayolu da aynı şekilde belirtirseniz çözüm olur diye düşünüyorum.

04.09.2017 18:22
85458    
muratsemih

[2] Girişimci

Online Durumu

7 ileti
Elektrik Mühendisi
Sakarya

Arkadaşlar Merhaba,
Bir lisp yazıyorum tamamlandığında başka bilgisayarda da çalıştırmam gerekli.....blocklar yapıp gerekli blocku çağırma kısmıda var yazılan lispin içerisinde.....şimdi ise soruma gelelim. Yaptığım blockların başka bilgisayarlarda da çıkabilmesi için nasıl bir yol izlemeliyim?

04.09.2017 21:40
85459    
badabum

[2] Girişimci

Online Durumu

4 ileti
inşaat müh
ANKARA

Alıntı
LEYLO :
Autocad çiziminde kullanılan nesnelerin (blok, line ...vb) oluşturulma tarihini autolisp ile öğrenebilir miyiz? İlgilenen arkadaşlara şimdiden teşekkürler.



Tarih bilgisinin tutulduğunu sanmıyorum, ama hangi nesne ilk hangisi son öğrenebiliriz

komut NNN

Kod:

;;WİNDOW SECÇERSEN OKUMA YÖNÜNDE NUMARALIYOR
;;SELECT OREDER İSE AUTOCAD ÇİZİM SIRASININ TERSİNE GORE NUMARALANDIRIYOR

(vl-load-com)
(defun c:NNN (/ aDoc op ptlst mn mx get_glob_real start i oldlayer ss)

(defun get_glob_real (var msg mod prec def / tmpH)
    (if (or (not var) (/= (type var) 'REAL))
      (setq var def)
    )
    (initget 6)
    (setq
      tmpH (getreal (strcat "\n" msg " <" (rtos var mod prec) ">: "))
    )
    (if (/= tmpH nil)
      (setq var tmpH)
    )
    var
)

  (setvar "cmdecho" 0)
  (setq oldLayer (getvar "CLAYER"))
  (setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object))
i    0
  )
  (if (tblsearch "Layer" ".E-NNN")
    (command "._layer" "_thaw"     ".E-NNN" "_on"
     ".E-NNN" "_unlock"   ".E-NNN" "_set"
     ".E-NNN" ""
    )
    (command "._layer" "_make" ".E-NNN" "_color" 2 ".E-NNN" "")
  )

(setq *_nnn_th (get_glob_real *_nnn_th "\nText height" 2 2 1.00))
  (cond
    ((and
       (progn (initget "W S")
      (setq
op (getkword
     "\nSelection Method [Window/Select Order] <Window>: "
   )
      )
      (if (not op)
(setq op "Window")
      )
      T
       )
       (princ "\nSelect objects or press <ENTER> for all: ")
       (or (ssget)
   (ssget "_X" '((410 . "Model")))
       )
       (setq start (car (_VL-TIMES)))       ;; işlem süresi ölçer satır 1/2
       (progn
(vlax-for
   itm
      (setq ss (vla-get-ActiveSelectionSet aDoc))
   (vla-getboundingbox itm 'mn 'mx)
   (setq
     ptlst
      (cons
(mapcar
  (function (lambda (a b) (/ (+ a b) 2.)))
  (vlax-safearray->list mn)
  (vlax-safearray->list mx)
)
ptlst
      )
   )
)
(vla-delete ss)
T
       ) ;progn
       (foreach
box
(if (eq op "W")
   (vl-sort
     ptlst
     (function (lambda (ip1 ip2) (< (car ip1) (car ip2)))
     )
   )
   (reverse ptlst)
)
(vlax-invoke
   (vlax-get (vla-get-ActiveLayout aDoc) 'Block)
   'AddText
   (itoa (setq i (1+ i)))
   box
   *_nnn_th ; Text Height
)
       )
     )
    )
  )
  (setvar "cmdecho" 1)
  (setvar "CLAYER" oldLayer)
  (princ (strcat "\n" (rtos (/ (- (car (_VL-TIMES)) start) 1000.) 2 4) " saniye."))  ;; işlem süresi ölçer satır 2/2
  (princ)
)

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] > 44 <
Copyright © 2004-2017 | Tüm Hakları Saklıdır | 3462 | Site haritası | İstatistikler | Hakkımızda | Kadromuz | Gizlilik | Reklam