Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
xuanhuong91

thắc mắc về DXF

Các bài được khuyến nghị

các pro giải thích dùm em xem trong đoạn code sau về đối tượng MLINE,e đang nghiên cứu trên DXF ạ xem mấy mã đó ý nghĩa là gì và được hiểu như thế nào ạ.chẳng hạn như mã 12 có giá trị bên dưới thì nó được tính như nào ra cái giá trị đó vs ạ

 0
SECTION
  2
ENTITIES
  0
MLINE
  5
BA
330
1F
100
AcDbEntity
  8
0
100
AcDbMline
  2
A1
340
B9
 40
1.0
 70
     0
 71
     1
 72
     3
 73
     2
 10
35.72215267777833
 20
18.12241268245447
 30
0.0
210
0.0
220
0.0
230
1.0
 11
35.72215267777833
 21
18.12241268245447
 31
0.0
 12
0.5957210063666098
 22
0.803191435819353
 32
0.0
 13
-0.8031914358193528
 23
0.5957210063666099
 33
0.0
 74
     2
 41
0.0
 41
0.0
 75
     0
 74
     2
 41
-3.5
 41
0.0
 75
     0
 11
47.37686045704916
 21
33.83607960916133
 31
0.0
 12
0.8518880911326009
 22
-0.5237238587141638
 32
0.0
 13
-0.1895545449010325
 23
0.9818701922898782
 33
0.0
 74
     2
 41
0.0
 41
0.0
 75
     0
 74
     2
 41
-4.747891787847025
 41
0.0
 75
     0
 11
68.31743299416129
 21
20.96223201465008
 31
0.0
 12
0.8518880911326009
 22
-0.5237238587141638
 32
0.0
 13
0.5237238587141637
 23
0.8518880911326009
 33
0.0
 74
     2
 41
0.0
 41
0.0
 75
     0
 74
     2
 41
-3.5
 41
0.0
 75
     0
  0
ENDSEC

 0
SECTION
  2
ENTITIES
  0
MLINE
  5
BA
330
1F
100
AcDbEntity
  8
0
100
AcDbMline
  2
A1
340
B9
40
1.0
70
     0
71
     1
72
     3
73
     2
10
35.72215267777833
20
18.12241268245447
30
0.0
210
0.0
220
0.0
230
1.0
11
35.72215267777833
21
18.12241268245447
31
0.0
12
0.5957210063666098
22
0.803191435819353
32
0.0
13
-0.8031914358193528
23
0.5957210063666099
33
0.0
74
     2
41
0.0
41
0.0
75
     0
74
     2
41
-3.5
41
0.0
75
     0
11
47.37686045704916
21
33.83607960916133
31
0.0
12
0.8518880911326009
22
-0.5237238587141638
32
0.0
13
-0.1895545449010325
23
0.9818701922898782
33
0.0
74
     2
41
0.0
41
0.0
75
     0
74
     2
41
-4.747891787847025
41
0.0
75
     0
11
68.31743299416129
21
20.96223201465008
31
0.0
12
0.8518880911326009
22
-0.5237238587141638
32
0.0
13
0.5237238587141637
23
0.8518880911326009
33
0.0
74
     2
41
0.0
41
0.0
75
     0
74
     2
41
-3.5
41
0.0
75
     0
  0
ENDSEC

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tôi chỉ biết là 11 là đỉnh, 12 là vector tiếp tuyến, 13 là vector pháp tuyến.

Từ số 11 (xem như điểm) ,13 (xem như góc) và 41 là khoảng cách 2 line có thể suy ra vị trí điểm tương ứng so với điểm 11 của line song song.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Với a là góc hợp bởi điểm 11 này với điểm 11 tiếp theo và phương ngang thì :

(12 (cos a) (sin a) 0)

(13 (cos (+ a pi/2)) (sin (+ a pi/2)) 0)

a tính bằng radian.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

ah cho em hỏi thêm chút nữa là mấy mã 210,220,230 nó quy đinh là có cung tròn nối giữa 2 điểm đầu của 2 đuờng thẳng song song mà khi em tích vào ô outer arc trong phần định nghĩa của mutiline style.em chưa hiểu 3 mã này quy định và tính như nào để xuất hiện được cung tròn đó ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh ơi hình như là cái mã 13 nó là nghịch đảo của mã 12 đó chứ ạ.chằng hạn mã 12 là (x,y,z) thì mã 13 sẽ là (y,x ,z).vì em đo góc trong hình của em trên cad là 53 độ.tính theo công thức trên thì mã 12 là đúng nhưng mã 13 thì ko phải ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thì công thức là :

cos a = sin (a + pi/2)

sin a = -cos(a + pi/2)

Nhớ là góc tính bằng rad, bạn nhập 53 độ rồi bấm máy tính là sai.

 

Còn mã 210,220,230 chỉ liên quan đến UCS , ở đây là (0 0 1) tức ucs world, cái đó chẳng liên quan gì đến arc cả.

Muốn tìm thì bạn tìm dòng

  2 (kiểu mline)
A1 (tên kiểu mline)
340 (đối tượng gốc kiểu mline này)
B9 (tên đối tượng gốc)

 

Sau khi biết tên đối tượng gốc bạn tìm tiếp trong file dxf 

0

MLINESTYLE

5

B9

Tiếp theo là các thông số của kiểu style đó.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh có thể cho em hỏi thêm chút là em muốn xuất một file cad ra dưới dạng đuôi .LIN để nghiên cứu cái LTYPE này trong phần Table section thì làm như nào không ạ anh.e xuất ra từ cad 2007 ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn dùng lisp này.

 

 
(defun C:LaySty(/ file)  
    (setq file (open "LayerStyle.csv" "w"))
    (write-line "sep=," file)
    (write-line "Layer Name,Color,Linetype,Lineweight,PlotStyleName,Description" file)  
    (vlax-for item (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))
       (write-line 
(apply 'strcat (mapcar '(lambda(x) (strcat (vl-princ-to-string
      ((eval (read (strcat "vla-get-" (vl-princ-to-string x)))) item)) ","))
      (list 'Name 'Color 'Linetype 'Lineweight 'PlotStyleName 'Description))) file)
    )
    (write-line "\n" file) 
    (write-line "TextStyle Name,FontFile,BigFontFile,Height,Width,ObliqueAngle" file)
    (vlax-for item (vla-get-TextStyles (vla-get-ActiveDocument (vlax-get-acad-object)))
      (write-line
(apply 'strcat (mapcar '(lambda(x) (strcat (vl-princ-to-string
      ((eval (read (strcat "vla-get-" (vl-princ-to-string x)))) item)) ","))
      (list 'Name 'FontFile 'BigFontFile 'Height 'Width 'ObliqueAngle))) file)      
    )
    (close file)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

1. code 74 báo hiệu có mấy cái code 41 theo sau (ở đây là 2)

2. code 41 chỉ khoảng cách từ dỉnh này đến đỉnh tưng ứng với nó trên đường // .

3. code 75 kết thúc 1 dãy 74-41-75

 

41=-3.5 là kc chuẩn (= bề rộng mline)

41=-4.747891787847025 là kc ngay góc bẻ cua, ta biết chỗ đó có bẻ góc.

 

thường thì 41 mang dấu - vì cad qui định cùng chiều kim đồng hồ là âm.

 

74  2 41 0.0 41 0.0 75  0

74  2 41 -3.5 41 0.0 75 0

...

74  2 41 0.0 41 0.0 75  0

74  2 41 -4.747891787847025 41 0.0 75  0

 

74  2 41 0.0 41 0.0 75  0
74  2 41 -3.5 41 0.0 75 0
11 47.37686045704916 21 33.83607960916133 31 0.0
12 0.8518880911326009 22 -0.5237238587141638 32 0.0
13 -0.1895545449010325 23 0.9818701922898782 33 0.0
74  2 41 0.0 41 0.0 75  0
74  2 41 -4.747891787847025 41 0.0 75  0
11 68.31743299416129 21 20.96223201465008 31 0.0
12 0.8518880911326009 22 -0.5237238587141638 32 0.0
13 0.5237238587141637 23 0.8518880911326009 33 0.0
74 2 41 0.0 41 0.0 75  0
74 2 41 -3.5 41 0.0 75 0
74  2 41 0.0 41 0.0 75  0
74  2 41 -3.5 41 0.0 75 0
11 47.37686045704916 21 33.83607960916133 31 0.0
12 0.8518880911326009 22 -0.5237238587141638 32 0.0
13 -0.1895545449010325 23 0.9818701922898782 33 0.0
74  2 41 0.0 41 0.0 75  0
74  2 41 -4.747891787847025 41 0.0 75  0
11 68.31743299416129 21 20.96223201465008 31 0.0
12 0.8518880911326009 22 -0.5237238587141638 32 0.0
13 0.5237238587141637 23 0.8518880911326009 33 0.0
74 2 41 0.0 41 0.0 75  0
74 2 41 -3.5 41 0.0 75 0
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thường cái đó = 0 , vì là khoảng cách từ điểm 11 (là điểm khi nhấp vào mline hiện lên grip màu xanh) đến cái line offset đầu tiên , thường 2 điểm đó trùng nhau.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ngộ nhỉ , sao mỗi lần mình đọc mấy cái mã của Lísp là lại ngáp ngay..  !?

                                             Không tiếc gì một like cho tinh thần Tot77

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thanks Hanhtinhsaycad !

Thật ra dxf là mã của cad chứ không phải của lisp. File dwg cũng là file dxf dạng đã mã hoá. Khi load file dwg, cad sẽ dựa hoàn toàn trên cái dxf code này để tái tạo lại toàn bộ các đối tượng có trong bản vẽ.

Mấy cái dxf code này chắc chẳng có ai dạy, vì cũng chẳng có ai thèm học làm gì, chỉ có bạn xuanhuong91 chắc đang làm đồ án về mấy cái đó mới phải đi tìm hiểu thôi..

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

dạ vâng em đang làm đồ án về nó anh ạ.hihi.thanks anh rất nhiều ạ.nhưng nếu em thay đổi cái mã 41 âầu tiên đó là +1 thì độ dài đoạn mline đầu sẽ dài thêm 1 đoạn.còn -1 thì đoạn dưới sẽ dài thêm 1 đoạn ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nói chung mã 41 chỉ khoảng cách từ diểm 11 tới đỉnh của 2 đường line (nếu có n đường line thì có n dãy 74,41,75).

Mã 41 đầu là theo phương pháp tuyến, 41 sau là tiếp tuyến. Bạn cứ thay đổi mã dxf rồi load file dxf vào cad để biết sự thay đổi.

 

Polyline còn gọi là heavy polyline là cad đồi cũ hay dùng, nó gồm các vertex (đỉnh) và cuối cùng là seqend.

LWPolyline còn gọi là Lightweigh Polyline là cad bây giờ mặc định hay dùng, nó chỉ chứa các đỉnh (dxf 10) thôi.

Bề ngoài thì 2 cái như nhau nhưng cơ sở dữ liệu thì khác nhau nhiều.LWPoly lưu trữ data nhẹ hơn nên mới đuọc gọi là LW.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh ơi, sau khi chạy lisp xong em ko biết file tạo ra nó ở đâu hết ạ, em có vào search programs and files thử mà cũng không kiếm ra nó ở đâu hết ạ. Giúp em với. Em cám ơn anh nhìu.

Bạn dùng lisp dưới đây, của người nước ngoài viết.

http://www.cadviet.com/upfiles/3/127168_lin.rar

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×