Đến nội dung


Hình ảnh

thắc mắc về DXF


  • Please log in to reply
26 replies to this topic

#1 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 16 June 2014 - 04:16 PM

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


  • -1

#2 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 16 June 2014 - 06:23 PM

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.


  • 0

#3 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 June 2014 - 09:23 AM

anh có thể cho em hỏi chút nữa là mã 12 và 13 được tính như nào không ạ cơ.em xin cảm ơn ạ


  • 0

#4 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 June 2014 - 09:35 AM

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.


  • 0

#5 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 June 2014 - 10:48 AM

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 đó ạ


  • 0

#6 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 June 2014 - 11:47 AM

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 ạ


  • 0

#7 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 June 2014 - 12:01 PM

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 đó.


  • 0

#8 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 17 June 2014 - 12:36 PM

trên anh biết là +a pi/2 lên e nhâm :D.giờ thì em đã rõ.thanks anh nhiều ạ


  • 0

#9 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 18 June 2014 - 09:38 PM

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 ạ


  • 0

#10 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 19 June 2014 - 08:00 AM

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

http://www.cadviet.c.../127168_lin.rar


  • 0

#11 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 19 June 2014 - 09:48 AM

em cảm ơn anh nhiều ạ


  • 0

#12 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 20 June 2014 - 06:18 PM

anh cho em hỏi thêm em muốn nghiêm cứu thêm về layer và style trong phần table section thì em nên xuất file cad ra dạng nào để nghiên cứu có dk không ạ


  • 0

#13 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 21 June 2014 - 10:33 PM

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)
)

  • 0

#14 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 21 June 2014 - 11:19 PM

thanks anh ạ :D


  • 0

#15 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 29 June 2014 - 10:05 PM

anh cho em hỏi thêm chút là trong đoạn code trên các mã 74, 41, 75 có ý nghĩa gì và tại sao nó lặp lại liên tục như thế vs ạ.


  • 0

#16 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 30 June 2014 - 08:30 AM

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

  • 1

#17 xuanhuong91

xuanhuong91

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 30 June 2014 - 09:53 AM

The vay may cai ma 41 ma no co gia tri la 0 thj dk hieu the nao a anh
  • 0

#18 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 30 June 2014 - 10:33 AM

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.


  • 0

#19 Hantinhsaycad

Hantinhsaycad

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 1073 Bài viết
Điểm đánh giá: 376 (khá)

Đã gửi 30 June 2014 - 10:33 AM

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


  • 0

Đừng để một ai chẳng nhận được gì khi rời chỗ bạn, cho dù bạn biết rằng không bao giờ gặp lại.

Ngạn ngữ Pháp


#20 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 30 June 2014 - 11:20 AM

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..


  • 0