26.04.2014 06:34    

ProhibiT
Kod:

(defun C:POLYC  (/ a)
  (if (= (cdr (assoc 0 (entget (setq a (car (entsel)))))) "LWPOLYLINE")
    (command "pedit" a "j" "all" "" "")(command "pedit" a "y" "j" "all" "" ""))
  (prin1))

13.05.2014 13:04    

didim
dirsek açılımı alabilen bir lisp arıyorum. Kullanan ark . var mı?

27.05.2014 10:30    

pahadir
merhaba arkadaşlar yardımcı olursanız çok sevinirim, hem ölçü hemde ölçünün yanına ardışık numara verecek bi lisp arıyorum yardımcı olursanız minettar olurum .

28.05.2014 06:16    

cagrikara
Autocad de polyline ile kapalı çeşitli alanlar olduğunu düşünün. Seçtiğim alanın içindeki ya da dışındaki nesneleri seçmemi sağlayacak bir lisp arıyorum. O alanın içindeki nesneleri istiyorsam sadece içindeki ve kesenleri, Dışını istiyorsam alanın dışını ve kesenlerini seçmesi gerekiyor. Alanın kapalı olacağı kesin fakat polyline olur ya da başka bir komutla alan çevrili olur lispin orada takılmaması gerekmektedir.

İlginiz için teşekkür ederim.

28.05.2014 13:10    

Travaci
cagrikara


Kod:

(defun c:slct (/ ss n pt) (vl-load-com)
  (setq ss (ssget "+.:s" (list (cons 0 "lwpolyline"))))
  (if ss (progn (setq n -2 nk (vlax-safearray->list (vlax-variant-value
         (vlax-get-property (vlax-ename->vla-object
                            (ssname ss 0)) 'Coordinates))))
    (while (< (setq n (+ n 2)) (1- (length nk)))
      (setq pt (append (list (list (nth n nk) (nth (1+ n) nk))) pt)))
    (sssetfirst nil (ssdel (ssname ss 0) (ssget "_cp" pt))))) (princ))

29.05.2014 05:23    

cagrikara
Travacı çok teşekkür ederim. İstediğim gibi bir lisp fakat rica etsem biraz geliştirme imkanınız var mı? Hazırlamış olduğunuz lispte sadece seçilen alanın içindeki nesneleri seçiyor. Direk lispi çalıştırdığımızda Alanın içi ya da dışı olarak sorsa seçimi yaptıktan sonra alanı seçsek ve istediğimiz nesneleri yani alanın içindeki ya da dışında kalan nesleri seçse ve alanı kesen çizgilerede dikkat etse çok mu zor olur ? İlginiz için tekrar teşekkür ederim.

29.05.2014 05:45    

Travaci
Alanı kesenleri de seçmesini istemiyormuydun ?

29.05.2014 06:30    

ehya
Her zaman olduğu gibi,
Lisp isteği ve ardından geliştirme isteği :)
Bu işin sonu yok... :)

03.06.2014 04:11    

cagrikara
Alanı kesenleri seçiyor evet bunu istiyordum. Fakat alan içi ve alan dışındakileri de ayrı ayrı seçebilmesini istiyorum. Alanı kesenler de iki olasılıkta da seçilmesini kapsaması gerekiyor.

03.06.2014 20:19    

ProhibiT
Kullandığımız üsluba dikkat edelim arkadaşlar. Neyin "gerekiyor" olduğu burada cevap yazanlar da dahil kimseyi görevli kılmaz. "Gerekiyor" denenler yapılınca eminim ki, seçilen Polyline içinde Arc türü segmentler olması durumunda da seçim yapılabilmesi yönünde bir istek gelecek. Yanlış anlaşılmasın. Gerektiği için değil, iki konuda Travaci arkadaşımıza ipuçları vermek amacıyla yazdım.
Kod:

(defun c:SsL (/ bnD InO n OuO PnT sTp VxN)
  (vl-load-com) (initget 1 "In Out")
  (setq sTp (getkword "\nSelection Mode, Inner/Outer: [I/O]"))
  (princ "\nPick Boundary Lwpolyline object: ")
  (while (not (setq bnD (ssget "+.:s" (list (cons 0 "Lwpolyline"))))))
  (setq VxN (cdr (assoc 90 (entget (setq bnD (ssname bnD 0)))))
        bnD (vlax-ename->vla-object bnD) n -1 PnT nil)
  (while (< (setq n (1+ n)) VxN)
    (setq PnT (append PnT (list (vlax-safearray->list
                (vlax-variant-value (vlax-get-property bnD 'Coordinate n)))))))
  (setq bnD (vlax-vla-object->ename bnD) InO (ssdel bnD (ssget "_cp" PnT)))
  (if (= sTp "In") (sssetfirst nil InO)
    (progn (setq OuO (ssdel bnD (ssget "x")) n -1)
      (while (< (setq n (1+ n)) (sslength InO)) (ssdel (ssname InO n) OuO))
      (sssetfirst nil OuO))) (prin1))

- Object Properties'lerden 'Coordinates ve 'Coordinate birbirinden farklıdır.
'Coordinates, tüm köşelerin koordinat listelerini peş peşe eklenmiş durumda tek bir liste olarak verir.
'Coordinate, sıra numarası (0'dan başlayarak) verilen bir köşenin koordinat listesini verir.
- ssdel işlevini kullandığımızda Entity Name'i verilen nesne Seçim setinden çıkarılır. Bunu setq kullanarak ayrıca Seçim setini ifade eden değişken adına atamaya gerek yoktur.
(setq OuO (ssdel (ssname InO n) OuO) yazmaya gerek yok, (ssdel (ssname InO n) OuO) ile nesnenin seçim setinden çıkarılması işlemi gerçekleşir. Aynı durum ssadd işlevi için de geçerlidir.

08.08.2014 11:07    

cezgi
Merhaba arkadaşlar, site içerisinde aradım ancak tam olarak istediğim tarzda bir lisp bulamadım. Henüz lisp konusunda çok yeni olduğum için de yazamıyorum maalesef.
Dosyanın içerisinde bulunan tüm çizimlerin renklerini değiştirmek istiyorum. Bloklar vesaire de dahil ve çoğu bloğumun içerisinde de birden fazla blok bulunduğu için çok vakit alan bir şey. Layerların, çizgi tiplerinin falan değişmesini istemiyorum. Tek istediğim renklerinin benim seçeceğim tek bir renge dönüşmesi. Eğer yardımcı olabilirseniz çok sevinirim. Şimdiden çok teşekkür ederim. Herkese iyi çalışmalar.

08.08.2014 12:29    

seboli61
Lisp yazamadığım için başka bir çözüm söylemek isterim. Blockların ya içerisine gireceksiniz layerlarını değiştireceksiniz veya BURST komut kullanıp her şeyi patlatıp istediğiniz Layer a getirebilirsiniz. Tabii sizin istediğiniz kadar hızlı olmaz ama idare eder :)

11.08.2014 10:59    

seboli61
(defun c:rx()
(princ "\nMirrorlancak Objeyi Seç:")
(setq secim (ssget))
(setq p1 (GETPOINT))
(setq aci (angtof "90.00"))
(setq mesafe 100)
(setq p2 (polar p1 aci mesafe))
(command "MIRROR" secim "" p2 "" "Y"))


İlk defa deneme yapıyorum.Baya zorlandım denilebilir.Yardımcı olacağınızı düşünüyorum. Burada MIRROR komutunu kısaltmaya çalışıyorum. X yönünde MIRROR yapacağım zaman bana sadece MIRROR lancak merkez noktasını istemiştim.Açısı 90 derece olmasını istedim ama biraz eksiklerim var Ustalarım umarım bana yardımcı olurlar.

11.08.2014 10:59    

seboli61
(defun c:rx()
(princ "\nMirrorlancak Objeyi Seç:")
(setq secim (ssget))
(setq p1 (GETPOINT))
(setq aci (angtof "90.00"))
(setq mesafe 100)
(setq p2 (polar p1 aci mesafe))
(command "MIRROR" secim "" p2 "" "Y"))


İlk defa deneme yapıyorum.Baya zorlandım denilebilir.Yardımcı olacağınızı düşünüyorum. Burada MIRROR komutunu kısaltmaya çalışıyorum. X yönünde MIRROR yapacağım zaman bana sadece MIRROR lancak merkez noktasını istemiştim.Açısı 90 derece olmasını istedim ama biraz eksiklerim var Ustalarım umarım bana yardımcı olurlar.

11.08.2014 12:43    

Travaci
seboli61


Kod:

(defun c:rx ()
  ...
  ...
  (command "MIRROR" secim "" P1 p2 "" "Y"))

11.08.2014 16:02    

mateus
bir sayı textinı copyalayınca artan şekilde kopyalayabilirmi mesala 1 sayısını koplayalınca her tıkladığımda bir atsın 1,2,3,4 yazzın böyle bir lips olabilirmi

11.08.2014 18:14    

seboli61
Alıntı
mateus :
bir sayı textinı copyalayınca artan şekilde kopyalayabilirmi mesala 1 sayısını koplayalınca her tıkladığımda bir atsın 1,2,3,4 yazzın böyle bir lips olabilirmi






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




Kardeşim bu lisp senin işini görür.

12.08.2014 07:19    

mateus
sağolasın işime yaradı

14.08.2014 12:14    

CAN123
Arkadaşlar merhaba,

1M16x45, 3M16x45, 2M16x50, 1M16x50, 4M16x40, 3M16x40 olarak verilen textlerin "M"den önce verilen sayılarını toplayıp yazdıracak bir lispe ihtiyacım var. Açıklamak gerekirse yukarıda verdiğim textleri
4M16x45
3M16x50
7M16x40 şeklinde yazdıracak ve seçilenleri de silecek bir lisp olmasını istiyorum.

teşekkür ederim

14.08.2014 13:39    

Travaci
CAN123


Kod:

(defun c:tg (/ er tr tx s) (vl-load-com)
  (setq er (ssget (list (cons 0 "text"))) tr -1 s 0)
  (setvar "cmdecho" 0) (command "._undo" "be") 
  (if er (progn
    (while (< (setq tr (1+ tr)) (sslength er))
      (if (vl-string-search "M" (setq tx (vla-get-TextString        
        (vlax-ename->vla-object (ssname er tr)))))
        (progn (setq s (+ s (atof (substr tx 1 (vl-string-search "M" tx)))))
          (entdel (ssname er tr)))))
    (alert (rtos s 2 0)) (prompt (rtos s 2 0))))
  (command "._undo" "e") (setvar "cmdecho" 1) (princ)
)

Ö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] [90] [95] [100] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.444 saniye - Sorgu: 99 - Ortalama: 0.01458 saniye