Đến nội dung


Hình ảnh
- - - - -

Hỏi về cách mở nhiều bản vẽ Autocad


  • Please log in to reply
5 replies to this topic

#1 saycaphe

saycaphe

    biết vẽ circle

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

Đã gửi 25 December 2011 - 12:56 PM

Chào các anh.
Em muốn nhờ các anh hướng dẫn viết 1 chương trình bằng VB, để load các bản vẽ vào 1 list, rồi mở các bản vẽ từ list đó. Em mới làm đc load các bản vẽ vào trong 1 list thôi, phần còn lại chưa biết cách giải quyết. Mong đc các anh giúp đỡ

Option Explicit
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdOpen_Click()
Dim strFileNames As Variant
Dim i As Integer
filepath = CommonDialog1.FileName
strFileNames = Split(GetFiles, Chr(0))
With List1
If UBound(strFileNames) > 0 Then
.Clear
'Path is stored in index 0 of array files in index 1...
Label1.Caption = "Files selected from: " & strFileNames(0)
For i = 1 To UBound(strFileNames)
.AddItem strFileNames(i)
Next
Else
.AddItem "(No files selected)"
End If
End With
End Sub
Public Function GetFiles(Optional ByVal sTitle As String = "Open files...") As String
' sTitle: Optional Title of Dialog
Dim sFilenames As String
Dim cdlOpen As Object
On Error GoTo ProcError
' Get the desired name using the common dialog
Set cdlOpen = CreateObject("MSComDlg.CommonDialog")
' set up the file open dialog file types
With cdlOpen
' setting CancelError means the control will
' raise an error if the user clicks Cancel
.CancelError = True
.Filter = "DXF Files (*.dxf)|*.dxf|All Files (*.*)|*.*|Text Files (*.txt)|*.*.txt|INI Files (*.ini)|*.ini|Images (*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif"
.FilterIndex = 1
.DialogTitle = sTitle
.MaxFileSize = &H7FFF ' 32KB filename buffer
' set up Common Dialog flags
' same as .Flags = cdlOFNHideReadOnly Or cdlOFNPathMustExist Or cdlOFNLongNames Or cdlOFNAllowMultiselect or cdlOFNExplorer
.Flags = &H4 Or &H800 Or &H40000 Or &H200 Or &H80000
.ShowOpen
' get the selected name
sFilenames = .FileName
End With
ProcExit:
GetFiles = sFilenames
Set cdlOpen = Nothing
Exit Function
ProcError:
If Err.Number = &H7FF3 Then Resume Next 'Cancel selected - Ignore
MsgBox Err.Description & "(" & Err.Number & ")", vbExclamation, "Open error"
sFilenames = ""
Resume ProcExit
End Function
Private Sub Command1_Click()
End Sub
Private Sub cmdRun_Click()
Dim filepath As String
Dim i As Integer
filepath = CommonDialog1.FileName

With List1
For i = 1 To UBound(filepath)
.AddItem strFileNames(i)
Next
End Sub
Private Sub Form_Load()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
[color=#ff0000] If Err <> 0[/color]
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
End If
AppActivate AcadApp.Caption
AcadApp.Visible = True
End Sub

http://www.mediafire...p8604so8xmdi9sp

cám ơn các anh !
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 26 December 2011 - 08:37 AM

Up up up nhờ các cao thủ chỉ giáo

Cái này với LSP, giải quyết đơn giản, vài dòng là xong!
Bạn viết bài trong topic này thì phải chờ thôi, vì Tue_NV không biết VB :blush:
  • 0

#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5679 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 26 December 2011 - 08:40 AM

Bạn nghiên cứu method Open trong Help Develop ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 saycaphe

saycaphe

    biết vẽ circle

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

Đã gửi 26 December 2011 - 01:07 PM

Cái này với LSP, giải quyết đơn giản, vài dòng là xong!
Bạn viết bài trong topic này thì phải chờ thôi, vì Tue_NV không biết VB :blush:

với Lisp thì làm thế nào để mở nhiều bản vẽ vậy bác?
  • 0

#5 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 26 December 2011 - 03:51 PM

với Lisp thì làm thế nào để mở nhiều bản vẽ vậy bác?


Cái này với LSP, giải quyết đơn giản, vài dòng là xong!
Bạn viết bài trong topic này thì ... chịu thôi :blush:


  • 0

#6 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2646 Bài viết
Điểm đánh giá: 832 (rất tốt)

Đã gửi 26 December 2011 - 05:38 PM

Sao bạn không dùng lệnh OPEN, rồi chọn toàn bộ các file trong thư mục đó?

ACAD sẽ mở lần lượt từng file cho đến lúc nào hết thì thôi.

Nếu thế này thì có một mẹo như sau:

- Tạo 1 file acad.lsp trong thư mục chứa các file DWG với nội dung:

(getstring "\nNhan enter de tiep tuc")
- Tiếp đến, mở tất cả các file trong thư mục đó bằng phím shift hay ctr như đã hướng dẫn.
- Bây giờ, cứ mỗi lần mở 1 file, màn hình sẽ dừng cho đến khi bạn nhấn enter hoặc dấu cách rồi mới mở file kế tiếp.
- Muốn ACAD trở lại bình thường, chỉ đơn giản là xóa (hoặc rename) file acad.lsp là xong.


  • 0

Gió đưa cây cải về trời

Rau răm ở lại chịu lời đắng cay...