AutoCAD • AutoLISP • Programlama • Püfler • Komutlar • Terimler • Eğitim
aLd • TCad • FacadeCAD • Cephe Kot • HQ Library • FreeMUST • Pasdoc.A
21.02.2012 14:50    

ProhibiT
Merhaba arkadaÅŸlar,

waytooraider arkadaşımız her zamanki gibi reddedilmesi mümkün olmayan bir nezaketle istekte bulunmuştu. Arkadaşımızın isteğini yerine getirirken, pek çok kullanıcının işine yarabileceğini düşüncesinin yanı sıra, yazar arkadaşlarımız için de ilginç olabilecek bazı ipuçları içeren bu fonksiyonu bağımsız bir başlık altında paylaşmayı uygun gördüm.

Bahsettiğimiz fonksiyonun daha basit ve sade halini daha önce Lisp İstekleri başlığı altında paylaşmıştık. İstek sahibi arkadaşımızın örneklediği gibi, tesisat projelerinde boru metrajlarının hazırlanmasında yardımcı olmak üzere yazılmış bir fonksiyon. Ufku geniş arkadaşlarımızın bu tür fonksiyonları benim saf şeytanımın aklına gelmeyen alanlarda kullandıklarını bildiğimden, mümkün olan en genel amaca uygun ve esnek bir yapıda yeniden yazdım.

Fonksiyon çalıştırıldığında bir diyalog penceresi aracılığıyla, Ondalık Basamak Sayısı, Poz Numarası Başlangıç Sayısı, Mahal adı, Malzeme cinsi ve Boru Çapı değerleri kolayca girilebilir. Kullanılan aLd.dcL dosyasını fonksiyon ...\support klasöründe kendiliğinden oluşturur. Daha önce de bir kaç defa açıkladığımız gibi, ...\support klasöründe dosyanın oluşturulabilmesi için, kullanıcının söz konusu klasörlere yeterli erişim yetkisinin olması gerekiyor.

Linkleri görebilmek için ÜYE olmalısınız.

linkinde ve orada verilen diğer linklerde bu konunun detaylarını görebilirsiniz.

Eğer açık olan drawing dosyanızda ebL isimli bLock yok ise fonksiyon sizin için bu bLock'u oluşturur. Oluşturulan bLock örnek ve kılavuz niteliğindedir. BLock Editor ile ebL bLock'unda istediğiniz her türlü değişikliği yapabilirsiniz. Attribute'lerin yerlerini ve hizalama şekillerini değiştirebileceğiniz gibi istediğiniz attribute'ü tamamen kaldırabilirsiniz. Tek şartla ki, bLock içinde attribute'lerden en az bir tanesi kalmalıdır. Poz numarası attribute'ünün yerini değiştirebileceğiniz gibi, çember yerine dikdörtgen koyabilir veya tamamen kaldırabilirsiniz.

Eğer fonksiyonun oluşturduğu ebL bLock'unu yukarıda açıklanan şekilde değiştirmek isterseniz, fonksiyonu çalıştırıp açılan diyalog kutusundan Cancel seçerek çıktıktan sonra, bLock editor kullanarak ebL bLock'unda istediğiniz değişiklikleri yapabilirsiniz. Fonksiyon bundan sonra tamamen sizin belirlediğiniz ebL bLock'unu kullanarak çalışacaktır. Kısaca özetlemek gerekirse, kullanıcının belirlediği bLock ve yerleşim düzeni fonksiyon tarafından algılanıp kullanılacaktır.

Fonksiyon Line, Polyline, Lwpolyline, Spline, Arc ve Circle objelerini işleme alır, uzunluklarını hesaplayıp yazar. Listelenen obje türlerinden seçilmeye devam edildikçe, sıralı poz numarası, geçerli Mahal, Malzeme ve çap değerlerini kullanarak işleme devam edilir. Kullanılan Ondalık Basamak Sayısı, Poz Numarası, Mahal ve Malzeme bilgileri ile Çap değerini değiştirmek için fonksiyon sonlandırılarak, yeniden çalıştırılır, başlangıçta açılan diyalog penceresinden istenen değişiklikler yapıldıktan sonra işleme devam edilir.

Fonksiyon sonlandırıldığında, hatta drawing dosyası save edilerek çıkılıp tekrar açıldığında, fonksiyon dosya içinde kullanılan en büyük poz numarasını bularak, numaralandırmaya buradan devam eder.

Kod:

;|===========================================================================|
| Seçilen Line, Polyline, Lwpolyline, Spline, Arc veya Circle objelerinin   |
| uygun yerine Mahal, Malzeme, Poz Numarası, Çap ve Boy Atrribute'lerini    |
| içeren "ebL" isimli bLock insert edilir.                                  |
| Hazırlayan: M. Åžahin Güvercin  23.11.2012  www.autocadokulu.com           |
|___________________________________________________________________________|;
(defun cRtbLk ()
  (entmake (list '(0 . "BLOCK") '(100 . "AcDbEntity") '(100 . "AcDbBlockBegin")
    '(70 . 2) '(10 0.0 0.0 0.0) '(2 . "EbL") '(1 . "EbL")))
  (entmake (list '(0 . "CIRCLE") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbCircle") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(-2.49912 3.0 0.0))) (cons 40 (* TsZ 1.65))))
  (entmake (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbText") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(-3.935 2.49966 0.0))) (cons 40 TsZ) '(1 . "1") '(50 . 0.0) '(72 . 4)
    (cons 11 (mapcar '(lambda (p) (* p TsZ)) '(-2.49912 3.0 0.0)))
    '(100 . "AcDbAttributeDefinition") '(280 . 0) '(3 . "Poz:") '(2 . "POZ")
    '(70 . 0) '(280 . 1)))
  (entmake (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbText") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(0.0 3.0 0.0))) (cons 40 TsZ) '(1 . "Mahal") '(50 . 0.0) '(72 . 0)
    (cons 11 (mapcar '(lambda (p) (* p TsZ)) '(0.0 0.0 0.0)))
    '(100 . "AcDbAttributeDefinition") '(280 . 0) '(3 . "Mahal:")
    '(2 . "MAHAL") '(70 . 0) '(280 . 1)))
  (entmake (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbText") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(0.0 1.5 0.0))) (cons 40 TsZ) '(1 . "Malzeme") '(50 . 0.0) '(72 . 0)
    (cons 11 (mapcar '(lambda (p) (* p TsZ)) '(0.0 0.0 0.0)))
    '(100 . "AcDbAttributeDefinition") '(280 . 0) '(3 . "Malzeme:")
    '(2 . "MALZEME") '(70 . 0) '(280 . 1)))
  (entmake (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbText") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(0.0 0.0 0.0))) (cons 40 TsZ) '(1 . "0.00") '(50 . 0.0) '(72 . 0)
    (cons 11 (mapcar '(lambda (p) (* p TsZ)) '(0.0 0.0 0.0)))
    '(100 . "AcDbAttributeDefinition") '(280 . 0) '(3 . "Boy: ") '(2 . "BOY")
    '(70 . 0) '(280 . 1)))
  (entmake (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(62 . 0)
    '(100 . "AcDbText") (cons 10 (mapcar '(lambda (p) (* p TsZ))
    '(-3.87244 0.0 0.0))) (cons 40 TsZ) '(1 . "1\"") '(50 . 0.0) '(72 . 2)
    (cons 11 (mapcar '(lambda (p) (* p TsZ)) '(-1.0 0.0 0.0)))
    '(100 . "AcDbAttributeDefinition") '(280 . 0) '(3 . "Cap: ") '(2 . "CAP")
    '(70 . 0) '(280 . 1)))
  (entmake (list '(0 . "ENDBLK")))
)
;|___________________________________________________________________________|;
(defun crTdcL (aLddLg / f dcLf)
  (setq f (open aLddLg "w"))
  (foreach dcLf
'("//------------------=={ AlddLg.dcl Dialog Definition }==------------------//"
  "//              Author: M. Sahin Guvercin, Copyright © 2012              //"
  "//                        www.autocadokulu.com                           //"
  "//-----------------------------------------------------------------------//"
  "aLd:dialog{"
  "label=\"**** Boru Metrajı ****\";"
  ": boxed_column{"
  ": edit_box{label=\"Ondalık Basamak Sayısı:\";"
  "key=\"dpL\";edit_width=25;}"
  ": edit_box{label=\"BaÅŸlangıç Poz Numarası:\";"
  "key=\"Poz\";edit_width=25;}"
  ": edit_box{alignment=right;label=\"                            Mahal: \";"
  "key=\"Mah\";edit_width=25;}"
  ": edit_box{alignment=centered;label=\"                       Malzeme:\";"
  "key=\"MaL\";edit_width=25;}"
  ":edit_box{alignment=centered;label=\"                               Ã‡ap:\";"
  "key=\"Cap\";edit_width=25;}"
  "spacer;spacer;}"
  ": boxed_row{: text{key=\"CpR\";value="
  "\"          Hazırlayan: © M.Åžahin Güvercin - www.autocadokulu.com\""
  ";}}ok_cancel;}")
  (write-line dcLf f)) (close f)
)
;|___________________________________________________________________________|;
(defun rt (Rob Bas Ang / TmT)
  (setq Rob (vlax-ename->vla-object Rob) Tmt (vlax-tmatrix
    (list (list (cos Ang) (- (sin Ang)) 0 (- (car Bas)(- (* (car Bas)(cos ang))
      (* (cadr bas) (sin Ang))))) (list (sin Ang) (cos Ang) 0 (- (cadr Bas)
      (+ (* (car Bas) (sin Ang)) (* (cadr Bas) (cos Ang))))) (list 0 0 1 0)
      (list 0 0 0 1)))) (vla-transformby Rob Tmt)
)
;|___________________________________________________________________________|;
(defun sc (Mob Bas sc / TmT)
  (setq Mob (vlax-ename->vla-object Mob) TmT (vlax-tmatrix
    (list (list sc 0 0 (car Bas)) (list 0 sc 0 (cadr Bas))
          (list 0 0 sc (caddr Bas)) (list 0 0 0 1))))
  (vla-transformby Mob TmT)
)
;|___________________________________________________________________________|;
(defun mv (Mob fPt SPt / TmT)
  (setq Mob (vlax-ename->vla-object Mob) Tmt (vlax-tmatrix
    (list (list 1 0 0 (- (car sPt) (car fPt))) (list 0 1 0 (- (cadr sPt)
      (cadr fPt))) (list 0 0 1 (- (caddr sPt) (caddr fPt))) (list 0 0 0 1))))
  (vla-transformby Mob Tmt)
)
;|___________________________________________________________________________|;
(write-line "\n Hazırlayan: M. Şahin Güvercin - www.autocadokulu.com")
;|___________________________________________________________________________|;
(defun c:aLd (/ *error* bLkY ebLd MhLAtr MLzAtr PozAtr CapAtr BoyAtr PvT bLck
              PzLr dcL_id waht_next n Czg Boy BiP aCi aC0 aC1)
  (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
  (defun *error* (er) (princ er) (princ em) (command "_.undo" "e"))
  (setq em  " M. Åžahin Güvercin - www.autocadokulu.com"
        TsZ (getvar "DimTxt") scL (getvar "DimScaLe") TxH (* TsZ scL))
  (setq aLddLg (strcat (substr (findfile "acad.exe") 1 (- (strlen (findfile
                                          "acad.exe")) 8)) "Support\\aLd.dcL"))
  (if (not (findfile aLddLg)) (CrTdcL aLddLg))
  (if (not (tblsearch "bLock" "EbL")) (crTbLk))
  (setq bLkY (tblobjname "bLock" "EbL") ebLd (entget bLkY) MhLAtr nil
        MLzAtr nil PozAtr nil PozAtr nil CapAtr nil BoyAtr nil pzLr nil
        Poz nil) (if (not dpL) (setq dpL (getvar "Luprec")))
  (if (not Cap) (setq Cap ""))
  (if (not Mahal) (setq MahaL ""))
  (if (not MaLzeme) (setq MaLzeme ""))
  (while (setq bLkY (entnext bLkY)) (setq PvT (entget bLkY))
    (if (= (cdr (assoc 0 PvT)) "ATTDEF")
      (cond ((= (cdr (assoc 2 PvT)) "MAHAL")   (setq MhLAtr PvT))
            ((= (cdr (assoc 2 PvT)) "MALZEME") (setq MLzAtr PvT))
            ((= (cdr (assoc 2 PvT)) "POZ")     (setq PozAtr PvT))
            ((= (cdr (assoc 2 PvT)) "CAP")     (setq CapAtr PvT))
            ((= (cdr (assoc 2 PvT)) "BOY")     (setq BoyAtr PvT)))))
  (if (setq bLck (ssget "x" (list (cons 0 "INSERT") (cons 2 "ebL"))))
    (progn (setq n (sslength bLck))
      (while (not (minusp (setq n (1- n))))
        (setq PvT (ssname bLck n))
        (while (/= (cdr (assoc 0 (entget (setq PvT (entnext PvT))))) "SEQEND")
          (if (= (cdr (assoc 2 (entget PvT))) "POZ")
            (setq pzLr
                   (append pzLr (list (atoi (cdr (assoc 1 (entget PvT))))))))))
      (setq Poz (nth 0 (vl-sort pzLr '>))))) (if (not Poz) (setq Poz 0))
  (if (< (setq dcl_id (load_dialog aLddLg)) 0) (exit))
  (setq what_next -1)
  (while (< what_next 2)
    (if (not (new_dialog "aLd" dcl_id)) (exit))
    (set_tile "dpL" (itoa dpL)) (set_tile "Poz" (itoa (1+ Poz)))
    (set_tile "Mah" MahaL) (set_tile "MaL" MaLzeme) (set_tile "Cap" Cap)
    (action_tile "dpL" "(setq dpL (atoi (get_tile \"dpL\")))")
    (action_tile "Poz" "(setq Poz (1- (atoi (get_tile \"Poz\"))))")
    (action_tile "Mah" "(setq MahaL (get_tile \"Mah\"))")
    (action_tile "MaL" "(setq MaLzeme (get_tile \"MaL\"))")
    (action_tile "Cap" "(setq Cap (get_tile \"Cap\"))")
    (action_tile "accept" "(done_dialog 2)")
    (action_tile "cancel" "(done_dialog 3)")
    (setq what_next (start_dialog)))
  (if (= what_next 3) (exit))
  (princ "\r Ölçüsü yazılacak Obje(ler) seçiniz: ")
  (while (setq Czg (ssget ":s" (list (cons 0 "*line,arc,circle,ellipse"))))
    (setq n (sslength Czg))
    (while (not (minusp (setq n (1- n))))
      (setq Boy (vlax-curve-getDistAtParam (setq a (vlax-ename->vla-object
                                   (ssname Czg n))) (vlax-curve-getendparam a))
            BiP (vlax-curve-getPointAtDist a (/ Boy 2.0)))
      (setq kYs (cdr (assoc 0 (entget (ssname Czg n)))))
      (if (= (cdr (assoc 0 (entget (ssname Czg n)))) "LINE")
        (setq aCi (vlax-curve-getFirstDeriv a (/ Boy 2)))
        (setq aCi '(0.0 0.0 0.0)))
      (if (not (equal (car aCi) 0.0 1.0e-16))
        (setq aCi (atan (/ (cadr aCi) (car aCi)))) (setq aCi 0.0))
      (while (>= aCi pi) (setq aCi (- aCi pi)))
      (if (<= aCi (/ pi 2.0))
        (setq aC0 aCi aC1 (+ aCi (/ pi 2.0)))
        (setq aC0 (- aCi pi) aC1 (- aCi (/ pi 2.0))))
      (setq BiP (polar BiP aC1 (* (/ TsZ 2.0) scL)))
      (entmake (list '(0 . "INSERT") '(100 . "AcDbEntity") '(67 . 0)
        '(100 . "AcDbBlockReference") '(66 . 1) '(2 . "EbL") (assoc 10 ebLd)
        (cons 41 1) (cons 42 1) (cons 43 1) (cons 50 0) '(70 . 0) '(71 . 0)
        '(44 . 0.0)'(45 . 0.0)))
      (if MhLAtr (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity")
        (assoc 62 MhLAtr) '(100 . "AcDbText") (assoc 10 MhLAtr)
        (assoc 40 MhLAtr) (cons 1 MahaL) (assoc 50 MhLAtr) (assoc 41 MhLAtr)
        (assoc 51 MhLAtr) (assoc 71 MhLAtr) (assoc 72 MhLAtr) (assoc 11 MhLAtr)
        '(100 . "AcDbAttribute") '(280 . 0) (assoc 2 MhLAtr) (assoc 70 MhLAtr)
        (assoc 73 MhLAtr)(assoc 74 MhLAtr) '(280 . 1))))
      (if MLzAtr (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity")
        (assoc 62 MLzAtr) '(100 . "AcDbText") (assoc 10 MLzAtr)
        (assoc 40 MLzAtr)(cons 1 MaLzeme) (assoc 50 MLzAtr) (assoc 41 MLzAtr)
        (assoc 51 MLzAtr) (assoc 71 MLzAtr) (assoc 72 MLzAtr) (assoc 11 MLzAtr)
        '(100 . "AcDbAttribute") '(280 . 0) (assoc 2 MLzAtr) (assoc 70 MLzAtr)
        (assoc 73 MLzAtr)(assoc 74 MLzAtr) '(280 . 1))))
      (if PozAtr (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity")
        (assoc 62 PozAtr) '(100 . "AcDbText") (assoc 10 PozAtr)
        (assoc 40 PozAtr) (cons 1 (itoa (setq Poz (1+ Poz)))) (assoc 50 PozAtr)
        (assoc 41 PozAtr) (assoc 51 PozAtr) (assoc 71 PozAtr) (assoc 72 PozAtr)
        (assoc 11 PozAtr) '(100 . "AcDbAttribute") '(280 . 0) (assoc 2 PozAtr)
        (assoc 70 PozAtr) (assoc 73 PozAtr) (assoc 74 PozAtr) '(280 . 1))))
      (if CapAtr (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity")
        (assoc 62 CapAtr) '(100 . "AcDbText") (assoc 10 CapAtr)
        (assoc 40 CapAtr) (cons 1 Cap) (assoc 50 CapAtr) (assoc 41 CapAtr)
        (assoc 51 CapAtr)(assoc 71 CapAtr) (assoc 72 CapAtr) (assoc 11 CapAtr)
        '(100 . "AcDbAttribute") '(280 . 0) (assoc 2 CapAtr) (assoc 70 CapAtr)
        (assoc 73 CapAtr)(assoc 74 CapAtr) '(280 . 1))))
      (if BoyAtr (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity")
        (assoc 62 BoyAtr) '(100 . "AcDbText") (assoc 10 BoyAtr)
        (assoc 40 BoyAtr) (cons 1 (rtos Boy 2 dpL)) (assoc 50 BoyAtr)
        (assoc 41 BoyAtr) (assoc 51 BoyAtr) (assoc 71 BoyAtr) (assoc 72 BoyAtr)
        (assoc 11 BoyAtr) '(100 . "AcDbAttribute") '(280 . 0) (assoc 2 BoyAtr)
        (assoc 70 BoyAtr) (assoc 73 BoyAtr) (assoc 74 BoyAtr) '(280 . 1))))
      (entmake (list '(0 . "SEQEND") '(100 . "AcDbEntity")))
      (vlax-put-property
        (vlax-ename->vla-object (ssname Czg n)) 'Layer (getvar "CLayer"))
      (sc (entlast) (cdr (assoc 10 ebLd)) scL)
      (rt (entlast) (cdr (assoc 10 ebLd)) aC0)
      (mv (entlast) (cdr (assoc 10 ebLd)) BiP))
      (princ "\r Ölçüsü yazılacak Obje(ler) seçiniz: "))
  (command "_.undo" "e") (princ)
)


Yazar arkadaşlarımızın dikkatini çekmek istediğim bir kaç konu:

Transformatiom Matrix kullanımını detaylı olarak örneklemek için, Translation, Rotate ve Scale işlemlerini yapan fonksiyonları ayrı ayrı yazdım. Aslında her üç işlem için yazılan matrislerin çarpım matrisi oluşturularak tek seferde, scale, rotate ve move işlemi yapılabilir.

Daha önce de başka bir başlık altında açıkladığım gibi, Line (çizgi) objesi BuLg (bombe) si sıfır olan bir Arc (yay) dır. Bu nedenledir ki, işleme alınan tüm obje türleri için uzunluk hesaplanırken (vlax-curve-getDistAtParam fonksiyonu kullanılabilmiştir.

Bir fonksiyonun (fonksiyonla tanımlı objenin, mesela bir eğrinin) verilen noktadaki birinci türevi (first derivative), o noktadaki teğetinin eğimidir. Yani Tanjant Alfa değeridir. (vlax-curve-getFirstDeriv fonksiyonu seçilen objenin teğet vektörünü verir. Yani DeltaX, DeltaY ve DeltaZ'den oluşan bir List üretir.

Herkese Kolay gelsin...

Düzenleme:
- Ellipse objelerini de seçip işlem yapacak şekilde düzenlendi.
- İşleme alınan objelerin Layerları ebL bLock'u ile aynı Layer a geçirecek şekilde düzenlendi.

ProhibiT (23.11.2012 17:55 GMT)

21.02.2012 19:50    

Harbi65
Hocam güzel bir örnek olmuş eline sağlık, ayrıca da değerli bilgiler vermişsiniz yine, teşekkürler.

21.02.2012 20:00    

waytooraider
Hocam Tek kelimeyle mükemmel olmuş.Yani inanılmaz.Ne diyeceğimi bilemiyorum.Bu lisple revit mevit mech. mep gereksiz oldu.Herşeyi şiir gibi taglayıp,adresleyip mükemmel bir şekilde nakış gibi projeyi işleyebiliriz.Sadece dimtxt'i değiştirince blokların text değeri değişmiyor. cizgiden uzaklığı değişiyor.Bloğa sağ tıklayıp Edit Blok in place ile textleri scale ile buyutebiliyoruz.Olayı çözdüm galiba :)

Size olan saygımı nasıl ifade edeceğimi bilemiyorum.Kelimeler haikaten yetersiz kalıyor.

waytooraider (21.02.2012 22:41 GMT)

22.02.2012 02:24    

ProhibiT
Teşekkür ederim Harbi65 hocam. Zaman zaman herkesin gözünün korktuğu matematik konularının o kadar da zor olmadığını örnekleyerek açıklamaya çalışıyorum. Orta öğretim dahil, eğitimin her aşamasında türev diye bir şey anlatılır, bir sürü de formül verilir. Öyle onlarca türev formülü falan yok :) bir tek türevin geometrik anlamı var. İntegral de öyle. Matrisler konusunda da durum aynı. Eğitim sürecindeki yanlışı, ezber mantığını aşmak gerek. Trigonometri de birim çember'den ibaret...

waytooraider, güzel sözleriniz için teşekkür ediyorum. Epeyce abartmışsınız :)
Fırsat bulduğumda poz numaralarını biribirine ve uzunlukları da objelere field ile bağlayacak şekilde düzenleme yapılırsa, o zaman daha güzel olur sanıyorum.

Text yükseklikleri ebL bLock'u tanımlanırken dimtxt değişkeninden alınıyor. Fonksiyon çalışırken bLock tanımından değerleri alıyor. Yani bLock tanımlandıktan sonra dimtxt değişkeninin değiştirilmesi etkili olmuyor. insert edilirken ebL bLock'unun büyüklüğünü, ve dolayısıyla attribute text'lerinin yüksekliğini ayarlamak için dimscale değişkenini kullanabilirsiniz.

Kolay gelsin.

02.03.2012 09:09    

waytooraider
Hocam lispi kullanırken çemberi tam olarak ölçüyor ama yarım yayları ölçmüyor farzı misal 90 lık dirseğinin dış çemberi.hata kodu ise
"bad argument type: numberp: nil "
Çemberi farklı farklı açılarda parçalara ayırdığımızda fonksiyonu çalıştırdığımızda aynı hatayı veriyor.
Fonksiyonun bir önceki versiyonunda bu sıkıntı yok.Yeni hali çok yakışıklı eski versiyonunu kullanmak istemiyorum :)

Saygılarımla Şahin Hocam

02.03.2012 10:39    

ProhibiT
Arc objelerinde bir hata oluşuyor anlaşılan. Orta noktasını bulurken veya türevini alıp teğetini bulurken bir hata oluşuyor olabilir. İlk fırsatta bakacağım.

05.03.2012 07:32    

makina3228
hocam saygılar süper olmuş.elinize saglık.

06.03.2012 05:10    

asword
Gerçekten elinize sağlık. İş yerinde metraj çıkarmak için harcadığım zamanı ciddi miktarda azaltmama yardımcı olacak bir lisp. Teşekkürler.

20.04.2012 06:19    

mttlp
ıyı gunler elınıze saglık 2012 ben bu komutu kullanıyorum bılgı verırsenız sevınırım elınıze saglık

20.04.2012 14:06    

halilozcakir
merhaba , program files dosyasına tam denetim sahibiyim ama lispi yükleyemedim ? lisp de bilmiyorum sadece kullanıcıyım ,
utanarak yazıyorum acad dikkate bile almadı biraz araştırdım lispi inceledim defun c den sonra (:) yok onuda öğrendim ki başka bir tür lisp
yani kopyala text e yapıştır uzantısını .lsp yap kopyala support a yükle . değil
kusura bakmayın saygılar.

20.04.2012 16:39    

ProhibiT


Linkleri görebilmek için ÜYE olmalısınız.

linkine bir göz atmanızı tavsiye ederim...

21.04.2012 06:38    

halilozcakir
%100 aynısını yapıyorum biliyorum . .hiçbir fark yok daha öncekilerden.komut adı rtblk giryorum hiç bir değişiklik yok.
biraz daha kurcalayayım başka makinede bir daha deneyeyim ..

21.04.2012 10:08    

mttlp
hoca elıne saglıkda autocad 2012de calısmıyor bılgı verırmsın tskler

21.04.2012 14:38    

ProhibiT
Halilozcakir, bir yanlış anlaşılma var herhade... Fonksiyon adı, başlıkta da görüldüğü gibi aLd. Diğer gördüğünüz function tanımları ana fonksiyonun kullandığı alt fonksiyonlar olup kullanıcının ilgi alanı dışındadırlar.

mttlp, iki mesajınız da biri biriyle tutarsız... birincisinde zaten soru yok. "2012'de çalışmıyor" ne demek? Burada paylaştığımız fonksiyonlar her tür AutoCAD versiyonunda çalışırlar. "Ben çalıştıramadım" diye başlayıp probleminizi yazarsanız, bir yardım eden bulunur. Bunca insan nasıl çalıştırıyor acaba?

ProhibiT (21.04.2012 19:54 GMT)

23.04.2012 06:05    

mttlp
ALD
//------------------=={ AlddLg.dcl Dialog Definition }==------------------//
// Author: M. Sahin Guvercin, Copyright © 2012 //
// www.autocadokulu.com //
//-----------------------------------------------------------------------//
aLd:dialog{
label="**** Boru Metrajı ****";
: boxed_column{
: edit_box{label="Ondalık Basamak Sayısı:";
key="dpL";edit_width=25;}
: edit_box{label="Başlangıç Poz Numarası:";
key="Poz";edit_width=25;}
: edit_box{alignment=right;label=" Mahal: ";
key="Mah";edit_width=25;}
: edit_box{alignment=centered;label=" Malzeme:";
key="MaL";edit_width=25;}
:edit_box{alignment=centered;label=" Çap:";
key="Cap";edit_width=25;}
spacer;spacer;}
: boxed_row{: text{key="CpR";value=
" Hazırlayan: © M.Şahin Güvercin - www.autocadokulu.com"
;}}ok_cancel;}
bad argument type: streamp nil M. Şahin Güvercin - www.autocadokulu.com

conmand satırında bole cıkıyor lütfen yardımcı olurmusunz

23.04.2012 06:26    

ProhibiT
ilk mesajımın 3. paragrafını dikkatle okuyup, orada verdiğim linkte ve bağlı linklerdeki yazıları incelemelisiniz...

23.04.2012 07:01    

mttlp
tskler ama sırket bılgısayarı oldugu ıcın hıc bırsey yapamıyorum demekı kullamıyacam elineze saglık yinede

23.04.2012 12:44    

ProhibiT
Bu problemi farklı yollarla da çözmek mümkün.

- AutoCAD'i açarken, Program icon'u üzerine Sağ Tıklayıp açılan menüden "Yönetici olarak çalıştır / Run as administrator" seçin.

veya

- AutoCAD kısayolunuzun üzerine sağ tıklayıp, açılan menüden "Özellikler / Properties" seçin. Yeni açılan diyalog penceresinde "Kısayol / shotcut" sekmesini seçip, sağ alttaki "Gelişmiş / Advanced" butonuna tıklayın. Açılan küçük diyalog penceresinde, "Yönetici olarak çalıştır / Run as administrator" yazısının yanındaki kutucuğu işaretleyin. Bunun bir sıkıntısı var, AutoCAD'i her çalıştırdığınızda, Yönetici/Administrator modunda açıldığı konusunda bir uyarı gelecek, her seferinde bunu onaylamanız gerekecek.

24.04.2012 06:13    

mttlp
tskler sıfrelı ana bılgısayardan mudahale edılıyor program bıle yuklemıyorz dun autocad 2007 yukledım sorun cozuldu onda sormuyor
tskler ılgıınız ıcın ayrıca sızde cok sey ıstıyorum ama bıraz yardımcı olurmusz kanal metrajı cok guzel calısıyor ben bunu
boru capı ve merajını cıkartmada kullanmak ıstıoyrum ugrasıyorum yapamıyorm yardımcı olursanız tskler ılgınız

24.04.2012 15:55    

halilozcakir
kusura bakmayın tez canlılık etmişim.

> 1 < [2] [3] Sonraki Sayfa
Copyright © 2004-2022 SQL: 2.769 saniye - Sorgu: 114 - Ortalama: 0.02429 saniye