13.05.2019 17:07    

snkr5528
Merhaba, ekteki çizimin sadece dış çerçeve görüntüsünü çıkartmak istiyorum. Bunun gibi çok çizim var. Benim bildiğim trim, fillet gibi komutlar çok vakit alıyor. Acaba bunu yapacak kısa bir yol, komut var mı? Bu konuda bilgisi olan arkadaşlar bir yol gösterirse memnun olurum.

13.05.2019 21:48    

alumina
Alıntı
snkr5528 :

Dis hatta temas eden butun nesnelerin kapali polyline ve bu kapali polyline lerin butun vertex lerinin z koordinatinin 0 oldugu varsayilirsa;
"Region" komutunu girin ve bu polyline nesneleri secip enter leyin. Nesneler region nesnesine donusecektir. Daha sonra "Union" komutunu girin ve bu region nesneleri secip enter leyin, istediginiz sonucu elde edeceksiniz.

14.05.2019 00:15    

snkr5528
Teşekkürler. Verdiğiniz bilgi gerçekten çok faydalı oldu. "Union" komutunu sürekli 3D çizerken kullanıyordum. Fakat bu şekilde kullanılabileceğini de sayenizde öğrendim.

15.05.2019 01:54    

alumina
Alıntı
snkr5528 :

Region nesnelerle 3D nesneler karakteristik olarak benzerlik gosterirler.3D modellemede kullandiginiz subtract komutunuda region nesnelerde kullanabilirsiniz.

16.05.2019 22:04    

snkr5528
Verdiğiniz bilgiler için teşekkür ederim. Merak ettiğim farklı bir konuda da öğrenmek adına bir sorum olacak. Bir toolbar oluşturup buraya butonlar koydum. Bir butona macro olarak da ^C^C_pline \W 10 10 yazdım. (W10 Pline çizmek için). Diğer bir butona ^C^C_pline \W 0 0 yazdım. Farklı çizgi kalınlıklarını hemen oluşturmak için.
Fakat diğer bir butonla da C: nin altındaki bir lispi çalıştırmak istedim. Bunu yapamadım. Bunu macroya yazmanın ve bastığımızda pencere açılmadan istediğimizde direk lispi yüklemenin bir yolu var mıdır. ^C^C_^C^C_appload ??? gibi. (Contents hariç). Macro konusunda bilgisi olan arkadaşlar bilgi verirlerse memnun olurum.

17.05.2019 05:12    

Travaci
Kod:

^C^C(if (not c:komut_adi) (load "lisp.lsp") (c:komut_adi))

18.05.2019 13:07    

snkr5528
Hocam teşekkürler. Fakat ben yapamadım.
Oluşturduğum butona basınca C:\Belgelerim klasörü altında TOPLAM.lsp yüklenmesini istiyorum.
Acaba verdiğiniz kod satında bunu nasıl yazmam gerekiyor. Yoksa lispin belirli bir klasörde mi olması gerekiyor.

^C^C(if (not c:komut_adi) (load "lisp.lsp") (c:komut_adi))

18.05.2019 18:06    

Travaci
autocad kütüphanesine dosya yolunu göstermeli yada tanımlı olanlardan "support gibi" birinin içine atmalısın.

19.05.2019 16:41    

snkr5528
Bir şeyi eksik yapıyorum herhalde..:dozingoff
Lispi support altına attım. Butona macro olarak,
^C^C(if (not c:TOPLAM_MM) (load "TOPLAM.lsp") (c:TOPLAM_MM))
yazdım.

Yeni dosya açıp butona ilk bastığımda komut satırında,
Command: (if (not c:TOPLAM_MM) (load "TOPLAM.lsp") (c:TOPLAM_MM)) C:TOPLAM_MM
yazıyor. Komut başlamıyor. ESC e basıyorum.

Sonra tekrar aynı butona bastığımda komut çalışıyor ve komut satırında,
Command: (if (not c:TOPLAM_MM) (load "TOPLAM.lsp") (c:TOPLAM_MM))
Select objects:
çıkıyor. Seçtikten sonra işlemleri yapıyor. Fakat ENTER e basınca komut sonlanmıyor.

Tekrar ENTER a bastığımda komutu tekrar açmıyor. Bir önceki açılan komutu açıyor.
Acaba macronun içinde mi bir değişiklik yapmak gerekiyor.

Önceki hali hali aşağıdaki gibiydi. Lispi yükledikten sonra düzgün çalışıyordu.
^C^C_TOPLAM_MM

04.08.2019 19:08    

ufuk75
(DEFUN
C:DD()

(defun *error*
(msg)

(princ "\n--->Back and forth, back and forth (sigh...)
")
(setvar "clayer"
l)

(princ
msg)

(princ)
)

(SETQ L (GETVAR
"CLAYER"))

;; assigns the current layer to the variable L
(setvar
"clayer"
"OLCU 01")

;; changes the current layer to
DIM
(COMMAND "_.DIMVERTICAL" PAUSE PAUSE PAUSE)(COMMAND "_dimcontinue") ;; invokes the
DIMLINEAR command and pauses for user input
(setvar "clayer"
l)


;; returns to the original layer
(princ))



;;;;;;;;;;;;;;;;;;;


(DEFUN
C:YY()

(defun *error*
(msg)

(princ "\n--->Back and forth, back and forth (sigh...)
")
(setvar "clayer"
l)

(princ
msg)

(princ)
)

(SETQ L (GETVAR
"CLAYER"))

;; assigns the current layer to the variable L
(setvar
"clayer"
"OLCU 02")

;; changes the current layer to
DIM
(COMMAND "_.DIMHORIZONTAL" PAUSE PAUSE PAUSE)(COMMAND "_dimcontinue") ;; invokes the
DIMLINEAR command and pauses for user input
(setvar "clayer"
l)


;; returns to the original layer
(princ))




Lisp kodu iki ayrı komuttan kurtarılıp tek komutta yine fonksiyonlarını yapabilir mi.? bu haliyle dikey ölçülendirmede faklı layer yatayda faklı layer kullanmakta bu hali çok uygun sadece tek komutta dikey ölçüde dikey olçü için atanmış layeri kullansın yatay ölçüde yatay ölçü layerini kullansın komut bitiminde ilk kullanılan seçili layere dönsün . Çok mu yapılamaz bir istekdir bilemedim şimdiden yardımlarınız için teşekkür ederim.

19.08.2019 14:17    

yaratk
Arkadaşlar herkese merhaba, ben hakediş yapıyorum, ve bunları ataşman paftaları üzerinde her bir imalata ayrı bir imalat no verecek şekilde pozluyorum. Bana gereken toplu olarak seçtiğim çizgilerin tam üzerine 1. satıra " AAAA.BBBB ", 2. satıra çizginin toplam uzunluğunu ve " cm" yazacak, 3. satıra layerin kendi adını yazacak. Bu bütün ataşman hakkedişlerinde işe yarayacak bir sistem. şimdiden teşekkürler.

19.08.2019 19:48    

alumina
Alıntı
yaratk :

Kod:

(defun c:ltx (/ dc a1 a2 tx d ns z n md ax)
             (vl-load-com)
  (if (setq dc (vla-get-ActiveDocument
        (vlax-get-acad-object)) a1 (/ pi 2)
          a2 (+ a1 pi) tx (getvar 'textsize)
            d (* 2 tx) ns (ssget '((0 . "line"))))
    (progn (vla-StartUndomark dc)
      (repeat (setq z (sslength ns))
        (setq z (1- z) n (vlax-ename->vla-object
          (ssname ns z)) md (mapcar '(lambda(a b)
            (/ (+ a b) 2)) (vlax-get n 'StartPoint)
              (vlax-get n 'EndPoint)) ax (vla-get-Angle n)
                ax (+ ax (if (and (> ax a1)
                  (<= ax a2)) pi 0)))
        (foreach m (list (list "AAAA.BBBB"
            (polar md (+ ax a1) d)) (list (strcat
              (rtos (vla-get-Length n) 2 2) " cm") md)
                (list (vla-get-Layer n) (polar md (+ ax a2) d)))
          (entmake (list '(0 . "text") (cons 1 (car m))
            (cons 10 (cadr m)) (cons 11 (cadr m))
              (cons 40 tx) (cons 50 ax) '(71 . 0)
                '(72 . 1) '(73 . 2)))))
      (vla-EndUndomark dc)
    )
  ) (prin1)
)

20.08.2019 20:56    

onurkurnaz
Alıntı
alumina :
Alıntı
yaratk :




Herzaman desteğini esirgemeyen alüminaya teşekkürü bir borç bilirim

21.08.2019 06:51    

Travaci
yaratk


alumina


if i were you i would write like this : )

Kod:

(defun c:er (/ ac ln n ob an lg) (vl-load-com)
  (if (setq ac (vla-get-ActiveDocument (vlax-get-acad-object))
            ln (ssget '((0 . "line"))))
    (progn
      (vla-startundomark ac)
      (repeat (setq n (sslength ln))
        (setq ob (vlax-ename->vla-object (ssname ln (setq n (1- n))))
              an (vla-get-angle ob) lg (vla-get-length ob)
              an (+ an (if (and (<= an 4.71239) (> an 1.5708)) 3.14159 0)))
        (entmake (list '(0 . "mtext") '(100 . "AcDbEntity") '(100 . "AcDbMText")
          (cons 40 (getvar "textsize")) '(71 . 5) '(72 . 5) '(73 . 1) '(90 . 3)  
          (cons 10 (vlax-curve-getpointatdist ob (/ lg 2))) '(63 . 256) (cons 50 an)
          (cons 1 (strcat "AAAA.BBBB\n" (rtos lg 2 2) " cm\n" (vla-get-Layer ob)))))  
      )
      (vla-endundomark ac)
    )
  ) (princ)
)

Travaci (21.08.2019 08:45 GMT)

21.08.2019 07:41    

alumina
Alıntı
Travaci :


ok come be my place : )

21.08.2019 07:46    

Travaci
I prefer to be myself :D

21.08.2019 08:43    

alumina
Alıntı
Travaci :

that's why i love you : )

23.08.2019 16:07    

TENTEN143
Merhaba,ilk kez bir istekte bulunacağım sizlerden.Yıllardır mekanik tesisat projesi çiziyorum.Geçmiş zamanda çalıştığım bir firmada dikdörtgen kanalı çizerken aynı zamanda izolesiz yada izoleli olduğun soran bir lisp görmüştüm fakat sadece o firmanın serverende çalışıyordu.Lisp şöyle;
dikdörtgen kanal çizeceksin,kanalı genişliği ve yükseklik ölçülerini giriyorsun,sonra lisp sana kanalın üfleme emiş olup olmadığını ve izoleli olup olmayacağını soruyor.Belki zor bir şey istiyorum ama benim için çok önemli bir lisp.Elinde olan arkadaşlar paylaşırlarsa çok çok memnun olurum.

25.08.2019 20:48    

yaratk
yardımlarınız için öncelikle teşekkür ederim arkadaşlar şimdi kullanacağım sonuçları göreceğim.

25.08.2019 21:27    

yaratk
Tekrar merhaba arkadaşlar yardımlarınız için teşekkür ederim.(defun c:uy ()
(setq uy_os (getvar "osmode"))
(setq uy_sec nil)
(setq uy_sec (ssget (list (cons 0 "LINE"))))
(if (= uy_sec nil)
(progn
(princ "
Nesne seçimi yok. Komut bitirildi..."))
(progn

(if (= uy_yaz_yuk nil)(setq uy_yaz_yuk 12))
(initget 2)
(setq uy_yaz_y (getdist (strcat "
Yazılacak yazının Yüksekliği:<" (rtos uy_yaz_yuk) ">:")))
(if (= uy_yaz_y nil)(setq uy_yaz_y uy_yaz_yuk))
(setq uy_yaz_yuk uy_yaz_y)
(setq uy_c 0)
(setq uy_say (sslength uy_sec))
(while (< uy_c uy_say)
(setq uy_sec_tek (ssname uy_sec uy_c))
(setq uy_sec_tek_10 (cdr (assoc 10 (entget uy_sec_tek)))
uy_sec_tek_11 (cdr (assoc 11 (entget uy_sec_tek))))
(setq uy_sec_tek_mes (distance uy_sec_tek_10 uy_sec_tek_11))
(setq uy_sec_tek_10_x (car uy_sec_tek_10)
uy_sec_tek_10_y (cadr uy_sec_tek_10)
uy_sec_tek_11_x (car uy_sec_tek_11)
uy_sec_tek_11_y (cadr uy_sec_tek_11))
(setq uy_yaz_x (/ (+ uy_sec_tek_10_x uy_sec_tek_11_x) 2.00)
uy_yaz_y (/ (+ uy_sec_tek_10_y uy_sec_tek_11_y) 2.00)
uy_yaz (list uy_yaz_x uy_yaz_y))
(if (< uy_sec_tek_10_x uy_sec_tek_11_x)
(progn
(setq uy_sec_aci_bas uy_sec_tek_10)
(setq uy_sec_aci_son uy_sec_tek_11)
)
(progn
(setq uy_sec_aci_bas uy_sec_tek_11)
(setq uy_sec_aci_son uy_sec_tek_10)))
(setq uy_sec_tek_aci (angle uy_sec_aci_bas uy_sec_aci_son))
(command "style" "standard" "" "" "" "" "" "" "")
(command "osnap" "node")
(command "_.text" "j" "bc" uy_yaz uy_yaz_yuk (angtos uy_sec_tek_aci)
(strcat "aaaa.bbbb _L: "(rtos uy_sec_tek_mes 2 2) " cm_H: qqqq cm"))
(setq uy_c (+ uy_c 1))
)))(setvar "osmode" uy_os)(princ))
(princ "
Komutu çalıştırmak için [UY] yazın")(princ)

yukarıdaki lispte "cm h: qqqq cm" yerine seçilen objenin layerinin adının yazmasını istiyorum. Travaci ve Alumina arkadaşlar yardımlarından ötürü teşekkür ederim. Kıymetli yardımlarınızı bekliyorum. Bu kod üzerinde revizyon yaparsanız sevinirim arkadaşlar.

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] > 89 < [90] [95] [100] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.986 saniye - Sorgu: 101 - Ortalama: 0.01966 saniye