Đến nội dung


Hình ảnh
- - - - -

Hỏi về cách chỉnh kiểu Lineweight cho line khi vẽ = vba


  • Please log in to reply
3 replies to this topic

#1 nguyenthaodang

nguyenthaodang

    biết vẽ line

  • Members
  • PipPip
  • 26 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 08 May 2010 - 10:20 PM

em có code đoạn thêm layer như thế này

Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
'Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
' Make the new layer the active layer for the drawing
layerObj.color = acRed
layerObj.Lineweight = acLnWt030

ThisDrawing.ActiveLayer = layerObj

trong đó em để linewight là 30 rồi

nhưng khi mà vẽ = vba vài đường line trên layer này nó lại ko hiện thị đúng độ dày của line

em gà autocad nên ko hiểu vì sao nó lại thế

cảm ơn mọi người giúp đỡ
  • 0

#2 nguyenthaodang

nguyenthaodang

    biết vẽ line

  • Members
  • PipPip
  • 26 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 11 May 2010 - 09:46 AM

nhiều người coi quá mà ko ai giúp em được à! huhu tội e quá
  • 0

#3 nvson

nvson

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 11 May 2010 - 10:09 AM

em có code đoạn thêm layer như thế này

Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
'Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
' Make the new layer the active layer for the drawing
layerObj.color = acRed
layerObj.Lineweight = acLnWt030

ThisDrawing.ActiveLayer = layerObj

trong đó em để linewight là 30 rồi

nhưng khi mà vẽ = vba vài đường line trên layer này nó lại ko hiện thị đúng độ dày của line

em gà autocad nên ko hiểu vì sao nó lại thế

cảm ơn mọi người giúp đỡ


Khi đặt giá trị cho LineWeight thì trên bản vẽ không nhìn thấy.
Nhưng khi in nếu bạn vào sửa lại file *.ctb (nhấn vào nút Edit trong hộp thoại Plot), đặt lineweight của các màu là "Use object lineweight" thì bản vẽ in ra sẽ có độ dày như bạn đã đặt.
  • 0

#4 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 11 May 2010 - 11:07 AM

em có code đoạn thêm layer như thế này

Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
'Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
' Make the new layer the active layer for the drawing
layerObj.color = acRed
layerObj.Lineweight = acLnWt030

ThisDrawing.ActiveLayer = layerObj

trong đó em để linewight là 30 rồi

nhưng khi mà vẽ = vba vài đường line trên layer này nó lại ko hiện thị đúng độ dày của line

em gà autocad nên ko hiểu vì sao nó lại thế

cảm ơn mọi người giúp đỡ

Đọan code của bạn mới tạo Layer "Khung_lo" với thuộc tính Lineweight = acLnWt030.
Có thể do biến hệ thống CELWEIGHT đuợc đặt khác ByLayer nên khi vẽ = vba vài đường line trên layer này nó lại ko hiện thị đúng độ dày của line

Để các đối tuợng vẽ trên Layer này có độ dày (Lineweight) = độ dày thiết lập trên Layer "Khung_lo", cần thiết lập biến hệ thống CELWEIGHT = -1 (ByLayer)

ThisDrawing.SetVariable "CELWEIGHT", -1

Hoặc bạn đặt tỉ lệ hiển thị Lineweight nhỏ. tham khảo : http://www.cadviet.c...o...ost&p=43404

CODE :
Public Sub VD1()

Dim lineObj As AcadLine
Dim startPoint As Variant
Dim endPoint As Variant
Dim layerObj As Object

Set layerObj = ThisDrawing.Layers.Add("Khung_lo")
layerObj.color = acRed
layerObj.Lineweight = acLnWt030
ThisDrawing.ActiveLayer = layerObj

ThisDrawing.SetVariable "CELWEIGHT", -1

' Ve line qua 2 diem
startPoint = ThisDrawing.Utility.GetPoint(, "Enter a first point: ")
endPoint = ThisDrawing.Utility.GetPoint(, "Enter a second point: ")
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)

ThisDrawing.SetVariable "LWDISPLAY", 1

End Sub
  • 0