Đến nội dung


Hình ảnh
- - - - -

Đường dẫn Block


  • Please log in to reply
7 replies to this topic

#1 digitalwall

digitalwall

    Chưa sử dụng CAD

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

Đã gửi 01 May 2011 - 04:36 PM

Chào các anh!
Em có viết bằng vba chèn block vào bản vẽ. Tạo mỗi block là 1 bản vẽ cad. Sau đó em cho vào 1 foder và dán đường dẫn vào đoạn code để chèn block. Em muốn hỏi là đường dẫn của em là đường dẫn cứng nên nếu dùng máy em thì dc sang máy người khác thì lại phải cop block vào thư mục mà mình viết trong code. Bây giờ muốn viết đường dẫn để cop sang máy nào cũng chạy hết ko cần phai cop block vào đường dẫn cũ thì làm cách nào ạ. Mong các anh chỉ dẫn ạ!
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 May 2011 - 05:03 PM

Kiểu gì bạn cũng phải cho nó vào đâu đó. Đơn giản là không thể chèn cái không có được ^^
Bạn có thể thay đường dẫn cố định bằng đường dẫn động, có thể là dvb path của bạn => copy file Block kèm theo marco
  • 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


#3 digitalwall

digitalwall

    Chưa sử dụng CAD

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

Đã gửi 01 May 2011 - 09:18 PM

@ketxu: anh có thể nói rõ hơn cho em biết cách tạo đường dẫn động dc ko ạ. Em cho nó vào foder co dg dẫn là:C:\Program Files\Autodesk\Blocks. Mỗi lần viết code để chèn 1 block vào lại phải khai báo dg dẫn này vao rất bất tiện. Bác nào biết có cách nào hay chỉ cho em với.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 May 2011 - 11:50 PM

@ketxu: anh có thể nói rõ hơn cho em biết cách tạo đường dẫn động dc ko ạ. Em cho nó vào foder co dg dẫn là:C:\Program Files\Autodesk\Blocks. Mỗi lần viết code để chèn 1 block vào lại phải khai báo dg dẫn này vao rất bất tiện. Bác nào biết có cách nào hay chỉ cho em với.

Đầu tiên bạn vào Tool để Add reference : 'Microsoft Visual Basic for Applications Extensibility 5.3'
Sau đó tạo 1 function đại loại như sau :
Function DVBPath() As String
Dim objVBE As VBE
Dim strTemp$
Dim n As Integer
n = 1
Set objVBE = Application.VBE
DVBPath = objVBE.ActiveVBProject.FileName
strTemp = DVBPath
Do Until n = 0
n = InStr(1, strTemp, "\")
strTemp = Right(strTemp, Len(strTemp) - n)
Loop
DVBPath = Left(DVBPath, Len(DVBPath) - Len(strTemp))
End Function
Bây giờ bạn cop hêt file thư viện của bạn vào chung 1thư mục với file project DVB (hoặc 1 thư mục con)
=> Mỗi lần chèn Block, đường dẫn sẽ bằng DvbPath & "/Tên thư mục con" (nếu có) & tên file.DWG
Gọi là động vì mỗi lần chạy sub, nó sẽ sinh ra 1 đường dẫn tương ứng với đường dẫn file VBA của bạn đang nằm.
  • 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


#5 Detailing

Detailing

    biết lệnh imageclip

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

Đã gửi 25 May 2011 - 08:29 AM

Chào các anh!
Em có viết bằng vba chèn block vào bản vẽ. Tạo mỗi block là 1 bản vẽ cad. Sau đó em cho vào 1 foder và dán đường dẫn vào đoạn code để chèn block. Em muốn hỏi là đường dẫn của em là đường dẫn cứng nên nếu dùng máy em thì dc sang máy người khác thì lại phải cop block vào thư mục mà mình viết trong code. Bây giờ muốn viết đường dẫn để cop sang máy nào cũng chạy hết ko cần phai cop block vào đường dẫn cũ thì làm cách nào ạ. Mong các anh chỉ dẫn ạ!

Thấy hơi trễ nhưng cũng trả lời cho bạn nào vào sau xem.
Copy hết mấy file Block đó vào supported path của AutoCAD, hoặc tạo support path đến folder chứa block, trong code ko cần dùng path.
Support path tìm ở đây:

Hình đã gửi

  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#6 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 25 May 2011 - 09:19 AM

Thấy hơi trễ nhưng cũng trả lời cho bạn nào vào sau xem.
Copy hết mấy file Block đó vào supported path của AutoCAD, hoặc tạo support path đến folder chứa block, trong code ko cần dùng path.
Support path tìm ở đây:

Tuy bạn trả lời trễ nhưng ... vẫn không đúng với yêu cầu của chủ topic :D
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#7 Detailing

Detailing

    biết lệnh imageclip

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

Đã gửi 25 May 2011 - 09:49 AM

Tuy bạn trả lời trễ nhưng ... vẫn không đúng với yêu cầu của chủ topic :D

hihi,
thắc mắc của chủ topic là làm sao để copy Block vào máy khác vẫn chạy dc mà ko sửa path trong code -> đừng để path trong code. Muốn vậy thì chép các file Block (bắt buộc phải chép) vào 1 trong support path là dc.
Chỉ là 1 cách thôi, đơn giản dễ dùng. Cách này có 1 ưu điểm là file Block đó có thể được gọi từ nhiều project khác nhau. nếu tự sinh path lúc runtime thì 2 project nằm ở 2 đường dẫn khác nhau sẽ phải có 2 bộ Block khác nhau nằm kèm theo -> dễ bị lỗi khi bạn sửa Block bên này mà lại quên sửa (paste) Block bên kia Hình đã gửi.
Thân!


  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#8 nghiautc

nghiautc

    biết lệnh copy

  • Members
  • PipPipPip
  • 112 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 25 May 2011 - 03:41 PM

Hoàn toàn đồng ý với phamngoctukts,ý kiến của ketxu hợp với câu hỏi trên.
  • 0