Đến nội dung


Hình ảnh

Làm sao dể tự động kết nối 1 bản vẽ text sang 2(nhiều) bản vẽ khác


  • Please log in to reply
58 replies to this topic

#21 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 03 September 2010 - 01:39 PM

Trước tiên để giải quyết từng bước , bước đầu tiên nhờ các bạn viết cho 1 chương trình đọc từng dòng text trên bản vẽ 1 tự động xuát ra thành 1 file có tên lần lượt là ghichu1,ghichu2....n.Tương đương số dòng ta sẽ có n bản vẽ .Các dòng này nằm trên bản vẽ gốc có thể là tọa độ bát kỳ nhưng sang bản vẽ mới có tọa độ là 0,0.
Cảm ơn.

Đoạn này như sau:
(Defun C:XRT ( )
(setq SS (ssget "x" '((0 . "TEXT"))))
(setq i 0)
(setq N (sslength ss))
(while (< i N)
(setq TEXTENT (ssname SS i))
(setq DTT (entget TEXTENT))
(setq diemchen (cdr (assoc 10 DTT)))
(setq tenchen (strcat (getvar "dwgprefix") "ghichu" (itoa (+ i 1))))
(command "ucs" "object" textent)
(command "_wblock" tenchen "y" "" diemchen textent "" "_oops")
(command "ucs" "p")
(setq i (1+ i))
)
(Princ))


Sau đó anh muốn làm gì thếp theo?
Duy đề nghị hướng đi mới anh coi thử nhé (duy ko có coi đoạn video anh đưa lên).
-Thay vì mỗi text tạo thành 1 bản vẽ mới thì:
-Tổ chức file nguồn và file đích chung 1 thư mục
-Mở file bản vẽ nguồn nhập lệnh lisp làm các việc sau:
+Tạo thư mục con có tên chuadulieu trong thu mục gốc.
+Mỗi text trên file bản vẽ nguồn tạo thành 1 file txt trong thư mục chuadulieu.
-Khi mở bản vẽ đích nhập lệnh lisp làm các việc sau:
+Duyệt qua tất cả các file txt trong thư mục chuadulieu.
+Tạo các đối tượng RTEXT từ các file txt này. Anh muốn để nó đâu thì để (move và copy vô tư).
-Khi thay đổi file gốc chỉ cần nhập lại lệnh 1 lần thì các file txt sẽ tự thay đổi theo, việc cập nhật vào file đích thì cad tự làm mình không quan tâm
  • 2

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#22 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 03 September 2010 - 03:37 PM

Phương án 1 (để tận dụng chương trình cũ của bạn mình ) làm ra sản phẩm để tồn tại đã.
mình mới chạy được lisp của duy ,nhưng chương trình chạy ngược dòng từ duwois lên trên.
- Duy chỉnh cho minh đọc từ dòng dầu đên dòng cuối .
- Cho lựa chọn cho đường dẫn thư mục.
Còn 2 chương trình của 2 ban trungngamy.nguyenthanhbinh đều báo lỗi chưa chạy được.
Xin cảm ơn.
  • 0

#23 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 03 September 2010 - 07:10 PM

Phương án 1 (để tận dụng chương trình cũ của bạn mình ) làm ra sản phẩm để tồn tại đã.
mình mới chạy được lisp của duy ,nhưng chương trình chạy ngược dòng từ duwois lên trên.
- Duy chỉnh cho minh đọc từ dòng dầu đên dòng cuối .
- Cho lựa chọn cho đường dẫn thư mục.
Còn 2 chương trình của 2 ban trungngamy.nguyenthanhbinh đều báo lỗi chưa chạy được.
Xin cảm ơn.

Bạn có thể cho biết khi chạy lisp báo lỗi gì không??? Thực tế mình viết cái này theo ý tưởng mình đã trình bày và chạy thử trên chính cái file bạn đã post lên diễn đàn và thấy nó chạy ngon lành mà.

Hiện mình cũng đã làm thử được phần đọc tọa độ điểm từ file .SL bạn gửi để chuyển thành các điểm trên bản vẽ. Tuy nhiên có một vấn đề là khi dùng hàm atof để đọc các chuỗi dữ liệu số trên file tọa độ thì nó trả về các số không hoàn toàn đúng như file dữ liệu.
Ví dụ trên file dữ liệu nó là chuỗi 2248159.870 thì nó trả về giá trị số là 2.24816e+006 hay chuỗi 579467.740 thì nó trả về 579468.0. (tức là bị làm tròn lên đến phần nguyên)
Mình đã thử dùng biến luprec để thay đổi nhưng vẫn không có kết quả. Bạn hay bác nào biết cách chỉnh cái hàm này để nó thể hiện đúng như trên file tọa độ thì chỉ giùm mình với. Cứ để vậy e rằng sẽ đặt text trệch đi chút xíu bạn ạ.

Nếu không có gì bí mật bạn có thể gửi cho mình 3 file là các file bản vẽ 1 bản vẽ 2 và bản vẽ 3 (mà bạn đã gửi gộp trong một bản vẽ) để mình chạy thử coi sao vì mình muốn kiểm tra lại thực tế các tọa độ trong file .SL bạn gửi có thực sự đúng là các điểm nhập text trên bản vẽ của bạn hay không.

Tiện đây, Bạn có thể cho biết thêm công dụng của các mã điểm trên file tọa độ CA1, CB2, CC3, CD4, CE5 có ý nghĩa như thế nào không??? Có phải các mã này dùng để bạn xác định xem sẽ nhập text nào vào vị trí các điểm đó không.??? Nếu đúng vậy bạn hãy cho biết thêm qui tắc để lập các mã này vì mình thấy trên cả hai file tọa độ bạn gửi đều sử dụng chung các mã này giống nhau, và như vậy nếu có nhiều text hơn 5 thì bạn sẽ xác định các mã này ra sao???

Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#24 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 03 September 2010 - 08:22 PM

Phương án 1 (để tận dụng chương trình cũ của bạn mình ) làm ra sản phẩm để tồn tại đã.
mình mới chạy được lisp của duy ,nhưng chương trình chạy ngược dòng từ duwois lên trên.
- Duy chỉnh cho minh đọc từ dòng dầu đên dòng cuối .
- Cho lựa chọn cho đường dẫn thư mục.
Còn 2 chương trình của 2 ban trungngamy.nguyenthanhbinh đều báo lỗi chưa chạy được.
Xin cảm ơn.

-Lựa chọn đường dẩn thư mục: Anh thích chọn thư mục chứa các block tạo ra hay thư mục chứa file gốc hay cả hai.
-Thứ tự đọc thì chỉnh ngược lại được nhưng ko phải ca7n cứ theo vị trí trên dưới mà theo thứ tự đối tượng được tạo ra anh à.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#25 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 03 September 2010 - 08:24 PM

Mình đã nói rồi đây là chương trình rất cổ nhưng đã hổ trợ cho mình hàng 100 công trình và hiệu quả hơn người vẽ cad giỏi 10 lần trở nên.Khó có thể tính hiệu quả của nó.Bắn điểm và tính ra tọa độ với mọi dạng số liệu ,với các loại đơn vị đo mà trắc địa và quân đội sử dụng (Từ số liệu thô cũng như số liêu trút từ máy đo các loại,các loại tỷ lệ bản đồ ,tùy biến tỷ lệ theo người dùng yêu cầu,nối vẽ tự động ...)
1,2,3,4,,,,,5 là số dòng thư tự.Mình mới thử đến 2000 dòng thôi vì không có công trình nào lớn hơn nứa ,các mã trước các số 1,2,3... là các mã gắn cho đối tượng từ đầu đễn cuối ( bát kể là bản vẽ ,dòng text...) nghĩ là có thể gắn được khoảng (32x32)x2 dòng (đói tượng) .Ví dụ aa, ab... za,zb... ngược lại.Mình chưa thử với dạng số.
Gửi bạn lại các bản vẽ
http://www.4shared.c...GMUI/ban2n.html
http://www.4shared.c...hRmjKn/MC2.html
http://www.4shared.c...mk/CONGGOC.html
Đang kiểm tra lại file lisp của bạn ,sẽ trả lời sau.
Xin cảm ơn.
  • 0

#26 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 03 September 2010 - 08:31 PM

Gửi duy782006
Nên tạo 1 thư mục riêng D:/chen/*.dwg để dễ quản lý.
Đấnh tử dòng đầu đễn dòng cuối .Mình sử hàm (+ i 1) thành ( -i x) x là số dòng ,nhưng thủ công quá phải đếm.
Chắc phải cậc lực vài tháng mới hiểu được chương trình của các bạn được.
Vì tính năng ghi text này chỉ trong 1/100 tính năng của tiện ích nầy nên mình phải tận dụng ,sau đủ kiến thức mới viết sau.Phải loại bỏ toàn bổ toàn bộ các chương trình ngoài tác động vào cad ,rất tiếc nhưng o thể vì nếu thế, thì mãi chắp vá mà thôi.
Mình muốn thêm tính năng cắt bỏ chữ nữa thì có thể được không(có thể viết chương trình riêng) vị dụ
C32+ 54 Cống bỏ.
C22+45.6 Đường ngang.
....
có thể cắt loại bỏ text từ trước đấu cách thành
Công bỏ
Đường ngang
....
Nghĩa là đọc 1 file text có các text theo hàng ,khi dùng lệnh DEfun C: deltext sẽ loại bỏ các chữ trước dấu cách

Cảm ơn Duy.
  • 0

#27 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 03 September 2010 - 08:55 PM

Gửi duy782006
Nên tạo 1 thư mục riêng D:/chen/*.dwg để dễ quản lý.
Đấnh tử dòng đầu đễn dòng cuối .Mình sử hàm (+ i 1) thành ( -i x) x là số dòng ,nhưng thủ công quá phải đếm.
Chắc phải cậc lực vài tháng mới hiểu được chương trình của các bạn được.
Vì tính năng ghi text này chỉ trong 1/100 tính năng của tiện ích nầy nên mình phải tận dụng ,sau đủ kiến thức mới viết sau.Phải loại bỏ toàn bổ toàn bộ các chương trình ngoài tác động vào cad ,rất tiếc nhưng o thể vì nếu thế, thì mãi chắp vá mà thôi.
Cảm ơn Duy.

Sửa như sau:

(Defun C:XRT ( )
(setq SS (ssget "x" '((0 . "TEXT"))))
(setq N (sslength ss))
(setq i (- n 1))
(setq so 1)
(while (> i -1)
(setq TEXTENT (ssname SS i))
(setq DTT (entget TEXTENT))
(setq diemchen (cdr (assoc 10 DTT)))
(setq tenchen (strcat "D:/chen/ghichu" (itoa so)))
(command "ucs" "object" textent)
(command "_wblock" tenchen "y" "" diemchen textent "" "_oops")
(command "ucs" "p")
(setq i (- i 1))
(setq so (1+ so))
)
(Princ))


-Lưu ý anh phải có thư mục D:/chen/ trên máy rồi.
-Nhửng yêu cầu của anh ko đúng chuyên ngành nên Duy và các bạn khác rất khó hiều được cho cẩn, cụ, tỉ Anh nên mình họa bắng cái chi chi đó, đoặc nếu được thì anh đưa ra cái sườn như ngắt ra từng đoạn để anh em dể giải quyết.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#28 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 03 September 2010 - 09:16 PM

Em viết cho đoạn cắt text như anh đề nghị ở trên được không.Nghĩa là nhiều khi nội dụng sau vẫn giữ nguyên bản vẽ này nhưng lại cắt bỏ đạo đầu ở bản vẽ khác.
Cách nhau chỉ 1 dấu cách.
Líp vừa rồi chạy rất tốt nếu các hàng là các số thứ tự,nhưng là các dòng text hay mtext thì chạy ra hàng 18,20 bản dù bản gốc chỉ có 4,5 hàng.
Cảm ơn.
  • 0

#29 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 03 September 2010 - 10:17 PM

http://www.4shared.c...2__CONGGOC.html
em thử chạy text 4 dòng này xem ra 19 file không theo quy luật nào cả
Mtext thì còn loạn hơn nữa.
  • 0

#30 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 03 September 2010 - 11:03 PM

Còn 2 chương trình của 2 ban trungngamy.nguyenthanhbinh đều báo lỗi chưa chạy được.

Mình thử bằng cách copy lại bài đã post thấy nó vẫn chạy tốt. Chỉ cần bạn lưu ý là khi khởi động cad bạn phải đặt ngay biến hệ thống sdi=1.
  • 0

#31 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 03 September 2010 - 11:19 PM

http://www.4shared.c...2__CONGGOC.html
em thử chạy text 4 dòng này xem ra 19 file không theo quy luật nào cả
Mtext thì còn loạn hơn nữa.

Trong file của anh có 19 đối tượng text nên nó ra 19 file thôi. Trong đó có 13 text không có nội dung, 1 text là dấu ?. Duy đã nói là theo quy luật thứ tự tạo ra của đối tượng chứ không phải vị trí của text.
Anh tìm lisp xóa các text không nội dung trong bản vẽ d bác Hoành viết rồi đấy.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#32 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 04 September 2010 - 08:43 AM

Mình thử bằng cách copy lại bài đã post thấy nó vẫn chạy tốt. Chỉ cần bạn lưu ý là khi khởi động cad bạn phải đặt ngay biến hệ thống sdi=1.

Xem lại cái file ghi1ra2 của bạn thì thấy những gì mình gợi ý dư sức làm đc. Kg biết mình có nhần lẫn gì kg nhỉ. Đây là bài toán khá đơn giản. Tuy nhiên, mình thấy trong bài toán này bạn đã tự làm khó mình khi tạo ra 2 file tọa độ. Việc tạo ra 2 file đó bạn phải có đoạn lisp để thực hiện hoặc phải nhập tọa dộ bằng tay. Thay vì làm vậy thì bạn bạo ra một số đối tượng mang tính chất đặc trưng để CT nhận ra và thực hiện. Ví dụ trên BV 2 và 3 ngay tại vị trí bạn muốn đưa text vào bạn chỉ cần đánh text "1", "2", "3" ... theo đúng định dạng và năm trong layer nào đó tránh sự nhầm lẫn. Khi thực hiện CT chỉ thay "1" bằng text1, '2" bằng text2 ... Với text1, text2 là thứ tự text trong file 1
  • 1

#33 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 04 September 2010 - 09:04 AM

Tạo ra 2 hay nhiều file toa độ đó là điều cực kỳ đơn giản với chương trình này.Chỉ cần pick chuột vào các vị trí ,chương trình sẽ tự động đáng só và xuất ra file. nếu tao 1 file 1000 điểm không quá 10 phút.Vì đây là 1 chương trình với hàng 100 tính năng cho trắc địa làm từ đầu đến cuối,có thể nói hiệu quả rất cao. Mình đã bỏ tiền ra mua nhiều chương trình (Topo,nova...500USD ) nhưng rồi đều bỏ không vì không đọ được vì tính chất dễ truyền dạy và hiệu quả của chương trình mình đang dùng. Nhưng mình đã nói chương trình này gần như hoàn thiện .
Mình hiện làm chủ nhiệm khảo sát gần như toàn bộ các loại công trình sân bay ,cầu cảng ,giao thông,thủy lơi,quy hoạch ... trong các đơn vị tư vấn nên cũng có điều kiện giao lưu trao đổi nhiều.
Vậy nên chỉ tích hợp thêm các tính năng để nó hoàn hảo hơn mà thôi,còn khi minh có thể viết theo ý mình thì sẽ tính sau.
Gửi Duy782006.
Khi mình chuyển sang 1 dạng text khác thì đều đã nhận được đúng số dòng,số bản vẽ nhưng khi các bản vẽ xuất ra lại không theo thứ tự dòng .Em xem do nguyên nhân gi vây nhé.
Gửi file cho em:
http://www.4shared.c.../ghichumoi.html
Cảm ơn tất cả.
  • 0

#34 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 04 September 2010 - 09:13 AM

Em viết cho đoạn cắt text như anh đề nghị ở trên được không.Nghĩa là nhiều khi nội dụng sau vẫn giữ nguyên bản vẽ này nhưng lại cắt bỏ đạo đầu ở bản vẽ khác.
Cách nhau chỉ 1 dấu cách.
Líp vừa rồi chạy rất tốt nếu các hàng là các số thứ tự,nhưng là các dòng text hay mtext thì chạy ra hàng 18,20 bản dù bản gốc chỉ có 4,5 hàng.
Cảm ơn.

-Quy ước _ là dấu cách:
-Cho chuổi gốc như sau: _đfgshf_đsfsjfhsdfjfsfsđjfks anh muốn kết quả như nào:
+đfgshf_đsfsjfhsdfjfsfsđjfks
+đsfsjfhsdfjfsfsđjfks
-File xuất ra vị trí nào tự tạo trong cùng thư mục hay hỏi chọn thư mục hay mặc định thư mục?
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#35 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 04 September 2010 - 09:20 AM

Tạo ra 2 hay nhiều file toa độ đó là điều cực kỳ đơn giản với chương trình này.Chỉ cần pick chuột vào các vị trí ,chương trình sẽ tự động đáng só và xuất ra file. nếu tao 1 file 1000 điểm không quá 10 phút.Vì đây là 1 chương trình với hàng 100 tính năng cho trắc địa làm từ đầu đến cuối,có thể nói hiệu quả rất cao. Mình đã bỏ tiền ra mua nhiều chương trình (Topo,nova...500USD ) nhưng rồi đều bỏ không vì không đọ được vì tính chất dễ truyền dạy và hiệu quả của chương trình mình đang dùng. Nhưng mình đã nói chương trình này gần như hoàn thiện .
Mình hiện làm chủ nhiệm khảo sát gần như toàn bộ các loại công trình sân bay ,cầu cảng ,giao thông,thủy lơi,quy hoạch ... trong các đơn vị tư vấn nên cũng có điều kiện giao lưu trao đổi nhiều.
Vậy nên chỉ tích hợp thêm các tính năng để nó hoàn hảo hơn mà thôi,còn khi minh có thể viết theo ý mình thì sẽ tính sau.
Gửi Duy782006.
Khi mình chuyển sang 1 dạng text khác thì đều đã nhận được đúng số dòng,số bản vẽ nhưng khi các bản vẽ xuất ra lại không theo thứ tự dòng .Em xem do nguyên nhân gi vây nhé.
Gửi file cho em:
http://www.4shared.c.../ghichumoi.html
Cảm ơn tất cả.

Nếu file 1 toàn text bạn nên dùng file văn bản. Nó sẽ mặc nhiên theo thứ tự hơn là việc sắp xếp với lisp, kg đơn giản khi bạn chọn chúng trong tập hợp.
Nếu bạn nói CT đã hoàn thiện rồi, cả vđ bạn đang quan tâm bạn cũng làm thử cho mọi người xem rồi và bạn muốn mọi người làm giống y như vậy để làm gì nhỉ.
  • 1

#36 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 04 September 2010 - 09:41 AM

Mình nói nó gần như hoàn thiện nên tich hợp thêm các tính năng cho nó mà,bạn đọc hết đi.Do chương trình của bạn mình nên mình đang sử dụng tốt ,hiệu quả ,1 số phần chưa khai thác được thì viết lại và nâng cao.Chứ nếu bạn mình còn thì chắc mình không bao giờ phải nghĩ đên học viết gì cả.
Vì 1 ý tưởng của mình anh ấy có thể biến nó thành rất nhiều cái mà mình chưa nghĩ đến.
  • 0

#37 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 04 September 2010 - 10:42 AM

-Quy ước _ là dấu cách:
-Cho chuổi gốc như sau: _đfgshf_đsfsjfhsdfjfsfsđjfks anh muốn kết quả như nào:
+đfgshf_đsfsjfhsdfjfsfsđjfks
+đsfsjfhsdfjfsfsđjfks
-File xuất ra vị trí nào tự tạo trong cùng thư mục hay hỏi chọn thư mục hay mặc định thư mục?

Dấu cách là được rồi.
Cho ra cả 2 dạng.
Thư mục do người dùng chỉ định
  • 0

#38 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 04 September 2010 - 02:01 PM

Mình đã nói rồi đây là chương trình rất cổ nhưng đã hổ trợ cho mình hàng 100 công trình và hiệu quả hơn người vẽ cad giỏi 10 lần trở nên.Khó có thể tính hiệu quả của nó.Bắn điểm và tính ra tọa độ với mọi dạng số liệu ,với các loại đơn vị đo mà trắc địa và quân đội sử dụng (Từ số liệu thô cũng như số liêu trút từ máy đo các loại,các loại tỷ lệ bản đồ ,tùy biến tỷ lệ theo người dùng yêu cầu,nối vẽ tự động ...)
1,2,3,4,,,,,5 là số dòng thư tự.Mình mới thử đến 2000 dòng thôi vì không có công trình nào lớn hơn nứa ,các mã trước các số 1,2,3... là các mã gắn cho đối tượng từ đầu đễn cuối ( bát kể là bản vẽ ,dòng text...) nghĩ là có thể gắn được khoảng (32x32)x2 dòng (đói tượng) .Ví dụ aa, ab... za,zb... ngược lại.Mình chưa thử với dạng số.
Gửi bạn lại các bản vẽ
http://www.4shared.c...GMUI/ban2n.html
http://www.4shared.c...hRmjKn/MC2.html
http://www.4shared.c...mk/CONGGOC.html
Đang kiểm tra lại file lisp của bạn ,sẽ trả lời sau.
Xin cảm ơn.

Chào bạn nbdngo,
Bạn có thể nói rõ hơn được không????
1, 2,3,4 ... là số dòng thứ tự của cái gì??? của Text hay của các dòng tọa độ điểm nhập text. CA,CB,CC.... là các mã gắn cho đối tượng nào??? đối tượng text gốc trên bản vẽ text hay đối tượng point trên bản vẽ cần nhập text ??? Cái mã CA1 cụ thể là chỉ cái gì??? Nó liên quan như thế nào đối với việc copy text ??? Có phải nó nói rằng tại cái điểm đi theo đó sẽ copy cái text được đánh mã là 1 hay CA1 không?? Vì sao trên hai file tọa độ lại sử dụng chung các mã này??? Với cách đánh mã này của bạn liệu có hay không có các mã CB1, CA2, CC5 .... sẽ xuất hiện trong các file bảng tọa độ của bạn???
Cần phải hiểu rõ về các mã này mới có thể hoàn chỉnh cái lisp của bạn được, nếu không sẽ có thể gây nên kết quả copy nhầm đối tượng, bạn có hiểu rõ nó hay không vậy???

Mình đã làm xong cái việc lấy điểm từ các bảng tọa độ, cũng như việc lấy giá trị các dòng text, chỉ còn việc phải xác định text nào gắn vào điểm nào và gắn ra sao nữa là Ok. Rất mong bạn giải thích rõ vấn đề này.

Hiện tại mình cũng đã làm lisp với giả định rằng các mã CA1, CB2, CC3, CD4, CE5 là các mã tương ứng với các text1, text2, text3, text4, text5 mà nội dung các text này sẽ được kiểm tra, bổ sung hoặc thay thế khi cần thiết để dán vào các điểm mang mã số tương ứng.

Tỷ như với nội dung text1 bạn có thể kiểm tra, bổ sung hoặc thay thế nó và khi dán bạn có thể lựa chọn mã điểm là CA1, hay CE5 tùy ý.
Tương tự với các text2, text3, text4, text5,.....
Để làm điều này bạn cần phải nhớ nội dung các text và các điểm cần dán text.

Có thể giảm cái khả năng tùy biến này bằng cách bạn phải xác định trước các cặp tương thích tỷ như đã là CA1 thì dán text1, ... CE5 thì dán text5. Như vậy sẽ đỡ phải nhớ nhung gì nhiều và sẽ phải cải tiến trong lisp một chút. Để cải tiến thì lại cần phải biết nguyên tắc đánh mã bạn ạ. Đó là cái lý do vì sao mình vặn vẹo bạn về mấy cái mã phải gió này, mong bạn thông cảm.
Chào bạn và chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#39 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 04 September 2010 - 03:11 PM

Thấy các bác thảo luận trao đổi sôi nổi , tôi xin phép phát biểu 1 vài ý kiến.

1.Trong lập trình Cad, cách đây 15-20 năm thì việc quản lý dữ liệu bằng file Txt được nhiều lập trình viên lựa chọn, vì nó đơn giản dể hiểu. Hiện nay việc quản lý dữ liệu bằng file (Text) không hẳn là lạc hậu nhưng sẽ không tận dụng hết ưu thế về công nghệ của CAD. Cad đã cung cấp nhiều thư viện tiện ích hơn tại sao chúng ta không sử dụng công nghệ mới, cứ phải lưu dữ liệu ra file bên ngoài rồi lại mở file đọc dữ liệu. Không nói đến t/hợp file bị thất lạc hư hỏng, thời gian cho 1 chu trình : “ mở file - đọc(viết) dữ liệu - đóng file “ cũng là không nhỏ.
Hiện nay Cad đã cho phép lưu dữ liệu trực tiếp lên file Cad (dưới dạng non_Graphic), vấn đề này đã có đề cập trên CadViet.

2. Trở lại chủ đề của NDBNGO : Làm sao dể tự động kết nối 1 bản vẽ text sang 2(nhiều) bản vẽ khác
- theo đề xuất của TRUNGNGAMY : “tạo ra một số đối tượng mang tính chất đặc trưng để CT nhận ra và thực hiện….”
- hay như ý tưởng của Nataca: “phải đặt ra một số chuẩn và nguyên tắc”
Mỗi người có 1 số chuẩn và nguyên tắc riêng, nếu bạn chấp nhận các nguyên tắc này thì CT mới thực hiện được.
Việc chạy theo giải pháp của 1 anh bạn “công nhân” mà NDBNGO đề xuất cũng là 1 lựa chọn đáng xem xét, nhưng chưa chắc đã tối ưu vào thời điểm hiện nay (có thể đó là giải pháo tối ưu vào thời điểm 15-20 năm trước).

Lựa chọn giải pháp nào phụ thuộc vào khả năng của mỗi người (liệu cơm gắp mắm) , như t/hợp của NDBNGO là muốn phát triển Code của 1 người bạn (bảo tồn và phát triển ?!) lại mang 1 ý nghĩa khác.

Xin giới thiệu 1 giải pháp tương tư như của TRUNGNGAMY.
- B1 : trên bản vẽ cần cập nhật, đánh dấu các TEXT cần cập nhật (có quan tâm đến thứ tự của các Text) theo chuẩn và nguyên tắc riêng.
- B2 : từ file Cad bất kì chứa Text có nội đã thay đổi , chạy LISP thực hiện thay nội dung các Text đã đánh dấu ở bước 1 với nội dung các Text được chọn.

Đây là demo cho phép cập nhật 2 Text đã đánh dấu trên file MC2.dwgban2n.dwg
chú ý : Lisp chỉ cập nhật TEXT trên 2 file MC2.dwgban2n.dwg
tên lệnh : UpTxt
Link Download : File Cad + Lisp
  • 0

#40 NDBNGO

NDBNGO

    biết lệnh rotate

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

Đã gửi 04 September 2010 - 08:56 PM

Chạy tử của bạn Giabach thì thấy máy báo thế này nên chưa có nhận xét được:

http://www.4shared.c...Kqc/gibach.html
Nhờ các bạn xem giúp.
Cảm ơn
  • 0