16.07.2014 07:51    

alfaoz
Arkadaşlar merhaba;

prohibit hocanın hazırladığı autocaddeki tabloları excele aktaran acxl.vlx isimli bi yazılım var elimde. bu programı kullanıyorum ancak program şekilleri aktarmıyor excele.
isteğim şu excele aktardığım tabloda daireler var mümkünse bu daireleri yazıya dönüştürmek istiyorum ki excele aktarabileyim. ya da tümünün merkezine istediğim yazıyı yazıp excele aktarabileyim.
bahsettiğim tablo mahal listesi olup yapılacak imalatlar çok fazla sayıda daire ile işaretlenmiş durumda.

16.07.2014 07:56    

Travaci
Nasıl bir tablo bu ? Daireler den kastınız block mu bunlar ?

16.07.2014 08:12    

alfaoz
hayır excel tablosu gibi düşünün 100*30 gibi bi tablo örneğin mahal listesi tablosu ve daireler sadece işaretleme için kullanılmış yani hangi mahalde hangi imalat var işaretlemek için kullanılmış daireler block değil circle ile çizilmiş

16.07.2014 08:21    

ProhibiT
Bahsedilen AcxL programının maksadını çok aşan bir konu.

AutoCAD ortamındaki Çizim nesnelerini Excel ortamına aktarabilmek için Portable/Public Network Graphic (PNG) formatında yeniden oluşturmak gerekir. PNG formatına çevrildikten sonra da, excel hücreleriyle ilişkilendirmek ayrı bir dert. Şekli grafik formata dönüştürmektense, hücre içinde Karakter veya sembollerle ifade etmek daha pratik ve kullanışlı olur diye düşünüyorum.

Bahsettiğiniz şekiller anladığım kadarıyla Mahal Listesi (Room Finsh Schedule) tablolarında, hangi elemanın hangi duvarda veya yönde geçerli olduğunu gösteren şekillerdir. Bunun için şekilleri ve anlamlarını tanıyacak, bunları Yazı formatına dönüştürecek Lisp fonksyion yazmak gerek. Sonuç olarak gene AcxL programının yazılış amacının çok dışında bir konu.

16.07.2014 08:46    

alfaoz
acxl programını tam yazılış amacında kullanıyorum sn prohibit. dikkat ederseniz ben zaten şekillerin excele aktarılmasını istemedim yazımda bunun karmaşık ve sorun çıkarma ihtimali yüksek bi iş olduğuna eminim. bahsettiğim şekil sadece daire ve hangi mahalde hangi imalat yapılacak (döşeme kaplaması, duvar kaplaması, kapı, pencere vs.)onu gösteriyor.

sanırım aynı mantıkda gidiyoruz ben sadece dairelerin içine yazı yazmak istiyorum örneğin tüm daireleri seçip içine 1 yaz demek istiyorum. ya da ne biliyim daireleri 1 sayısına çevir de diyebilirim.

16.07.2014 10:30    

Travaci
Seçtiğiniz dairelere yazı yazdırmanız için.

Kod:

(defun c:cin (/ cr n yz pn)
  (setq yz (getstring "\nYazi:") cr (ssget (list (cons 0 "circle"))) n -1)
  (setvar "cmdecho" 0) (command "_.undo" "be")
  (if cr (repeat (sslength cr)
    (setq n (1+ n) pn (cdr (assoc 10 (entget (ssname cr n)))))
    (entmake (list (cons 0 "text") (cons 1 yz) (cons 10 pn)
      (cons 11 pn) (cons 40 (getvar "textsize"))
      (cons 72 1) (cons 73 2) (cons 41 0.8)))))      
  (command "_.undo" "e") (setvar "cmdecho" 1) (princ))

Yazı yüksekliği için textsize komutunu kullanın.

16.07.2014 10:38    

alfaoz
sn travaci teşekkürler tam istediğim gibi saygılar...

15.02.2020 09:28    

kursadustundag
Alıntı
Travaci :
Seçtiğiniz dairelere yazı yazdırmanız için.

Kod:

(defun c:cin (/ cr n yz pn)
  (setq yz (getstring "\nYazi:") cr (ssget (list (cons 0 "circle"))) n -1)
  (setvar "cmdecho" 0) (command "_.undo" "be")
  (if cr (repeat (sslength cr)
    (setq n (1+ n) pn (cdr (assoc 10 (entget (ssname cr n)))))
    (entmake (list (cons 0 "text") (cons 1 yz) (cons 10 pn)
      (cons 11 pn) (cons 40 (getvar "textsize"))
      (cons 72 1) (cons 73 2) (cons 41 0.8)))))      
  (command "_.undo" "e") (setvar "cmdecho" 1) (princ))

Yazı yüksekliği için textsize komutunu kullanın.



Sıralı numara şeklinde artırılabilir mi bu yazılar ?

16.02.2020 12:38    

alumina
Alıntı
kursadustundag :

Kod:

(defun c:q1 (/ dc n z) (vl-load-com)
  (if (and (ssget '((0 . "circle")))
        (setq dc (vla-get-ActiveDocument
          (vlax-get-acad-object))
            n (getint "\nEnter the first number:")))
    (progn
      (setq n (1- n)) (vla-StartUndomark dc)
      (foreach m (vl-remove-if 'listp
          (mapcar 'cadr (ssnamex (ssget "_P"))))
        (setq n (1+ n) z (cdr (assoc 10 (entget m))))
        (entmake (list '(0 . "text") (cons 1 (rtos n 2 0))
          (cons 10 z) (cons 11 z) (cons 40 (getvar 'TextSize))
            '(71 . 0) '(72 . 1) '(73 . 2))))
      (vla-EndUndomark dc)
    )
  ) (prin1)
)

> 1 <
Copyright © 2004-2022 SQL: 1.097 saniye - Sorgu: 66 - Ortalama: 0.01663 saniye