02.07.2012 12:01    

Travaci
Hayır süzegeçlemeyi Dimensinın style ına göre deil dimension ın text style ına göre yapmak istiyorum.

02.07.2012 12:18    

ehya
Autolisp olarak çözümü var ancak kodlamasını hatırlamıyorum.
En kestirme yol visuallisp kodlarını kullanmak..

Kod:

(vl-load-com)
(setq ss (ssget (list (cons 0 "DIMENSION"))))
(setq c 0 say (sslength ss))
(setq sonsecim (ssadd))
(while (< c say)
  (setq tek (ssname ss c)
data (vlax-ename->vla-object tek)
ts (vla-get-textstyle data))
...............
...............
...............
;; ts sonucunda kullanılan textstyle adını verir.
;; uygun ise (setq sonsecim (ssadd tek sonsecim))
;; kodu ile seçim setine eklersin.
(setq c (+ c 1))
...............
...............
...............

02.07.2012 12:23    

Travaci
(vl-load-com) sız yazabilirmisin ? Böyle anlamıyorum : /

02.07.2012 12:31    

ehya
(vl-load-com) komutu sadece visuallisp kodlarının yüklenmesi içindir. Eğer bunu yazmaz isem visuallisp kodları çalışmaz.
Geri kalan ise autolisp gibi çalışan diğer kodlar.. Anlaşılmayuacak birşey değil. Satır sonuçlarını tek tek değerlendirirsen sonucu göreceksin.

02.07.2012 12:40    

Travaci
(vl-load-com) derken visual lisp kodlarını kastetmiştim : )

02.07.2012 12:56    

ehya
Visuallisp'siz yazamam. Kodları hatırlamadığımı söyledim. Şimdi sen visuallisp kullanmayacaksın diye de, oturup vakit harcayamam ;)

02.07.2012 13:27    

Travaci
Canın saolsun abicim : )

04.07.2012 20:16    

Travaci
Kod:

;***** Seçilen Yazının Açısını 0 Yapar *****;
(defun c:yTr ( / yuko b n l nn new_feature )
(setvar "cmdecho" 0) (command "undo" "group") (setq oosm (getvar "osmode")) (setvar "osmode" 0)
(defun *error* (er) (setvar "osmode" oosm) (command "undo" "e") (princ er))
(setq b (ssget '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (0 . "INSERT") (0 . "ATTDEF") (-4 . "OR>"))))
(setq n (sslength B))
(setq l 0)
(setq yeni_aci 0)
(while (< l n)
(setq pt1 (cdr (assoc 10 (entget (ssname b l)))))
(setq mevcut_aci (cdr (assoc 50 (entget (Ssname b l)))))
(setq mevcut_aci (/ (* mevcut_aci 180) pi))
(setq dondur_aci (- yeni_aci mevcut_aci ))
(command "_rotate" (ssname b l) "" pt1 dondur_aci)
(setq l (+ l 1))
(setvar "osmode" oosm) (command "_.undo" "e") (princ)
)
)

Ben isterimki ucs yi çevidiğimdede çalışsın.

05.07.2012 12:22    

ProhibiT
UCS problem değil, AutoLISP "trans" fonksiynuyla kolayca halledilir. Bu konuyla ilgili daha önce paylaştığım örneklere bakınız.

Burada başka bir konuda uyarım olacak;
Fonksiyonda INSERT objeleri ve ATTDEF objeleri seçilmeye çalışılıyor. ATTDEF objeleri INSERT (bLock reference) objelerinin altında değil bLock (bLock definition) tanımında yer alırlar. INSERT objelerinin altında ATTRIB objeleri yer alırlar. BLock tanımları altındaki ATTDEF objelerini edit edip bLock'u redefine ettiğimizde, diğer objelerde olduğu gibi INSERT objelerinin altındaki ATTRIB objeleri güncellenmezler. ATTRIB veya ATTDEF objeleri Sub Object olduklarından doğrudan doğruya ssget ile seçilemezler.
(cons -4 "<AND") (cons 0 "insert") (cons 66 1) (cons -4 "AND>") şeklinde Attribute içeren INSERT objeleri seçildikten sonra, entnext kullanarak subobject'leri taranıp bulunacak ATTRIB objeleri edit edilmelidir.

05.07.2012 18:46    

Travaci
Teşekkürler.

10.07.2012 11:39    

Travaci
Layiso yapılmış bir drawing de lock and fade olan objelere hiç dokunmaması için bir seçim seti, süzgeçleme yapılabilirmi ? Yapılırsa nasıl ?

11.07.2012 11:55    

arthassss
Alttaki lispte bloğun ismini yazmam gerekiyor (boş geçersem son çağrılan bloğu alıyor) bunun yerine pafta üzerindeki mevcut bir bloğu tıklayarak çağırmam mümkünmüdür. Yada mevcut bloğun ismini girerek veya seçerek blok istediğim şekilde yerleştirmem mümkünmüdür?


Kod:

  (defun c:aa(/ pt dpt nt nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1)
(command "osnap" "end,int,ins,per")       
(setq pt (getpoint "\nSol alt kose: "))
(setq dpt (getcorner pt "\nSag ust kose: "))
(setq nt (getstring "\nblok sec: "))
(setq nx (getint "\nYan yana blok sayisi: "))
(setq ny (getint "\nDikine blok sayisi: "))
(command "osnap" "")
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(command "osnap" "end")
)

11.07.2012 12:07    

Travaci
Kod:

(defun c:aa(/ pt dpt nt nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1)
(command "undo" "group") (setq oosm (getvar "osmode"))
(defun *error* (er) (setvar "osmode" oosm) (command "undo" "e") (princ er))
(setvar "osmode" 225)       
(setq pt (getpoint "\nSol alt kose: "))
(setq dpt (getcorner pt "\nSag ust kose: "))
(setq ent (entsel "\nBlok'u seçiniz."))
(setq nt (cdr (assoc 2 (entget (car ent)))))
(setq nx (getint "\nYan yana blok sayisi: "))
(setq ny (getint "\nDikine blok sayisi: "))
(setvar "osmode" 0)
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(setvar "osmode" oosm) (command "_.undo" "e") (princ)
)

Travaci (11.07.2012 12:15 GMT)

11.07.2012 12:15    

arthassss
Budur...
Teşekkür ederim.
Lakin önceki mesajdada dediğim gibi blok ismiyle yada bu şekilde aynı anda çağırmam mümkünmüdür.

Alıntı
Travaci :
Kod:

(defun c:aa(/ pt dpt nt nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1)
(command "osnap" "end,int,ins,per")       
(setq pt (getpoint "\nSol alt kose: "))
(setq dpt (getcorner pt "\nSag ust kose: "))
(setq ent (entsel "\nBlok'u seçiniz."))
(setq nt (cdr (assoc 2 (entget (car ent)))))
(setq nx (getint "\nYan yana blok sayisi: "))
(setq ny (getint "\nDikine blok sayisi: "))
(command "osnap" "")
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(command "osnap" "end")
)

Bumudur ?

11.07.2012 12:24    

Travaci
Kod:

(defun c:aa(/ pt dpt nt nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1)
(setvar "cmdecho" 0) (command "undo" "group") (setq oosm (getvar "osmode"))
(defun *error* (er) (setvar "osmode" oosm) (command "undo" "e") (princ er))
(setvar "osmode" 225)       
(setq pt (getpoint "\nSol alt kose: "))
(setq dpt (getcorner pt "\nSag ust kose: "))
(setq nt (getreal "\n Blok ismini giriniz."))
(if (= nil nt ) (progn (setq ent (entsel "\nBlok'u seçiniz."))))
(setq nt (cdr (assoc 2 (entget (car ent)))))
(setq nx (getint "\nYan yana blok sayisi: "))
(setq ny (getint "\nDikine blok sayisi: "))
(setvar "osmode" 0)
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(setvar "osmode" oosm) (command "_.undo" "e") (princ)
)

Boş geçersen blok seçimi ister

Travaci (11.07.2012 12:30 GMT)

11.07.2012 12:37    

arthassss
malesef blok ismi yazarak denediğimde olmuyor. Birde girilen blok isminin mecbur rakamlardan oluşması gerektiği şeklinde bir uyarı veriyor.

Alıntı
Travaci :
Kod:

(defun c:aa(/ pt dpt nt nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1)
(setvar "cmdecho" 0) (command "undo" "group") (setq oosm (getvar "osmode"))
(defun *error* (er) (setvar "osmode" oosm) (command "undo" "e") (princ er))
(setvar "osmode" 225)       
(setq pt (getpoint "\nSol alt kose: "))
(setq dpt (getcorner pt "\nSag ust kose: "))
(setq nt (getreal "\n Blok ismini giriniz."))
(if (= nil nt ) (progn (setq ent (entsel "\nBlok'u seçiniz."))))
(setq nt (cdr (assoc 2 (entget (car ent)))))
(setq nx (getint "\nYan yana blok sayisi: "))
(setq ny (getint "\nDikine blok sayisi: "))
(setvar "osmode" 0)
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(setvar "osmode" oosm) (command "_.undo" "e") (princ)
)

Boş geçersen blok seçimi ister

11.07.2012 13:34    

Travaci
Kod:

(defun c:aAa(/ pt dpt ent nx ny x0 y0 x2 y2 x1 y1 x4 y4 xy1 )
(setvar "cmdecho" 0) (command "undo" "group") (setq oosm (getvar "osmode"))
(defun *error* (er) (setvar "osmode" oosm) (command "undo" "e") (princ er))
(setvar "osmode" 225)       
(setq pt (getpoint "\nSol alt köşe. "))
(setq dpt (getcorner pt "\nSağ üst köşe. "))
(setq ent (entsel "\nBlok seçiniz."))
(if (= ent nil)
(progn (setq nt (getstring "\nBlok ismini giriniz. : ")))
(progn (setq nt (cdr (assoc 2 (entget (car ent)))))))
(setvar "osmode" 0)
(initget 1)
(setq nx (getint "\nYan yana blok sayisi: "))
(initget 1)
(setq ny (getint "\nDikine blok sayisi: "))
(setq x0 (car pt))
(setq y0 (cadr pt))
(setq x2 (car dpt))
(setq y2 (cadr dpt))
(setq x1 (/ (- x2 x0) (* 2 nx)))
(setq y1 (/ (- y2 y0) (* 2 ny)))
(setq x4 (* x1 2))
(setq y4 (* y1 2))
(setq xy1 (list (+ x1 x0) (+ y1 y0)))
(command "insert" nt xy1 "1" "1" "0")
(if (> nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4 x4)))
(if (= nx 1) (if (> ny 1) (command "array" "la" "" "r" ny nx y4)))
(if (= ny 1) (if (> nx 1) (command "array" "la" "" "r" ny nx x4)))
(setvar "osmode" oosm) (command "_.undo" "e") (princ)
)

Travaci (11.07.2012 19:35 GMT)

11.07.2012 14:01    

arthassss
Teşekkür ederim şimdi tam istediğim gibi oldu.

18.07.2012 15:23    

Travaci
(setq yz (getstring "\nYazılacak Yazı: ")) Burda girilecek yazı için boşluğa nasıl izin veririz ?

18.07.2012 16:06    

ehya
travaci




(setq yz (getstring t "\nYazılacak Yazı: "))

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] > 23 < [25] [30] [35] [40] [42] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.977 saniye - Sorgu: 99 - Ortalama: 0.01997 saniye