25.12.2014 22:32    

alpayelmas
merhaba; konuyu okuyordum ama öğrenemediğim bir şey var assoc un ardından gelen 67, 40 , 41, 2, 7, 72 gibi daha yazmadığım değerler nelerin karşılığıdır?
Teşekkürler...

26.12.2014 08:29    

alpayelmas
he following group codes apply to attrib (attribute) entities.
Attrib group codes
Group code
Description
100
Subclass marker (AcDbText)
39
Thickness (optional; default = 0)
10
Text start point (in OCS)
DXF: X value; APP: 3D point
20, 30
DXF: Y and Z values of text start point (in OCS)
40
Text height
1
Default value (string)
100
Subclass marker (AcDbAttribute)
280
Version number:
0 = 2010
2
Attribute tag (string; cannot contain spaces)
70
Attribute flags:
1 = Attribute is invisible (does not appear)
2 = This is a constant attribute
4 = Verification is required on input of this attribute
8 = Attribute is preset (no prompt during insertion)
73
Field length (optional; default = 0) (not currently used)
50
Text rotation (optional; default = 0)
41
Relative X scale factor (width) (optional; default = 1). This value is also adjusted when fit-type text is used
51
Oblique angle (optional; default = 0)
7
Text style name (optional; default = STANDARD)
71
Text generation flags (optional; default = 0). See TEXT group codes
72
Horizontal text justification type (optional; default = 0). See TEXT group codes
74
Vertical text justification type (optional; default = 0). See group code 73 inTEXT
11
Alignment point (in OCS) (optional)
DXF: X value; APP: 3D point
Present only if 72 or 74 group is present and nonzero
21, 31
DXF: Y and Z values of alignment point (in OCS) (optional)
210
Extrusion direction. Present only if the entity's extrusion direction is not parallel to the WCS Z axis (optional; default = 0, 0, 1)
DXF: X value; APP: 3D vector
220, 230
DXF: Y and Z values of extrusion direction (optional)
280
Lock position flag. Locks the position of the attribute within the block reference
100
Subclass marker (AcDbXrecord)
280
Duplicate record cloning flag (determines how to merge duplicate entries):
1 = Keep existing
70
MText flag:
2 = multiline attribute
4 = constant multiline attribute definition
70
isReallyLocked flag:
0 = unlocked
1 = locked
70
Number of secondary attributes or attribute definitions
340
Hard-pointer id of secondary attribute(s) or attribute definition(s)
10
Alignment point of attribute or attribute definition
DXF: X value; APP: 3D point
20,30
DXF: Y and Z values of insertion point
40
current annotation scale
2
attribute or attribute definition tag string
0
Entity type (MTEXT)
100
Subclass marker (AcDbEntity)
67
Absent or zero indicates entity is in model space. 1 indicates entity is in paper space (optional)
8
Layer name
100
Subclass marker (AcDbMText)
10
Insertion point
DXF: X value; APP: 3D point
20,30
DXF: Y and Z values of insertion point
40
Nominal (initial) text height
41
Reference rectangle width
46
Defined annotation height
71
Attachment point:
1 = Top left; 2 = Top center; 3 = Top right
4 = Middle left; 5 = Middle center; 6 = Middle right
7 = Bottom left; 8 = Bottom center; 9 = Bottom right
72
Drawing direction:
1 = Left to right
3 = Top to bottom
5 = By style (the flow direction is inherited from the associated text style)
1
Text string
If the text string is less than 250 characters, all characters appear in group 1. If the text string is greater than 250 characters, the string is divided into 250-character chunks, which appear in one or more group 3 codes. If group 3 codes are used, the last group is a group 1 and has fewer than 250 characters.
3
Additional text (always in 250-character chunks) (optional)
7
DXF: X value; APP: 3D vectText style name (STANDARD if not provided) (optional)
210
Extrusion direction (optional; default = 0, 0, 1)
DXF: X value; APP: 3D vector
220,230
DXF: Y and Z values of extrusion direction (optional)
11
X-axis direction vector (in WCS)
DXF: X value; APP: 3D vector
21,31
DXF: Y and Z values of X-axis direction vector (in WCS)
42
Horizontal width of the characters that make up the mtext entity.
This value will always be equal to or less than the value of group code 41 (read-only, ignored if supplied).
43
Vertical height of the mtext entity (read-only, ignored if supplied)
50
Rotation angle in radians
73
Mtext line spacing style (optional):
1 = At least (taller characters will override)
2 = Exact (taller characters will not override)
44
Mtext line spacing factor (optional):
Percentage of default (3-on-5) line spacing to be applied.
Valid values range from 0.25 to 4.00
90
Background fill setting:
0 = Background fill off
1 = Use background fill color
2 = Use drawing window color as background fill color
63
Background color (if color index number)
420-429
Background color (if RGB color)
430-439
Background color (if color name)
45
Fill box scale (optional):
Determines how much border is around the text.
63
Background fill color (optional):
Color to use for background fill when group code 90 is 1.
441
Transparency of background fill color (not implemented)
If group 72 and/or 74 values are nonzero then the text insertion point values are ignored, and new values are calculated by AutoCAD based on the text alignment point and the length of the text string itself (after applying the text style). If the 72 and 74 values are zero or missing, then the text alignment point is ignored and recalculated based on the text insertion point and the length of the text string itself (after applying the text style).
Related References

22.02.2018 08:29    

onderbengu05
Merhaba arkadaşlar,

Benim sorum şu herhangi bir text'i attribute içine yazdrımak için gerekli yönergeler ne olmalıdır?

Alakanıza şimdiden teşekkür ederim.

Son satırlar text olarak sonucu yazıyor. Benim talebim sonucu bir Block Attribute içinde yazdırmak.

(defun c:uu (/ di ent n pt1 pt2 sel di1 di2 At1)
(vl-load-com)
(if (ssget '((0 . "LINE,POLYLINE,LWPOLYLINE,ARC,CIRCLE,ELLIPSE,SPLINE,MLINE,REGION,MPOLYGON")))
(progn
(setq di 0)
(vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(cond
((member (vla-get-objectname ent) '("AcDbLine" "AcDb3dPolyline" "AcDbPolyline"))
(setq di (+ di (vla-get-length ent)))
)
((eq (vla-get-objectname ent) "AcDbArc")
(setq di (+ di (vla-get-arclength ent)))
)
((eq (vla-get-objectname ent) "AcDbCircle")
(setq di (+ di (vla-get-circumference ent)))
)
((member (vla-get-objectname ent) '("AcDbSpline" "AcDbEllipse"))
(setq di (+ di (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))))
)
((eq (vla-get-objectname ent) "AcDbMline")
(setq n 0 pt2 nil)
(while (nth n (setq lst (vlax-get ent 'Coordinates)))
(setq pt1 (list (nth n lst)(nth (1+ n) lst)(nth (+ n 2) lst)))
(and pt2
(setq di (+ di (distance pt1 pt2)))
)
(setq pt2 pt1
n (+ n 3)
)
)
)
((member (vla-get-objectname ent) '("AcDbMPolygon" "AcDbRegion"))
(setq di (+ di (vla-get-perimeter ent)))
)
)
)
(setq di2 (/ di 100))
(setq di1 ( rtos di2 2 2 ))
(setq PT (getpoint "\n_yazi_yerini_seciniz:"))
(setq TXTHT 10)
(command ".style" "SIHHI" "" "0" "0.75" "0" "N" "N" "N"
".TEXT" "J" "MC" PT tXTHT "0" di1)

)
(vla-delete sel)
)
)
(princ)
)
(princ)

onderbengu05 (22.02.2018 09:11 GMT)

22.02.2018 12:19    

Travaci
Kod:

(if (and (setq ss (nentsel "\nSelect attrib: "))
         (= (cdr (assoc 0 (entget (car ss)))) "ATTRIB"))
  (vlax-put-property (vlax-ename->vla-object (car ss)) 'TextString di1)
)

22.02.2018 14:06    

onderbengu05
Arkadaşım çok teşekkür ederim. İşimi gördü.
Kolay gelsin.

13.03.2019 15:28    

erhankomur
Hocam Merhaba biz burst komutu ve yazdığınız lispler ile block (enhanced attribute editor ) patlatıyoruz yalnız text olunca tüm değerler ayrı ayrı oluyor bu değerleri tek textte toplamanın kolay bir yolu varmı şimdiden teşekkür ederiz

14.03.2019 08:35    

ehya
Alıntı
erhankomur :
Hocam Merhaba biz burst komutu ve yazdığınız lispler ile block (enhanced attribute editor ) patlatıyoruz yalnız text olunca tüm değerler ayrı ayrı oluyor bu değerleri tek textte toplamanın kolay bir yolu varmı şimdiden teşekkür ederiz



Konuyu biraz daha açarmısınız? Örnek resim olursa daha iyi olur.

14.03.2019 09:30    

erhankomur
hocam foto ile anlatmaya çalıştım ama inşallah anlatabilmişimdir.

1. resim

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


2. resim

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


3. resim

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



1. resimde ilk halini gösterdim. Text olarak yazılmamış başka bir sayfa açıyor. bunu bu şekilde olunca kullanamıyorum bana text olması gerekiyor. explode ile patlatınca bütün bilgiler gidiyor. Burst komutu ile patlatınca her veri tek tek text olarak geliyor.

onun yerine çıkan verilerin tek text içinde olması gerekiyor benim için. teşekkür ederim

14.03.2019 12:48    

ehya
erhankomur




Autocad'in hangi sürümünü kullanıyorsunuz?

14.03.2019 12:51    

erhankomur
2018 hocam

14.03.2019 12:59    

ehya
Insert tab içerisinde Combine Text komutu ile bu yazıları tek bir yazı haline getirebilirsiniz.
Tek yazıya Mtext olarak dönüştürülüyor. Bu yazıyı isterseniz Explode komutu ile patlatıp Text objesine dönüştürebilirsiniz.
Bu komut işinize yarıyor mu?

14.03.2019 13:32    

erhankomur
Hocam brust ile patlatıp sizin dediğiniz gibi yapınca text oldu. Problemimiz çözüldü.Yalnız Demir metrajı yapıyoruz dosya büyük çok zaman kaybı oluyor. 3 tane komutu tek tek yapması uğraştırıyor. Bunun için bir lisp iniz var mı yada yapabilir misiniz ? Çok teşekkür ederiz.

14.03.2019 13:44    

ehya
Örnek bir çizim gönderin.

14.03.2019 13:58    

erhankomur
Hocam birşeyler hazırladık...



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

14.03.2019 14:11    

erhankomur
hocam kullandığımız lisp bu. Lisp text leri seçince excel dosyasına atıyor daha sonra ben ayıklıyorum. Text leri görüyor ama blockları seçmiyor. Blockları seçse işimiz hallolacak. Biz blockları text e çevirme çalıştık. blocklarıda aynı şekilde seçerse problem çözülecek aslında.

; (princ "\t" dosya) OLARAK YAZILIRSA TAB'a basılmış gibi kaydeder....
; Dosya sonra Excell de açılırken hüçrelere bölünmüş olarak açılır...
; Yani Excell dosyası export edilmiş gibi olur.
(defun c:dd ( / )
(command "layer" "new" "metraj_layer" "c" "3" "metraj_layer" "")
(setq donati_text (ssget '((0 . "TEXT")) ) )
(if (/= donati_text nil)
(progn
(setq donati_text_adet (sslength donati_text))
(setq i 0 )
(setq metraj_dosya (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".xls"))
(setq dosya (open metraj_dosya "a"))
)
(progn
(princ "\n Dosyaya ara veriyoruz.......")
(setq donati_text (ssget '((0 . "TEXT")) ) )
(setq donati_text_adet (sslength donati_text))
(setq i 0 )
(setq dosya (open metraj_dosya "a"))
(princ "\n " dosya)
(princ "\n " dosya)
(princ "\n " dosya)
(princ "\n " dosya)
)

14.03.2019 15:24    

ehya
Bu lispi bi deneyin. İşinize yarayacaktır.

Yazıları patlatmanıza gerek yok. Seçilen yazı "text" de olsa "attribute" de olsa excel'e yazacaktır.


Kod:

(defun att-oku (nesne)
(setq att (vlax-invoke (vlax-ename->vla-object nesne) 'getattributes))
(foreach aa att
  (cond
    ((eq (vla-get-TagString aa) "DAD")(setq dad (vlax-get-property aa 'TextString)))
    ((eq (vla-get-TagString aa) "CAP")(setq cap (vlax-get-property aa 'TextString)))
    ((eq (vla-get-TagString aa) "ARA")(setq ara (vlax-get-property aa 'TextString)))
    ((eq (vla-get-TagString aa) "BOY1")(setq boy1 (vlax-get-property aa 'TextString))))
  )
(setq pp (strcat dad " " cap "/"ara " L=" boy1))
)
(defun c:metraj ()
(if (setq ss (ssget '((-4 . "<OR")
  (0 . "TEXT")
  (-4 . "<AND")
  (0 . "INSERT")
  (66 . 1)
  (-4 . "AND>")
  (-4 . "OR>"))))
  (progn
(command "layer" "new" "metraj_layer" "c" "3" "metraj_layer" "")   
(setq exel (open (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".xls") "a"))
(setq c 0 say (sslength ss))
(while (< c say)
(setq tek (ssname ss c)
      tur (cdr (assoc 0 (entget tek))))
  (if (= tur "TEXT")
    (progn
      (setq ic (cdr (assoc 1 (entget tek))))
      (write-line ic exel)))
  (if (= tur "INSERT")
    (progn
      (att-oku tek)
      (write-line pp exel)))
(vla-put-layer (vlax-ename->vla-object tek) "metraj_layer")
(vla-put-color (vlax-ename->vla-object tek) acgreen)
 
(setq c (1+ c )))
(close exel)
)
  )
  (princ))

ehya (14.03.2019 16:05 GMT)

14.03.2019 15:56    

erhankomur
Hocam teşekkür ederiz. Tam istediğimiz gibi 2 sinide seçiyor. Yalnız dwg dosyasındaki layerleri bylayer yaptıktan sonra bizim lisp ile seçtiğimiz textler excele gidince yeşil oluyordu . Onuda ayarlayabilir miyiz ?

14.03.2019 16:07    

ehya
Mevcut kod üzerinden düzenledim. Kodları tekrar alabilirsiniz.

15.03.2019 06:58    

erhankomur
Hocam kodları aldım yalnız şöyle bir sıkıntı oldu başka bir projede denediğimde hata veriyor. Acaba attribute lerin tanımlarında adet dad falan herkes farklı yazıyor ondan olabilir mi. Yani şu projede denediğimde error hatası veriyor. Bunu daha genel olarak attribute leri otomatik tanımlayacak bi formulu var mıdır. Ya da her proje için neleri değiştirmek gerekir?

410456-farkli-ornek.dwg

15.03.2019 07:27    

erhankomur
Biraz deneme yanılmayla yeni projeye uyarladım çalışıyor hocam zor değilmiş. Yalnız textler yeşil oluyor ama attirübeler yeşil olmuyor hocam.
Layerde green yazıyor ama görselde değişim olmuyor daha doğrusu

Copyright © 2004-2022 SQL: 1.687 saniye - Sorgu: 105 - Ortalama: 0.01607 saniye