02.05.2011 18:39    

ulkersah
Arkadaslar netcad deki gibi nokta koordinatlarını listeleyip bu koordinatları txt formatında kaydedebileceğiz bir lisp varmı,,
veya böyle bir lisp yazmak mümkün mü,,
bu işlemi netcad de değilde autocad te yapmak istiyoruz,,
sanırım bi arkadas küçük bi program yazmıs haritacı diya ama bunu 69 tl karsılıgında satıyormus onunda garantisi yok tabii
bu konuda bilgi sahibi arkadasların yardımı bekliyoruz,,
tesekkurler...

02.05.2011 20:13    

ProhibiT
Buna benzer epeyce autolisp fonksiyon paylaşıldı sitemizde... daha önce de, böyle bir istek gelmişti. text dosyasının formatını sormuştum, bir başka soru da "nokta" derken neyi kasdediyorsunuz? autocad "point" objesinden mi bahsediyoruz? bu soruların cevabını net olarak alabilirsek, mevcut fonksiyonlardan birini düzenlemek ya da yeni bir fonksiyon yazmak mümkün elbette.



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

linkindeki PcT fonksiyonuna da bir göz atmanızı tavsiye ederim.

kolay gelsin...

admin (01.06.2018 21:43 GMT)

07.05.2011 19:08    

ulkersah
Alıntı
ProhibiT :
Buna benzer epeyce autolisp fonksiyon paylaşıldı sitemizde... daha önce de, böyle bir istek gelmişti. text dosyasının formatını sormuştum, bir başka soru da "nokta" derken neyi kasdediyorsunuz? autocad "point" objesinden mi bahsediyoruz? bu soruların cevabını net olarak alabilirsek, mevcut fonksiyonlardan birini düzenlemek ya da yeni bir fonksiyon yazmak mümkün elbette.



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

linkindeki PcT fonksiyonuna da bir göz atmanızı tavsiye ederim.

kolay gelsin...



Aslında haklısınız, biz sadece aklımızdakini kendi algı dururumuzla soruyoruz,
sanırım daha açık belirtmemiz gerekir,
nokta derken autocad deki point objesini kastediyoruz,
ama aslında asıl istediğimiz şey; point olabilir, yada line objesinin bir ucu olabilir veya bir çemberin merkezi gibi çeşitli ama belirli bir "nokta" olabilir.
biz buna kısaca point diyelim, çünkü nokta atmak istediğimiz yerlere kolayca point objesini atıp hatta onada farklı bir layer tanımlayıp diğer layerları kaparak istediğimiz işlemi yapabiliriz,
bu yüzden konuyu basitleştirerek sadece point objesi diyoruz,
link i inceledim, aslında daha öncede incelemiştim ama o zaman tam farkına varamamısım lispin
autocad ekranına koordinat listesi yazan pek cok lisp var ancak bunları dosyaya kaydeden bulamamıstım,

şimdi "pct" lispi ile koordinatı tablo ile listeleyip, "mtlst" lisp ile de text olarak saklayabiliyoruz, ancak iki lispi birleştirsek, bunun yanında da "pct" lispindeki nokta numaralama opsiyonunu ( satır,kolon, sırasız) biraz değiştirip, bu sıralamayı kendi seçimimizle yapabilsek harika olurdu,

ancak bunu yapamasak bile, bukadarı bile bizi netcad ten ve sürekli olarak iki programın uyumsuzluklarıyla uğrasmaktsan kurtaracaktır,
emeği gecen herkese cok cok tesekkurler..

admin (01.06.2018 21:42 GMT)

07.05.2011 19:09    

ProhibiT
İki fonksiyon paylaşıyorum...

- PntExp (Point Export) fonksiyonu, Seçtiğiniz Layer'da bulunan tüm Point objelerinin koordinatlarını, seçilen text dosyasına, x,y,z formatında yazar.

- PntImp (Point Import) fonksiyonu, seçilen text dosyasında yer alan x,y,z formatındaki koordinatlara göre AutoCAD Drawing dosyasında, seçilen Layer'da Point objeleri oluşturur.

Belirlenen Layer'daki tüm Point objeleri oluşturulma sırasının tersi sırada seçilir, herhangi bir sıralama yapılmaz. Yani en son oluşturulan point objesi en başta yazılacaktır.

Kolay gelsin...
Kod:

(defun *error* (msg) (setvar "modemacro" "") (princ msg) (command "undo" "e") (prin1))
;;;===================================================;;;
;;;   Prepared by: M. Şahin Güvercin 07/05/2011       ;;;
;;; AutoCAD Drawing içinde, seçilen Layer'da bulunan  ;;;
;;; Tüm Point objelerini, belirlenen Text dosyayasına ;;;
;;; x,y,z formatında yazar.                           ;;;
;;;              www.autocadokulu.com                 ;;;
;;;===================================================;;;
(defun c:PntExp (/ *error* rfob Noks L n fo Pivot Satir)
  (setvar "modemacro" "M.Sahin Guvercin")
  (setvar "cmdecho" 0) (command "_.undo" "group")
  (princ "\n Koordinatları yazılacak guruptan bir POINT seçiniz...")
  (setq rfob (entget (ssname (ssget ":S" (list (cons 0 "POINT"))) 0))
Noks (ssget "x" (list (assoc 0 rfob) (assoc 8 rfob)))
L (sslength Noks) n -1
fo (open (getfiled "Çıkış Kütüğü" "" "" 9) "w"))
  (while (< (setq n (1+ n)) L)
    (setq Pivot (entget (ssname Noks n))
  Satir (strcat (rtos (cadr (assoc 10 Pivot)) 2) ","
(rtos (caddr (assoc 10 Pivot)) 2) ","
(rtos (cadddr (assoc 10 Pivot)) 2)))
    (write-line Satir fo))
  (close fo) (setvar "modemacro" "") (command "undo" "e") (prin1)
)
;;;===================================================;;;
;;;   Prepared by: M. Şahin Güvercin 07/05/2011       ;;;
;;; Seçilen Text dosyasında yer alan ve x,y,z         ;;;
;;; formatındaki koordinat değerlerine göre,          ;;;
;;; AutoCAD Drawing dosyası içinde, seçilen Layer'da  ;;;
;;; Point Objeleri oluşturur.                         ;;;
;;;              www.autocadokulu.com                 ;;;
;;;===================================================;;;
(defun c:PntImp (/ *error* Layr fo Satir Xx Yy Zz)
  (setvar "modemacro" "M.Sahin Guvercin")
  (setvar "cmdecho" 0) (command "_.undo" "group")
  (setq Layr (getstring "\n Point Objelerinin oluşturulacağı Layer adı: "))
  (if (not (tblsearch "Layer" Layr))
    (entmake (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord")
   (cons 100 "AcDbLayerTableRecord") (cons 2 Layr)
   (cons 70 0) (cons 62 7) (cons 6 "Continuous")
   (cons 290 1) (cons 370 15))))
  (setq fo (open (getfiled "Giriş Kütüğü" "" "" 8) "r"))
  (while (setq Satir (read-line fo))
    (setq X (substr Satir 1 (vl-string-position (ascii ",") Satir))
  Satir (substr Satir (+ (vl-string-position (ascii ",") Satir) 2))
  Y (substr Satir 1 (vl-string-position (ascii ",") Satir))
  Z (substr Satir(+ (vl-string-position (ascii ",") Satir) 2))
  PnT (list (atof X) (atof Y) (atof Z)))
    (entmake (list (cons 0 "POINT") (cons 100 "AcDbEntity") (cons 67 0)
   (cons 8 Layr) (cons 100 "AcDbPoint")
   (cons 10 PnT) (cons 210 (list 0.0 0.0 1.0)) (cons 50 0.0))))
  (close fo) (setvar "modemacro" "") (command "undo" "e") (prin1)
)
(write-line "M.Sahin Güvercin - www.autocadokulu.com")

ProhibiT (07.05.2011 19:46 GMT)

20.05.2011 12:45    

ffeerrddii
Selam;

benim elimde şuanda haritacılardan autocad ortamında bi resim var.Ben bu resmin yani tesisin koordinatlarına göre kesit resmini çizmek istiyorum.Bu konuda bi bilgi verebilirmisiniz.. nerden başlayıp ne yapmam gerekiyor...

26.12.2013 19:31    

erkan038
Alıntı
ProhibiT :
İki fonksiyon paylaşıyorum...

- PntExp (Point Export) fonksiyonu, Seçtiğiniz Layer'da bulunan tüm Point objelerinin koordinatlarını, seçilen text dosyasına, x,y,z formatında yazar.

- PntImp (Point Import) fonksiyonu, seçilen text dosyasında yer alan x,y,z formatındaki koordinatlara göre AutoCAD Drawing dosyasında, seçilen Layer'da Point objeleri oluşturur.

Belirlenen Layer'daki tüm Point objeleri oluşturulma sırasının tersi sırada seçilir, herhangi bir sıralama yapılmaz. Yani en son oluşturulan point objesi en başta yazılacaktır.

Kolay gelsin...
.
.
.
(write-line "M.Sahin Güvercin - www.autocadokulu.com")[/code]






komutu çalıştırma kodu nedir

ProhibiT (27.12.2013 07:14 GMT)

26.12.2013 21:03    

Travaci
PntExp ve PntImp

27.12.2013 07:15    

ProhibiT
Arkadaşlar alıntı yaparken kodları da almayalım. İnanılmaz karışıklıklara sebep oluyoruz.

29.12.2013 15:11    

erkan038
arkadaşlar ben bi elektrik şirketinde çalışıyorum ve elektrik şehir şebekesi projeleri çiziyoruz ve bu çizimler koordinatlı olarak çiziyoruz bazen bazı çizimlerde koordinatlarını kaybederiyoruz ve tekrar o koordinatları excele teker teker yazmamız gerekiyor benim istediğim koordinatlarını bulmam gereken çizimi komple seçsem bana seçilen sembollerin koordinatlarını isimleriyle beraber excele aktaracak bi lisp var mı. yardımcı olursanız sevinirim.

15.10.2016 16:33    

ulkersah
Alıntı
ProhobiT

Travaci :

PntExp ve PntImp



Merhabalar,
yukarıdaki lispi
x,y,z koordinatları haricinde birde point objelerini numaralandırması mümkün müdür?
yani obje numarasına a dersek
a,x,y,z formatında text dosyasını oluştursak ve ona göre point objeleri oluşmuş olsa

Teşekkürler...

17.10.2016 08:23    

Travaci
ulkersah


Kod:

(defun c:PntEt (/ fl pl ao co) (vl-load-com)
  (if (setq fl (getfiled "Coordinate file" (getvar 'dwgprefix) "" 0))
    (progn
      (setq fl (open fl "r")
            ao (vla-get-activedocument (vlax-get-acad-object)))
      (vla-startundomark ao)
      (while (setq pl (read-line fl))
        (entmake (list (cons 0 "point")
          (cons 10 (setq co (read (strcat "(" (vl-string-translate
           "," " " (substr pl (+ 2 (vl-string-position 44 pl)))) ")"))))))
        (entmake (list (cons 0 "text") (cons 10 co) (cons 11 co)
          (cons 1 (substr pl 1 (vl-string-position 44 pl))) 
          (cons 40 (getvar 'textsize)) (cons 72 1) (cons 73 1)))
      )
      (vla-endundomark ao)
      (close fl)
    )
  ) (prin1)
)

24.10.2016 07:59    

alpayelmas
Ben düzenleyerek aşağıdaki lisp i oluşturdum. Bu lisp ile noktaları NCN XYX GSI ARE olarak autocadden atabiliyorum. Boylelıkle netcad yazılımı ve totalstation, leica, colida aletleri için datayıda aktarım programı ıle donusturmeme gerek kalmıyor. lisp assagıda kolay gelsin.

Kod:

(defun c:DATAAKTARIM(/ baslik NR NP ZN PD B old_cmdecho)
    (setq old_cmdecho (getvar "cmdecho"))
    (setvar "cmdecho" 0)



    (initget (+ 1 2 4))
(setq baslik (getstring "\nBASLIK GIRINIZ :"))
    (setq NR (getint "\nBaslama Numarası Giriniz :"))
(setq ZKOOR (getstring "\nZ KOORDINATI GIRINIZ :"))

    (setq B (getreal "\Numara Boyunu Giriniz:"))
    (setq DOSYANCN (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".NCN"))
    (setq DOSYAGSI (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".GSI"))
(setq DOSYAXYZ (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".XYZ"))
(setq DOSYAARE (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".ARE"))




;(setq ZN (getstring "\Noktaya balastro istermisiniz ?  [ e / h ]:"))
(setq ZN "E")

;Koordinat çizelge anteti
(setq P1 (getpoint "\nKoordinat listesi köşe noktasını seçiniz:"))
(setq P2 (polar p1 0 5))
(setq P3 (polar p1 0 20))
(setq P4 (polar p1 0 35))
(setq P12 (polar p1 (/ pi 2) 3))
(setq P22 (polar p2 (/ pi 2) 3))
(setq P32 (polar p3 (/ pi 2) 3))
(setq P42 (polar p4 (/ pi 2) 3))
(setq P11 (polar p1 (/ pi 4) 1))
(setq P21 (polar p2 (/ pi 4) 1))
(setq P31 (polar p3 (/ pi 4) 1))

(command "_layer" "_m" "cizelge" "_c" "3" "" "")

(setvar "osmode" (logior (getvar "osmode") 16384)) ;OSNAP OFF
(command "LINE" p1 p4 "" "")
(command "LINE" p12 p42 "" "")
(command "LINE" p12 p1 "" "")
(command "LINE" p22 p2 "" "")
(command "LINE" p32 p3 "" "")
(command "LINE" p42 p4 "" "")

(command "-text" "j" "bl" p11 1 "" "N.No" "")
(command "-text" "j" "bl" p31 1 "" "X.Koord." "")
(command "-text" "j" "bl" p21 1 "" "Y.Koord." "")
(command "_layer" "_m" "nokta" "_c" "3" "" "")
    (setvar "osmode" (logand (getvar "osmode") (~ 16384))) ; OSNAP ON

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


   
   
        (while
  (setq NOKTA (getpoint "\nNokta Sec:"))
 
  (setq Y (RTOS (car NOKTA) 2 3))
  (setq X (RTOS (cadr NOKTA) 2 3))
  (setq Z ZKOOR)  ;(RTOS (caddr NOKTA)2 4)
 
  (setq XGSI (LM:StringSubst "" "." X))
  (setq YGSI (LM:StringSubst "" "." Y))
 
  (setq SNSAY (strlen (rtos (+ NR 2) 2 0)))
  (setq SNGSI (rtos NR 2 0))
  (repeat (- 4 SNSAY)
  (setq SNGSI (strcat "0" SNGSI ) )
  )
 
  (setq KODSAY (strlen (strcat baslik (rtos NR 2 0))))
  (setq KODGSI (strcat baslik (rtos NR 2 0)))
  (repeat (- 16 KODSAY)
  (setq KODGSI (strcat "0" KODGSI ) )
  )
 
  (setq YGSILEN (strlen YGSI))
  (if (< YGSILEN 9)
(progn
(repeat (- 9 YGSILEN)
(setq YGSI (strcat YGSI "0" ) )
)
)
  )
  (setq YGSI (strcat "0" YGSI  ) )
 
 
  (setq XGSILEN (strlen XGSI))
  (if (< XGSILEN 10)
(progn
(repeat (- 10 XGSILEN)
(setq XGSI (strcat XGSI "0" ) )
)
)
  )
 
(repeat 6
(setq XGSI (strcat "0" XGSI  ) )
(setq YGSI (strcat "0" YGSI  ) )
)

 
 
 

 
 
  ;;;;;;;;;;NCN KOD
  (SETQ PDDOSYANCN (open DOSYANCN "a"))
  (setq LINIADOSYANCN
  (strcat (rtos NR 2 0) "   " Y "  " X "    " ZKOOR " 0 " (chr 34) (chr 34) " " (chr 34) (chr 34) " " (chr 34) (chr 34));strcat NCN
  )
  (WRITE-line LINIADOSYANCN PDDOSYANCN)
  (close PDDOSYANCN)
  ;;;;;;;;;;;;;;;;;; 
   
  ;;;;;;;;;;GSI KOD
  (SETQ PDDOSYAGSI (open DOSYAGSI "a"))
  (setq LINIADOSYAGSI
  (strcat "*11" SNGSI "+" KODGSI " 81..10+" YGSI " 82..10+" XGSI " 83..10+0000000000000000 ");strcat GSI
  )
  (WRITE-line LINIADOSYAGSI PDDOSYAGSI)
  (close PDDOSYAGSI)
  ;;;;;;;;;;;;;;;;;;
 
  ;;;;;;;;;;XYZ KOD
  (SETQ PDDOSYAXYZ (open DOSYAXYZ "a"))
  (setq LINIADOSYAXYZ
  (strcat (rtos NR 2 0) "   " Y "   " X "   " ZKOOR );strcat XYZ
  )
  (WRITE-line LINIADOSYAXYZ PDDOSYAXYZ)
  (close PDDOSYAXYZ)
  ;;;;;;;;;;;;;;;;;;  
 
  ;;;;;;;;;;ARE KOD
  (SETQ PDDOSYAARE (open DOSYAARE "a"))
  (setq LINIADOSYAARE
  (strcat "  " (rtos NR 2 0) "              " Y  "              "X "              "ZKOOR);strcat ARE
  )
  (WRITE-line LINIADOSYAARE PDDOSYAARE)
  (close PDDOSYAARE)
  ;;;;;;;;;;;;;;;;;;  
 
   
 
 
 
 
  ; Çizelge kord. yazan kısım
 
  (setq P1B (polar p1 (/ (- pi) 2 ) 3))
  (setq P2B (polar p2 (/ (- pi) 2 ) 3))
  (setq P3B (polar p3 (/ (- pi) 2 ) 3))
  (setq P4B (polar p4 (/ (- pi) 2 ) 3))
 
  (setq P11B (polar p11 (/ (- pi) 2 ) 3))
  (setq P21B (polar p21 (/ (- pi) 2 ) 3))
  (setq P31B (polar p31 (/ (- pi) 2 ) 3))

  (command "_layer" "_m" "cizelge" "_c" "3" "" "")
  (setvar "osmode" (logior (getvar "osmode") 16384)) ;OSNAP OFF
  (command "LINE" p1 p1B "")
  (command "LINE" p2 p2B "")
  (command "LINE" p3 p3B "")
  (command "LINE" p4 p4B "")
  (command "LINE" p1B p4B "")
  (command "-text" "j" "bl" p11B 1 "" (strcat baslik (rtos NR 2 0)) "")
  (command "-text" "j" "bl" p31B 1 "" X "")
  (command "-text" "j" "bl" p21B 1 "" Y "")
  (setvar "osmode" (logand (getvar "osmode") (~ 16384))) ; OSNAP ON
  (command "_layer" "_m" "nokta" "_c" "3" "" "")
 
  (setq p1 p1b)
  (setq p2 p2b)
  (setq p3 p3b)
  (setq p4 p4b)
 
  (setq p11 p11b)
  (setq p21 p21b)
  (setq p31 p31b) 
 
  ;

     
  (if (or (= ZN "E")(= ZN "e"))
    (progn
     (DRAW_PUNKT)
     (DRAW_TEXT)
    )
     (DRAW_TEXT)
  )
  (setq NR (1+ NR))
);WHILE
   
    (setvar "cmdecho" old_cmdecho)
    (princ)
    (princ)
  );defun
;;; ---------------------------------------------------------------------------------- ;;;
(defun DRAW_TEXT (/)
  (command "_layer" "_m" "nokta-no" "_c" "3" "" "")
  (command "_text" NOKTA 0.15 "0" (strcat baslik (rtos NR 2 0)))
  );defun
;;; ---------------------------------------------------------------------------------- ;;;
(defun DRAW_PUNKT (/ d kat_90 kat_270 p1 p2 p3 p4)
      (command "_layer" "_m" "nokta" "_c" "3" "" "")
(setq d (/ B 20))
  (command "_point" NOKTA )
  );defun
;;; ---------------------------------------------------------------------------------- ;;;

(defun LM:StringSubst ( new old str / inc len )
    (setq len (strlen new)
          inc 0
    )
    (while (setq inc (vl-string-search old str inc))
        (setq str (vl-string-subst new old str inc)
              inc (+ inc len)
        )
    )
    str
)
;;; ---------------------------------------------------------------------------------- ;;;

(princ
  (strcat
   
" Alpay ELMAS"
    " [e-mail:alpayelmas@gmail.com]"
    "\nKomut: DATAAKTARIM "
  )
)

26.10.2016 10:10    

atillaözel6666
LİSP ÇOK GÜZEL ama 8.ve 9. sıradaki koordinatlar sorunlu olduğu için total stationa atmıyor.sanırım karakter uyuşmazlığı var satırlar diğer satırlarla aynı hizada değil, düzeltebilirmisiniz..

atillaözel6666 (05.02.2017 08:01 GMT)

05.11.2016 11:48    

alpayelmas
nokta numarası kaldıgınız yerden aynı dosyaya nokta ekleme yapmak ıstedıgınızde faydalı oluyor baslıgada entera basıp gecebılırsınız. :)

07.11.2016 05:18    

heisenberg33
Alttaki lisp'le kordinat listesini direkt olarak istedigimiz dosyaya txt olarak aktarabiliyoruz. yalniz tek sorun nokta atmaya baslarken "osnap'' modundan sadece bir tanesi acik kaliyor, actigimiz halde tekrar kapaniyor . bu durumu degistirmemde yardimci olabilir misiniz? Osnap modu surekli acik kalmasi gerekmekte ki istedigim noktayi veya objeyi yakalayabileyim.







(defun c:sr1 ()
(setvar "cmdecho" 0)
(setvar "osmode" 33)
(PROMPT "\nTHIS PROGRAM IS EXECUTED BY ENG. SAMI SAYED REZK")
(setq fname (getstring "\nEnter File Name To Be saved: "))
(setq fnum (getint "\nEnter Start First Number: "))
(setq txt (open fname "w"))
(setq pt 1)
(while pt
(setvar "osmode" 33)
(setq pt (getpoint "Select point: "))
(command "osnap" "none")
(if (/= pt nil) (setq pt1 (polar pt 1.0 0.05)))
(if (/= pt nil) (command "text" pt1 "0.2" "0.0" fnum))
(if (/= pt nil)
(progn (setq nm (itoa fnum))
(setq n (car pt))
(setq e (cadr pt))
(setq n2 (rtos n 2 3))
(setq e2 (rtos e 2 3))(sp)
(setq str (strcat nm n e2 nn n2))
(write-line str txt)
(setq fnum (+ 1 fnum))
)
)
)
(close txt)
)


(defun c:num (/ rand currnt ptlst )
(setvar "cmdecho" 0)
(command "osnap" "end")
(setq rand T )
(setq currnt (getint "\nEnter Start First Number: "))
(setq sc1 (getreal "\nEnter The Drawing Scale: "))
(setq sc (* 1.5 sc1))
(while rand
(setq rand (getpoint "\nSelect Points In Sequence: "))
(setq ptlst
(append ptlst (list rand))))
(mapcar '(lambda (rand) (if rand (progn (setq x (car rand))
(setq y (cadr rand))
(setq rand (list x y ))
(command "text" rand sc "0" currnt)
(setq currnt (+ 1 currnt ))))) ptlst )(princ)(command "osnap" "none"))



(defun sp ()
(setq RNM (strlen nm))
(setq RN (strlen n2))
(COND
((= RNM 1) (SETQ N (STRCAT " ")))
((= RNM 2) (SETQ N (STRCAT " " )))
((= RNM 3) (SETQ N (STRCAT " " )))
((= RNM 4) (SETQ N (STRCAT " " )))
)
(COND
((= RN 1) (SETQ NN (STRCAT " ")))
((= RN 2) (SETQ NN (STRCAT " " )))
((= RN 3) (SETQ NN (STRCAT " " )))
((= RN 4) (SETQ NN (STRCAT " " )))
((= RN 5) (SETQ NN (STRCAT " " )))
((= RN 6) (SETQ NN (STRCAT " " )))
((= RN 7) (SETQ NN (STRCAT " " )))
((= RN 8) (SETQ NN (STRCAT " " )))
((= RN 9) (SETQ NN (STRCAT " " )))
((= RN 10) (SETQ NN (STRCAT " " )))
((= RN 11) (SETQ NN (STRCAT " " )))
((= RN 12) (SETQ NN (STRCAT " " )))
((= RN 13) (SETQ NN (STRCAT " " )))
((= RN 14) (SETQ NN (STRCAT " " )))
)
)


(defun num (s)
(if (/= s "Function cancelled") (princ (strcat "\nError: " s)) )
(setq S nil)
(setvar "CMDECHO" ocmd)
(setq *error* olderr)
(princ)
)

05.02.2017 07:56    

atillaözel6666
Alıntı
heisenberg33 :
Alttaki lisp'le kordinat listesini direkt olarak istedigimiz dosyaya txt olarak aktarabiliyoruz. yalniz tek sorun nokta atmaya baslarken "osnap'' modundan sadece bir tanesi acik kaliyor, actigimiz halde tekrar kapaniyor . bu durumu degistirmemde yardimci olabilir misiniz? Osnap modu surekli acik kalmasi gerekmekte ki istedigim noktayi veya objeyi yakalayabileyim.







(defun c:sr1 ()
(setvar "cmdecho" 0)
(setvar "osmode" 33)
(PROMPT "\nTHIS PROGRAM IS EXECUTED BY ENG. SAMI SAYED REZK")
(setq fname (getstring "\nEnter File Name To Be saved: "))
(setq fnum (getint "\nEnter Start First Number: "))
(setq txt (open fname "w"))
(setq pt 1)
(while pt
(setvar "osmode" 33)
(setq pt (getpoint "Select point: "))
(command "osnap" "none")
(if (/= pt nil) (setq pt1 (polar pt 1.0 0.05)))
(if (/= pt nil) (command "text" pt1 "0.2" "0.0" fnum))
(if (/= pt nil)
(progn (setq nm (itoa fnum))
(setq n (car pt))
(setq e (cadr pt))
(setq n2 (rtos n 2 3))
(setq e2 (rtos e 2 3))(sp)
(setq str (strcat nm n e2 nn n2))
(write-line str txt)
(setq fnum (+ 1 fnum))
)
)
)
(close txt)
)


(defun c:num (/ rand currnt ptlst )
(setvar "cmdecho" 0)
(command "osnap" "end")
(setq rand T )
(setq currnt (getint "\nEnter Start First Number: "))
(setq sc1 (getreal "\nEnter The Drawing Scale: "))
(setq sc (* 1.5 sc1))
(while rand
(setq rand (getpoint "\nSelect Points In Sequence: "))
(setq ptlst
(append ptlst (list rand))))
(mapcar '(lambda (rand) (if rand (progn (setq x (car rand))
(setq y (cadr rand))
(setq rand (list x y ))
(command "text" rand sc "0" currnt)
(setq currnt (+ 1 currnt ))))) ptlst )(princ)(command "osnap" "none"))



(defun sp ()
(setq RNM (strlen nm))
(setq RN (strlen n2))
(COND
((= RNM 1) (SETQ N (STRCAT " ")))
((= RNM 2) (SETQ N (STRCAT " " )))
((= RNM 3) (SETQ N (STRCAT " " )))
((= RNM 4) (SETQ N (STRCAT " " )))
)
(COND
((= RN 1) (SETQ NN (STRCAT " ")))
((= RN 2) (SETQ NN (STRCAT " " )))
((= RN 3) (SETQ NN (STRCAT " " )))
((= RN 4) (SETQ NN (STRCAT " " )))
((= RN 5) (SETQ NN (STRCAT " " )))
((= RN 6) (SETQ NN (STRCAT " " )))
((= RN 7) (SETQ NN (STRCAT " " )))
((= RN 8) (SETQ NN (STRCAT " " )))
((= RN 9) (SETQ NN (STRCAT " " )))
((= RN 10) (SETQ NN (STRCAT " " )))
((= RN 11) (SETQ NN (STRCAT " " )))
((= RN 12) (SETQ NN (STRCAT " " )))
((= RN 13) (SETQ NN (STRCAT " " )))
((= RN 14) (SETQ NN (STRCAT " " )))
)
)


(defun num (s)
(if (/= s "Function cancelled") (princ (strcat "\nError: " s)) )
(setq S nil)
(setvar "CMDECHO" ocmd)
(setq *error* olderr)
(princ)
)

28.06.2017 18:42    

ulkersah
Alıntı
Travaci :
ulkersah


[



Aslında excell den koordinat almak değilde oluşturulmuş point lere numara vererek a,x,y,z şeklinde aktarım ihtiyacım vardı
Bir diğer sorunum ise daha önce siteden aldigim ve cok defa kullandığım pct ve mtlst lsplerini kullanamıyorum
Pct lispinizin son hali hata veriyor ve hiç calismiyor
Mtlsp lispinde ise Tabloyu excel e aktarırken tabloda çok fazla satır olması durumunda aynı hücre içerisine birden fazla veri yazıyor
Daha önce kullanmis olmam ve üzerinde hiç değişiklik yapmama ma rağmen bu hatalarla neden karşılaşıyor olabilirim ?

01.07.2017 22:30    

ProhibiT
PcT ve MtrLst Lispleri hata vermez. Forumda pek çok yerde açıkladık bu durumu ama dikkatinizden kaçmış demek ki.
Paylaştığım pek çok Lisp kendi -.DCL dosyasını kendi oluşturur ve bu dosyayı da, AutoCAD'in yüklendiği klasörün altındaki Support klasörüne yazmaya çalışır. (c:\Program Files\AutoDesk\AutoCAD XXXX\Support gibi) SÖz konusu klasörlere yeterli erişim yetkiniz yoksa, program ekranda söz konusu DCL satırlarını yazarak hata ile sonuçlanır.
Çözüm: AutoCAD klasörünüzün üzerine sağ tıklayın, açılan menüden Özellikler seçin, açılan diyalog penceresinde Güvenlik sekmesini seçerek, Düzenle düğmesine tıklayarak kendinize tam erişim tanımlayın... problem hallolacaktır.

22.11.2019 05:50    

cngzklc
M.Şahin hocam çok teşekkür ederim. Güzel bir çalışma olmuş. PntExp ile aldığım koordinatları tekrar PntImp ile nokta atmaya çalıştığımda aşağıdaki hatayı alıyorum. Sebebi nedir?
Kod:

Command: PNTIMP

Point Objelerinin oluşturulacağı Layer adı: ck ; error: bad argument type: FILE nil

Command: Specify opposite corner or [Fence/WPolygon/CPolygon]:
Command: regen Regenerating model.

23.11.2019 18:29    

mavi462
Otomatik nokta üretebilir .Bunları nokta dosyaları şeklinde ncn ve ya txt formatında kaydedebilirsiniz..
video:


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



indirme linki:


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

mavi462 (24.11.2019 06:48 GMT)

> 1 <
Copyright © 2004-2022 SQL: 1.7 saniye - Sorgu: 98 - Ortalama: 0.01735 saniye