Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
emhn

AutoCAD với Excel

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

nhocbabi    3

ai ơi cho mình xin file lisp để chuyển số liệu thống kê từ autocad sang excel với. Mình cop doạn mã về nhưng mà không dùng được! thank nhiều (mình thống kê bằng bcount nhé)

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
cutrangem    4
Dạ e đi đo mặt bằng, nhập điểm lập bình đồ. Nếu đo bằng máy kinh vĩ thì chỉ có khoảng cách và góc quay so với mốc chuẩn thôi bác ạ. Còn nếu đo bằng máy toàn đạc có tọa độ X,Y,Z thì họ cũng đổ vào excel khi giao cho e. Ngồi nhập từng điểm 1 thì lâu quá. Mong bác chỉ cho.

 

mình nghĩ cũng không cần dùng lisp. Có một thủ thuật để vẽ ra các điểm và ghi tên cho điểm đó trong cad trực tiếp từ excell.

Cách trình bày số liệu trong file excell như trong file excell mà mình up.

Ví dụ bạn muốn vẽ một điểm thì phải có một dòng excell như sau:

 

point (x,y,z)

 

copy cái dòng này trong excell dán vào trong cad (con chuột ở dòng command đang nhấp nháy thì dán), cad sẽ tự vẽ ra các điểm đó.

 

khi ghi text cũng như thế, cách trình bày một bảng excell như sau:

 

text toạ độ text chiều cao text góc quay của text tên của điểm

 

nhớ là khi ghi text thì các dòng excell phải cách nhau một dòng trống.

Cad 2004 chạy rất ổn định, bạn thử coi sao nhé.

Chú ý chỉ copy phần chữ màu xanh trong file excell mình up thôi nha.

 

http://www.cadviet.com/upfiles/toado_1.xls

  • 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

Tôi muốn lấy số liệu từ cad, những giá trị nằm trong bảng khổi lượng ở cột S,L,B rồi nhập vào bảng Excel. Nhờ các bác giúp mình với. mình có xin bên mục viết cad theo yêu cầu mà được cái lisp không đúng ý lắm. nó lại không sắp sếp đúng vị trí,

Các bác giúp mình nhé!

http://www.cadviet.com/upfiles/Km090_Km0430sua.xls

http://www.cadviet.com/upfiles/KM0_KM0430.dwg

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
HIELA    1

Khi chạy chương trình trong AutoCad đọc dữ liệu từ Excel thường hay bị Virut phá files dữ liệu trong Excel . Đôi khi phải định dạng lại dữ liệu mới chạy được . Bạn nào có kinh nghiệm diệt loại virút này xin hãy chia sẻ . Xin cảm ơ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
HoangSon614    66
Tôi muốn lấy số liệu từ cad, những giá trị nằm trong bảng khổi lượng ở cột S,L,B rồi nhập vào bảng Excel. Nhờ các bác giúp mình với. mình có xin bên mục viết cad theo yêu cầu mà được cái lisp không đúng ý lắm. nó lại không sắp sếp đúng vị trí,

Các bác giúp mình nhé!

http://www.cadviet.com/upfiles/Km090_Km0430sua.xls

http://www.cadviet.com/upfiles/KM0_KM0430.dwg

Bạn thử lisp này xem thế nào cho ý kiến (XLD)

Đây bạ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
HIELA    1
Tôi muốn các bạn chia sẽ cách nhập và xuất số liệu giữa Autocad và Excel, được viết bằng ngôn ngữ AutoLISP. nếu được có thể cho xem ví dụ mẫu.

Cám ơn.

Tôi đã viết mã đọc files Excel trực tiếp từ AutoCad bằng ngôn ngữ AutoLISP . Chương trình chạy tốt trên Excel200, 2002,2003 còn Excel 2007 tôi chưa thử . Còn AutoCad đã chạy trên Cad 2000,2002,2004,các bản khác chưa dùng.

Tôi đã sử dụng đối tượng ActiveX trong AutoLISP để đọc dữ liệu trong files Excel (đối tượng ActiveCell)

Đọan mã ví dụ :

 

(defun docdulieuexcell ()

(vl-load-com)

(goiExcell)

(setq dochang 1)

(setq i 1 j 2) ; i=hang j=cot

(setq stop 0)

(while (= stop 0)

(while (= dochang 1)

(setq congthuc (strcat "=R["(itoa (- i 1))"]C["(itoa (- j 1))"]")) ; ghép công thức tính ô theo hàng cột

(msep-put-FormulaR1C1 cell congthuc)

(setq caodo (vlax-get cell 'value)) ;;; Biến caodo được gán từ thuộc tinh Value của biến cell

;;;;;;;;;;;;;;;; V.V.V

(setq j (+ j 1))

) ;_dong while 2

(setq i (+ i 1))

);_dong while 1

)

;;;;;;;;;;;;;;;;;;;;;;

(defun goiExcell ()

(setq Excell1 "Excel.Application.11")

(setq Excell2 "C:\\Program Files\\Microsoft Office\\Office11\\EXCEL.EXE");;; Đường dẫ thư viện Excel 2003

(vlax-import-type-library

:tlb-filename Excell1

:methods-prefix "msem-"

:properties-prefix "msep-"

:constants-prefix "msec-"

)

(setq mse (vlax-get-object Excell2))

(setq mse (vlax-get-object Excell2))

(if (equal nil mse)

(progn

(setq mse (vlax-create-object Excell2))

(vla-put-visible mse :vlax-true)

)

)

(setq cell (vlax-get-property mse 'ActiveCell)) ;;; Biến cell được gán giá trị từ ô hiện hành

)

--------------------------------

Nguyên lý cơ bản là truy cập vào ô hiện hành của Excel . Sau đó gán giá tri cho ô hiện hành bằng các ô còn lại theo công thức R ,C (hàng cột) từ đó bạn có thể truy cập toàn bộ bảng tính Excel mà không cần dịch chuyển ô hiện hành (không cần khai báo chi tiết từng ô). Dùng 2 vòng lặp While để tính giá trị các ô ... Sử dụng phương thức này để vẽ bình đồ trong trắc địa , vẽ cắt dọc ngang kênh mương ,đường giao thông ,vẽ cắt ngang tường hoặc làm công việc mả bạn phải đọc dữ liệu theo hàng cột sẽ rất thuận tiện . Còn nhiều vấn đề phải giả quyết tôi không viết hết được trong một bài . Nếu các bạn còn quan tâm đến vấn đề này hãy lên tiếng chúng ta sẽ thảo luận thêm sau .

Chúc vui !

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
duongsatdn    762
Khi chạy chương trình trong AutoCad đọc dữ liệu từ Excel thường hay bị Virut phá files dữ liệu trong Excel . Đôi khi phải định dạng lại dữ liệu mới chạy được . Bạn nào có kinh nghiệm diệt loại virút này xin hãy chia sẻ . Xin cảm ơn !

Bạn dùng thử chương trình này để giải quyết vụ virus trong file Excel:

http://www.mediafire.com/?zzm1mmf2m3i

  • 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
HIELA    1
Cám ơn bạn, mình sẽ xem lại sau. Cái này cũng khá lôi thôi!

Bạn nào có office khác test thêm giúp.

---------------------

Theo tôi bạn nên viết lệnh truy câp vô Registry kiểm tra xem người dùng cài phiên bản nào của Excel sau đó khai báo phiên bản và đường dẫn thư viện tương ứng sẽ giải quyết được vấn đề.

 

Cách 2 :khi chạy chương trình lần đầu bạn tạo hộp thọai hỏi ngươi dùng cài phiên bản nào của Excel ...từ đó bạn có được phiên bản và đường dẫn thư viện tương ứng .Người dùng có thể sử dụng hộp thoại nảy để khai báo lại khi cài phiên bản office khác

 

Chúc vui !

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
HIELA    1
Visual Lisp và ActiveX Automation

 

Lisp có những ưu thế tuyệt vời khi làm việc với Acad:

- Dễ dàng tạo các đối tượng Acad cũng như truy xuất dứ liệu từ chúng

- Gọi command của Acad rất đơn giản và tự nhiên như "người trong nhà"

- Các lệnh được tạo bằng lisp được Acad "đối xử bình đẳng" như các lệnh chính thống v.v…

Bên cạnh các ưu điểm trên, nhược điểm lớn nhất của Lisp là khả năng giao tiếp với bên ngoài rất hạn chế. Lâu nay, để truy xuất dữ liệu từ Excel, mình vẫn thường phải qua 1 trong 2 dạng file trung gian *.txt (Tab delimited - phân biệt các field bằng ký tự Tab) và *.csv (Comma delimited - phân biệt các field bằng dấu phẩy).

Nhược điểm này có thể khắc phục được bằng cách dùng ActiveX Automation.

Tổng quan về ActiveX, xin được trích dẫn Help:

 

"ActiveX Automation is a new way to work programmatically with the contents of an AutoCAD drawing. In many instances, ActiveX works faster than traditional AutoLISP functions in manipulating AutoCAD drawing objects.

The ActiveX programming interface is usable from a number of languages and environments, such as C++, Visual BasicTM, and DelphiTM. When you work with ActiveX objects in AutoLISP, you work with the same object model, properties, and methods that can be manipulated from other programming environments."

 

Translation:

ActiveX Automation là một phương pháp mới để lập trình với AutoCAD. Trong nhiều trường hợp, ActiveX làm việc nhanh hơn các hàm AutoLisp truyền thống trong việc xử lý các đối tượng AutoCAD.

ActiveX có thể dùng được với một số ngôn ngữ và môi trường lập trình như C++, VB và Delphi. Khi làm việc với ActiveX trong AutoLisp, bạn thao tác với Objects – Properties – Methods giống như trong những môi trường lập trình nói trên.

 

Visual Lisp cung cấp một số hàm dạng vlax-xxxx để làm việc với ActiveX. Thực tế là từ trước đến nay, bản thân mình cũng chưa có điều kiện nghiên cứu sâu về chúng. Khó khăn lớn nhất là không có tài liệu, ngay cả Help của Acad cũng hướng dẫn sơ sài. Tuy chưa biết nhiều, nhưng mình thấy mảng này khá hay. Làm chủ được nó, chúng ta có thể dùng Lisp truy xuất dữ liệu trực tiếp từ các ứng dụng khác (Excel là 1 ví dụ), không phải "nhiêu khê" như trước nữa.

 

Một ví dụ minh họa để các bạn thử nghiệm:

(defun C:GED();;;Get Excel Data
(vl-load-com)
(setq
ex (vlax-get-object "Excel.Application")
sl (vlax-get-property ex 'selection)
txtvr (vlax-get-property sl 'text)
txt (vlax-variant-value txtvr)
ir (vlax-get-property sl 'row)
ic (vlax-get-property sl 'column)
)
(alert
(strcat
	"\nContent: " txt
	"\nColumn: " (chr (+ ic 64))
	"\nRow: " (itoa ir)
)
)
)

Trình tự thử:

- Appload đoạn lisp trên

- Khởi động Excel, open 1 file *.xls nào đó

- Pick chọn 1 cell bất kỳ (có chứa dữ liệu để kiểm tra)

- Sang Acad, gõ lệnh GED để thử

Kết quả: 1 message_box ghi thông tin về nội dung, chỉ số cột và hàng của cell mà bạn đã chọn.

 

Đặt vấn đề:

1) Đã lấy được dữ liệu của 1 cell thì tất nhiên sẽ lấy được dữ liệu của cả sheet, và đã import được thì tất nhiên cũng export được. Bằng cách nào thì mời các bạn có hứng thú với cái này "ngâm cứu" tiếp. Trước mắt, chỉ cần lấy được dữ liệu của một vùng được selected trong bảng Excel đang hiện hành (ví dụ như B3:F17 chẳng hạn) là đã ứng dụng được cho khối việc rồi.

2) Các thao tác trên hoàn toàn không dùng đến kho libraries của bất cứ trình ứng dụng nào. Phải nhờ vả đến "đám" này rất là phiền toái vì sự không tương thích giữa các version. Nếu phải dùng đến libraries, khi người ta nâng cấp version của Excel, rất nhiều khả năng chương trình của chúng ta sẽ không chạy được. Bản thân ssg ít thích dùng VB chính vì nó phụ thuộc vào các libraries quá nhiều!

Để khẳng định điều này, ssg nhờ các bạn kiểm tra giúp xem đoạn lisp trên có làm việc được với mọi version của AutoCAD cũng như Excel hay không? Ssg đã thử với Cad2002, Cad2007 và Excel2003, kết quả OK.

3) Các bạn thường lập trình với VB và ActiveX có kinh nghiệm hoặc tài liệu gì (tiếng Việt hoặc tiếng Anh đều tốt) về vấn đề này xin được chia sẻ.

 

Cám ơn tất cả các bạn,

 

----------------------------

Xin có một góp ý nhỏ :

Trong lệnh :

 

(setq

ex (vlax-get-object "Excel.Application")

 

 

Nếu bạn khai báo cụ thể hơn về phiên bản của Excel :

cho đối tượng Excel.Application

 

Excel 2000 "Excel.Application.9"

Excel 2002 "Excel.Application.10"

Excel 2003 "Excel.Application.11"

Excel 2007 "Excel.Application.12"

 

Thì sẽ tránh được những lỗi có thể gặp phải về phiên bản Excel.

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
HIELA    1

Truy cập vô Registry tìm phiên bản Excel

(Setq ex1 (vl-registry-read "HKEY_CLASSES_ROOT\\Excel.Template\\shell\\New\\command" ""))

(setq ex1 (substr ex1 2 100))

(setq Thuvien (vl-string-right-trim "\" /e" ex1)) ;;; Đường dẫn thư viện Excel

(Setq phienban (vl-registry-read "HKEY_CLASSES_ROOT\\Excel.Application\\CurVer" "")) ;;; Đối tượng Excel.Application...

 

Bạn hãy thử xem .

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
HIELA    1

Xin files dữ liệu kết quả đo của máy toàn đạc

 

Tôi không có điều kiện tiếp cận với mày toàn đạc . Bạn nào có files kết quả đo của máy tòan đạc chia sẻ cho tôi . Cảm ơ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
DTCAT    1

Chao cac bac!E la thanh vien moi toe!Xin cac bac chi bao giup!Hien e dang co Lisp co đuổi dạng *.fas; em muốn tìm hiểu cấu trúc bên trong của Lisp mà không thể mở được. Có bác nào có cách chuyển về *.lsp được không?E đang cần, rất cầ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
pdhuyxn2    4

Chào các cao thủ : xin các cao thủ viết hộ 1 lisp.

File dữ liệu ở excel gồm 500 hàng mỗi hàng 1 cell chứ dữ liệu text: " Hài, Hoa, Vin"...cho đến dòng 500 " huy, Vinh, Ngoc, Hoa".

Kết quả ở file cad khi pick điểm 1 thì kết quả sẽ chuyển text từ file excel theo theo lần lượt pích 1 "Hài, Hoa, Vin" Cho đến điểm pick 500 "Huy, Vinh, Ngọc, Hoa".

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
gia_bach    1.442
Chào các cao thủ : xin các cao thủ viết hộ 1 lisp.

File dữ liệu ở excel gồm 500 hàng mỗi hàng 1 cell chứ dữ liệu text: " Hài, Hoa, Vin"...cho đến dòng 500 " huy, Vinh, Ngoc, Hoa".

Kết quả ở file cad khi pick điểm 1 thì kết quả sẽ chuyển text từ file excel theo theo lần lượt pích 1 "Hài, Hoa, Vin" Cho đến điểm pick 500 "Huy, Vinh, Ngọc, Hoa".

Bạn chạy thử Lisp AddText : xuất ra CAD theo thứ tự từ cell A2, A3, ... An tại vị trí nhập.

 

Link Download

Sau khi giải nén, nhớ copy file data1.xls vào thư mục gốc của ổ C.

Cách cập nhật dữ liệu : open file data1.xls và thay thế dữ liệu từ cell A2, A3, ... An

cell A1 không xuất ra CAD.

Tham khảo : http://www.cadviet.com/forum/index.php?showtopic=16490

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
pdhuyxn2    4
Bạn chạy thử Lisp AddText : xuất ra CAD theo thứ tự từ cell A2, A3, ... An tại vị trí nhập.

 

Link Download

Sau khi giải nén, nhớ copy file data1.xls vào thư mục gốc của ổ C.

Cách cập nhật dữ liệu : open file data1.xls và thay thế dữ liệu từ cell A2, A3, ... An

cell A1 không xuất ra CAD.

Tham khảo : http://www.cadviet.com/forum/index.php?showtopic=16490

Chỉ cần Pick từ điểm 1 nó sẽ chuyển text lần lượt theo danh sách vùng mỗi điểm pick là 1 cell lần lượt từ 1 đến 500 bạ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
Phiphi-    175
Sub sau sẽ tự động load những lisp trong Selection vào bản vẽ acad đang mở

Private Sub CommandButton1_Click()
 Dim acad As AcadApplication, doc As AcadDocument
 Dim s$,  cell
 Set acad = GetObject(, "AutoCAD.Application")

 If Err <> 0 Then
  Exit Sub
 End If

 acad.Visible = True
 Set doc = acad.ActiveDocument
 For Each cell In Selection.Cells
s = cell.Value & vbCr
doc.SendCommand (s)
 Next
End Sub

Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:

+ Lệnh "Option 1" chọn cell A3:A50

+ Lệnh "Option 2" chọn cell B3:B50

+ Lệnh "Option 3" chọn cell C3:C50

+ Lệnh "Option 4" chọn cell D3:D50

Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.

Trong file này chỉ có 1 ô lệnh Xuat sang ACAD

Cám ơn Bác nhiều.

 

http://www.cadviet.com/upfiles/2/xuat_command.zip

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
pdhuyxn2    4
Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:

+ Lệnh "Option 1" chọn cell A3:A50

+ Lệnh "Option 2" chọn cell B3:B50

+ Lệnh "Option 3" chọn cell C3:C50

+ Lệnh "Option 4" chọn cell D3:D50

Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.

Trong file này chỉ có 1 ô lệnh Xuat sang ACAD

Cám ơn Bác nhiều.

 

http://www.cadviet.com/upfiles/2/xuat_command.zip

Vị trí text tại cell chuyển sang cad lần lượt theo điểm pick chứ không phải là toạ độ x,y " Pick mỗi điểm trên mặt bản vẽ và suất text từ hàng cell từ excel sang lần lượt từ ô A1 đến ô A500.

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
Phiphi-    175
Vị trí text tại cell chuyển sang cad lần lượt theo điểm pick chứ không phải là toạ độ x,y " Pick mỗi điểm trên mặt bản vẽ và suất text từ hàng cell từ excel sang lần lượt từ ô A1 đến ô A500.

Bác hơi bị nhầm với vấn đề khác rồi.

Tuy nhiên cũng rất cám ơn Bác đã trả lời. Cheers!

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
gia_bach    1.442
Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:

+ Lệnh "Option 1" chọn cell A3:A50

+ Lệnh "Option 2" chọn cell B3:B50

+ Lệnh "Option 3" chọn cell C3:C50

+ Lệnh "Option 4" chọn cell D3:D50

Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.

Trong file này chỉ có 1 ô lệnh Xuat sang ACAD

Cám ơn Bác nhiều.

 

http://www.cadviet.com/upfiles/2/xuat_command.zip

Chào Phiphi

Sáng nay đọc bài của Phiphi rồi nhưng trên Cty không có Office nên đành chịu.

 

Đây là file Excel có 3 ô lệnh :

- Xuat sang ACAD : xuất sang Acad cel A3:A5

- Xuat sang ACAD B3:B50 : xuất sang Acad cel B3:B5

- Xuat sang ACAD C3:C50 : xuất sang Acad cel C3:C5

 

Chú ý : chỉ xuất 3 cell đầu tiên của cột sang CAD.

Bác có thể vào vào Visual Basic Editor sửa lại cho phù hợp với công việc, cũng đơn giản thôi.

"Option 4" tui để dành cho bác "ngâm cứu."

Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

 

Link file Excel

  • 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
Phiphi-    175
Chào Phiphi

Sáng nay đọc bài của Phiphi rồi nhưng trên Cty không có Office nên đành chịu.

 

Đây là file Excel có 3 ô lệnh :

- Xuat sang ACAD : xuất sang Acad cel A3:A5

- Xuat sang ACAD B3:B50 : xuất sang Acad cel B3:B5

- Xuat sang ACAD C3:C50 : xuất sang Acad cel C3:C5

 

Chú ý : chỉ xuất 3 cell đầu tiên của cột sang CAD.

Bác có thể vào vào Visual Basic Editor sửa lại cho phù hợp với công việc, cũng đơn giản thôi.

"Option 4" tui để dành cho bác "ngâm cứu."

Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

 

Link file Excel

Chào Gia_bach. Cũng xài cùng 1 file Excel này trên 1 PC, nhưng khi mở các file CAD khác nhau để thử. Sau khi click vào các nút lệnh thì có bản CAD vẽ ra các Text đọc bình thường nhưng cũng có b/v khác thì Text vẽ ra không đọc được vỉ bị xoay 90 độ hướng đứng. Vậy dùng biến gì để set up b/v CAD luôn xuất ra Text nằm ngang. Thanks you.

 

http://www.cadviet.com/upfiles/2/textxoay.zip

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
Tue_NV    3.841
Chào Gia_bach. Cũng xài cùng 1 file Excel này trên 1 PC, nhưng khi mở các file CAD khác nhau để thử. Sau khi click vào các nút lệnh thì có bản CAD vẽ ra các Text đọc bình thường nhưng cũng có b/v khác thì Text vẽ ra không đọc được vỉ bị xoay 90 độ hướng đứng. Vậy dùng biến gì để set up lại b/v dể CAD luôn xuất ra Text nằm ngang. Thanks you.

textbixoay.jpg

 

textok.jpg

Cái này do trong mã lệnh mà Phiphi post thì Text nó bị xoay 90 độ hướng đứng đó

Ví dụ :

(Command "text" "J" "BL" "254,-460,0" "18" "90" "MEMBER DESCRIPTION")

 

Còn biến hệ thống để thiết lập Text luôn nằm ngang (0 độ) là biến Angbase. Phiphi thiết lập cho biến này giá trị bằng 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
Phiphi-    175
Cái này do trong mã lệnh mà Phiphi post thì Text nó bị xoay 90 độ hướng đứng đó

Ví dụ :

(Command "text" "J" "BL" "254,-460,0" "18" "90" "MEMBER DESCRIPTION")

 

Còn biến hệ thống để thiết lập Text luôn nằm ngang (0 độ) là biến Angbase. Phiphi thiết lập cho biến này giá trị bằng 0

Dòng lệnh trên PP biết là dùng 90 độ khi viết các command đó.

Trong 2 file CAD đã post ở bài trên. Hình như còn có gì nữa vì để có Text đọc được thì 1 file Text bi xoay phải set 270 độ

Còn file Text OK thì set 90 độ. Bác Tue_NV xem giúp nhé. Thk.

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
Tue_NV    3.841
Dòng lệnh trên PP biết là dùng 90 độ khi viết các command đó.

Trong 2 file CAD đã post ở bài trên. Hình như còn có gì nữa vì để có Text đọc được thì 1 file Text bi xoay phải set 270 độ

Còn file Text OK thì set 90 độ. Bác Tue_NV xem giúp nhé. Thk.

Biến angdir = 0 thiết lập góc quay + ngược chiều kim đồng hồ

Biến angdir = 1 thiết lập góc quay + thuận chiều kim đồng hồ

 

Còn biến hệ thống Angbase = 0 để thiết lập Text luôn nằm ngang 0 độ (song song với trục OX)

 

file bản vẽ Text OK của Phiphi :

Biến Angdir = 1 => thiết lập góc quay + thuận chiều kim đồng hồ

Biến Angbase = 90 => thiết lập góc (0 độ) của Text hợp với trục Ox 1 góc 90 độ

 

file bản vẽ Textxxoay của Phiphi :

Biến Angdir = 0 thiết lập góc quay + ngược chiều kim đồng hồ

Biến Angbase = 0 => thiết lập góc (0 độ) của Text hợp với trục Ox 1 góc 0 độ (hay song song với trục Ox)

 

Phiphi xem lại 2 biến này và ngẫm nghĩ -> sẽ giải thích được vấn đề của phiphi

Chúc thành công :undecided:

  • 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
Phiphi-    175

Thanks Tue_NV.

Vậy thì chỉ cần thêm 2 dòng này sẽ OK:

(command "angdir" "1")

(command "angbase" "0")

Tất cả Text sẽ set ở O độ

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
Tue_NV    3.841
Thanks Tue_NV.

Vậy thì chỉ cần thêm 2 dòng này sẽ OK:

(command "angdir" "1")

(command "angbase" "0")

Tất cả Text sẽ set ở O độ

Cái này có ý nghĩa tương đối thôi Phi phi. Nó tuỳ thuộc vào ý đồ lập trình của User

Tức là chữ OK của Phiphi mang 1 ý nghĩa tương đối.

 

Cái chính gốc là bạn phải nắm vững bản chất của nó. OK?

 

Chúc vui vẻ.

  • 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

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


×