Bạn có thể gửi yêu cầu viết lisp tại đây. -Nếu trong khả năng mình sẽ viết lisp giúp bạn và tạo bài mới trong mục Siêu thị lisp -Khi yêu cầu bạn vui lòng mô tả rỏ cái mình muốn, tốt nhất là kèm theo file *.dwg
mình cần viết một cái lisp vẽ đường thân khai, nếu vẽ thủ công bình thường thì : vẽ đồ thị sao cho chu vi bằng 120( qua 12 điểm). Sau đó scale toàn bộ, sao cho đường kính = phi yêu cầu. Vẽ circle : chu vi =120 --> vẽ 12tia và 12 đoạn dài 120 Vẽ " lưới": cắt mỗi tia 1 số đoạn theo yêu cầu ( cắt đi 10 cho dễ :-D Nói thía ko bít Duy đã hình dung ra chưa nữa >.< Có gì Duy liên lạc qua yahoo với mình được ko? baby_sanhdieu22@yahoo.com Cảm ơn Duy nhé ~"~
*Mình đọc cái diễn giải và cái hình của bạn có 1 số chổ không khớp. -Bạn nói "Vẽ circle chu vi =120" nhưng mình coi trong hình thì như sau: +Vẽ đoạn thẳng dài 50. +Array nó thành 12 đối tượng theo hình tròn. +Vẽ hình tròn tâm tại điểm giao 12 đoạn thẳng vừa array. (như vậy hình tròn này có bán kính là 50 và chu vi 314.1593). +Từ giao điểm của các đoạn thẳng với đường tròn vẽ các đường thẳng nằm ngang. +Copy đường tròn thành 12 đối tượng cách nhau 25 +Vẽ đường spline qua giao điểm của đường tròn và đường thẳng ngang. -Bạn cần cái nào có chu vi là 120. Con số này bất biến hay lisp hỏi và bạn nhập vào. **Cách yêu cầu viết lisp như sau: -Bạn muốn lisp hỏi bạn những gì. -Kết quả lisp xuất ra như thế nào (nguyên tắc cho ra kết quả)
Ặc ặc, sorry anh. Cái bài hum trước là cua thằng bạn em vẽ theo trong sách. Nhưng thầy nói vẽ như thế thì sẽ khó cho bọn em nên thầy đã cho vẽ theo cách giống em nói . http://www.cadviet.com/upfiles/2/bai5.dwg đây là bài em vẽ. Còn về việc viết lisp thì em mún viết một cái lisp để nó hỏi mình nhập chu vi... ( cái đoạn này thầy nói mình mún viết sao cũng được miễn là nó ra cái hình đó là được >.<) Anh chỉ giáo thêm cho em nhé ^^.
Bạn tải file này về giải nén được 3 file. Chép tất cả vào thư mục cài đặt cad. Load file vehinh.lsp lên. -Lệnh vethankhai và lệnh vexicloit. -Lisp hỏi chọn điểm bắt đầu vẽ, và hỏi chu vu hình tròn. http://www.4shared.com/file/190493114/4751bf9e/vehinh.html
Anh Duy ơi, em lại làm phiền anh nữa nè ^^! Hum trước anh làm cho em đó, là nó insert một bản vẽ đã có sẵn. Nếu bản vẽ save as acad 2007 format thì chương trình sẽ bị lỗi nếu chạy trong Acad cũ hơn (ví dụ Acad 2004). Giờ em mong anh giúp em viết cái lisp mà nó làm từ A đến Z được không ạ, anh giúp em với >.< Cụ thể là em mún nó như này nè -Nhập số liệu, điểm bắt đầu (tâm vòng tròn). -Vẽ vòng tròn xuất phát -tính các điểm trung gian. -Gọi lệnh command Spline. Lần lượt xuất từng điểm ra cho command -Kết thúc lệnh vẽ Spline -Vẽ các trục oX và oY. Em cảm ơn anh nhiều ^^!
Bạn tải file lisp này về load lên. Tên lệnh như cũ. -Về vẽ thankhai thì các điểm để vẽ thành đường spline là xác định đúng 12 điểm. -Còn vẽ xicloit thì trong bản vẽ mẫu của bạn đường spline xác địch chỉ bằng 3 điểm mà lại hình như không đối xứng mình cũng vẽ đúng như vậy. Nếu muốn chình thì gửi lại file xicloit chính xác cho mình.
Chào anh Duy ! ,anh có thể viết cho em 1 cái lisp để edit như thế này ko a ? e có 1 bản vẽ cốt thép bị lỗi như sau : 1 loại thép số hiệu 10 phi 32a200 , nhưng cũng với thép số hiệu là 10 nhưng có chỗ là phi20a200 hoặc phi 32a150 . Bây giờ e muốn sửa tất cả thép số hiệu 10 là phi32a200 , ma` trong ban ve lai co nhieu thep co so hieu khac nhau , mong anh cứu e với !
Hi, em cũng đang có ý định xây dựng 1 bộ tiện ích di động, em xin phép được tham khảo code của anh để học hỏi nha. thank anh nhiều PS: em là Thaistreetz bên cadviet :D
Bạn xem bài hướng dẩn viết lisp số 30 để biết về các mã dxf. Thông trường nhất là bây nhiêu đấy. Còn cần thêm thì bạn xem trong sácg lisp nhé. Có gì không hiểu mình sẽ nói thêm.
Mình làm bên trắc đia bản đồ ,khi đo các điểm cao độ (dạng text)nhiều khi dày đặc trên bản vẽ ,vì vậy để in ra thì rất xấu. Do đó mình phải xóa đi các cao dộ gần nhau đẻ o bị dè nhau khi in. Nhờ bạn viết 1 lisp có nhiệm vụ xóa các điểm cao độ gần nhau (theo mình lựa chọn 1 giá trị nào đó ví dụ 1m,2m theo ý người dùng).Nghĩa là xóa các điểm text trong vòng đó để các điểm cao độ o gần nhau in được. Nếu có thể thì xuất ra 2 file tọa độ (file các điểm đã loại và file các điểm để trên bản vẽ). Xin cản ơn. trên cadviet đã có đặt ra vấn đề này (xóa cao độ gần và trùng nhau ) nhưng chưa ai giải quyết,vậy nhờ bạn viết giúp đoạn lisp cho mình nhé.Xin cảm ơn ndbngo@yahoo.com
Mình đã gửi file bản vẽ vào cả 2 hợp thư của bạn .Mình thử dùng phần khảo sát thì có 1 số lỗi như trong bản vẽ mình đã vẽ{ _Hatch nhảy không như yêu cầu _Nhờ bạn sửa hatch lúa 2 vụ như bản vẽ đó giúp (chắc phải chỉnh góc hatch...) Xin cảm ơn. ndbngo@yahoo.com
Vậy theo bạn thì các đối tượng hatch (mình ví dụ 2 trường hợp thôi,còn nhiều nữa...)lại có hiện tượng thế ,cách khắc phục(Chú ý: các *.pat trong chương trình của bạn là sao chép nguyên si các *. pat của chương trình Topo (Hamony Co.)đó-sợ có ảnh hưởng đến bản quyền o).Cách khắc phục để có thể dùng các hatch này . Về việc xóa điểm theo mình có thể xuất ra dạng file tọa độ.Lấy 1 điểm làm gốc so sánh với tất cả các điểm còn lại nếu điểm nào có khoảng cách nhỏ hơn 1 tri do cho trước ( gán hàm khi nhập...m - Theo ý người sử dụng)thì loại sang file khác ,tiếp tục vònglăp cho điểm thứ 2 ...3... end. Mình nghĩ thế ,không biết có được o,bạn xem có thể làm theo hướng đó đc o. Xin cảm ơn . Ndbngo@yahoo.com 0988529640
Cảm ơn bạn ,theo bạn mình chuyển về tọa độ 0,0 thì o bị phá vỡ nữa .Còn về .pat mình cũng đọc về khaosat 2009 cấp nhưng mình sợ bạn o biết về nguồn gôc các file *.pat đó mà thôi. Thank.
Chào anh...em là dân khảo sát đường nhờ anh viết hộ cho 1 cái lisp. -Mục đích: Xóa những text cao độ đè lên nhau.
Khi bọn em xuất cao độ địa hình ra thì những vị trí gần nhau, text cao độ sẽ bị chèn lên nhau. Ý em muốn là xóa bớt những text cao độ sao cho cả bản vẽ ko có 2 text nào chèn lên nhau...và khoảng cách nhỏ nhất giữa 2 text ko nhỏ hơn 1 giá trị nào đó (phụ thuộc vào chiều cao text) để các text ko sít nhau quá, cho dễ nhìn 1 chút... Ý sơ sơ của em là như thế, em có ví dụ file *.dwg kèm theo...Rất rất mong a giúp đỡ ạ!!!
Xin lỗi vì đã làm phiền bạn,đành phải cố gắng học theo các bài của bạn để tự viết lấy vậy thôi. Mình muốn hỏi là dùng lisp thì có thể viết dể xuất 1 dạng file text này sang 1 file text khác được o(nghĩa là từ file nguồn chuyển sang file đích có định dạng khác-mình sẽ gửi file). nếu có thể Duy viết giúp hoặc hướng dẫn mình viết nhé .Mình có 2 file file 1 số liệu ,file 2 ghi chú theo số thứ tự của cột thứ nhất.Ở file thứ nhất là các điểm từ 1,...end. file 2 là ghi chú sẽ gán cho các điểm đó. Mình cần 1 file tổng hợp thứ 3 gán các ghi chú ở file 2 vào các điểm của file 1.((mình gửi ở hộp thư) Xin cảm ơn .
Đã xem 3 file của bạn gửi. Hướng giải quyết thì mình đề xuất như sau: -Chỉ định file 1. -Đọc từng dòng file 1 nếu có nội dung thì xử lý (đoạn 1). Nếu dòng trống thì kết thúc lệnh. -Nội dung đoạn 1 như sau: +Đọc lần lượt từng ký tự của dòng đến khi gặp ký tự thì lấy ký tự này làm biến noidungdau tiếp tục đọc ký tự tiếp theo đến khi gặp ký tự rỗng thì kết thúc việc lấy biến noidungdau. +Dùng hàm điều kiện so sánh biến noidungdau (FILE 2 của bạn nếu là cố định thì nên đưa nó vào lisp chứ đọc file 2 để lấy điều kiện nửa thì rất dài dòng). +Ghép thêm chuổi đầu cần thêm vào sau đó ghi ra file khác. Bạn thấy như vậy có đúng ý không và bạn tự viết được không? Chứ mình thì có hướng như vậy nhưng đang đau nên cũng lười hoạt động, chờ thời gian nửa đã.
Gửi Duy rất thân. Cho mình gọi như thế ,thứ nhất là khả năng chịu học hỏi, hơn nữa nhiều khi làm không công và mã nguồn mở em biết rồi ,nhiều lúc bản quyền là vô nghĩa hơn nữa tỉnh lẻ ,huyện miền núi như Bình sơn (Vì anh đã từng ghi đấu chân và làm việc mọi vùng miền của đất Quảng ngãi (Bạn anh cùng học hiện là quan chức nhất nhì của Sở Tài nguyên và môi trường)) .Mình học hành ,cái tâm,cái tài muốn hỗ trợ cho mọi người đê trí thức Việt mình dám ngẩng đầu với thế giới là rất tốt. Nhưng anh nghĩ khi em bỏ công sức ,nhiều khi thức trắng đêm để viết và thử nghiệm phần mềm.Mình có thể o lấy nhiều ,nhưng khi sản xuất áp dụng có hiệu quả thì công ngươi viết ,lao tâm khổ tứ mà o có gì thì anh nghĩ o đc .Năm 98 anh viết 1 phần mềm vẽ nhà như em ,tất nhiên hiệu quả và hợp lý hơn (Vì anh là ngừơi chuyên ngành cơ quan đã thưởng 1 tr(Vì thế hệ cũ anh chỉ viêt trên Pascan qua đuôi Dxf). Vậy anh nghĩ 1 đoạn tiện ích như em viết cho khaosat2009 thì em nên cũng nên láy khoảng 1 tr.Không thì bọn anh là sản xuât thì lợi mà em o có gì thì anh nghĩ ngợi quá. Thân. Nếu có thể khác quan điểm của em thì em xóa đi. Chào em .Ngô Đông Phương (ndbngo,ndpngo) 0988529640.
Thế thì Duy phải gọi bằng anh rồi. Cái vụ thù lao thì đúng là Duy chưa dám nghỉ tới vì nói chung các tiện ích viết ra còn ít nhiều tham khảo ý kiến của anh em cadviet và còn có chổ sai xót không ok hoàn toàn được. Viết giúp thì được chứ viết lấy thù lao thì chắc bị phạt hợp đồng miết quá. À Bình Sơn là huyện đồng bằng nằm phía bắc tỉnh Quảng Ngãi chứ ko đc sếp vào huyện miền núi anh à.
Đã xong lisp ghép file txtrồi anh chạy thử xem đúng ý không nhé. +Lệnh: GTT. +Load lisp, nhập lệnh, chỉ file muốn chỉnh. +Vào thư mục chứa file muốn chỉnh xem nội dung file mới tạo (có thêm chử duythem). *Lưu ý chuyển file muốn chỉnh về đuôi txt trước khi thực hiện lệnh.
Mình muốn bác viết cho mình xin cái Lisp tạo ra một text gốc chẳng han: A1 Trong đó A: mình có thể tùy biến Sau khi tạo ra text gốc là A1 mình sẽ copy text gốc này ra nhiều text khác là con của text gốc A1 này mình muốn text con của nó thứ tự tăng dần sẽ là A2, A3, A4...... Cảm ơn bác, không biết hồi xưa bác học trường nào nhỉ?@@
-Nếu dạng như sau thì mình viết được: +Bảo chọn điểm viết text, +Hỏi giá trị cố định phía trước, +Hỏi giá trị thay đổi phía sau, +Hỏi giá trị cộng thêm, +Hỏi số lượng rải tex này, hỏi khoảng cách. -Còn nếu muốn copy text có sẳn thì như sau: +Bảo chọn text mẩu +Hỏi giá trị cần thay đổi là mấy số tính từ sau tính tới. +Hỏi giá trị cộng thêm. +Đoạn sau làm như copy bình thường.
Oh! Thanks bác Duy, mục đích của mình là cái vế này: "-Còn nếu muốn copy text có sẳn thì như sau: +Bảo chọn text mẩu +Hỏi giá trị cần thay đổi là mấy số tính từ sau tính tới. +Hỏi giá trị cộng thêm. +Đoạn sau làm như copy bình thường." Nếu được bác cho mình xin cái Lisp này! Mình học ĐH KTrúc HCM!
Anh Duy, em có vài cái file lisp em muốn add vào cad, có cái lisp nào add tự động các file .lsp, .Fas,... vào cad mà không dùng lệnh AP không nhỉ?!! Thanks anh!
Gỏ lệnh AP, chọn nút Contents..., chọn add, chọn tất cả các lisp và fas vào sau đó cứ khởi động cad thì các file nằm trong danh sách bạn đã add sẽ tự load.
Ý em là em có một số file .lsp, .fas, .arx đã đóng gói thành 1 ctrình nhỏ để chạy nó tự bung ra, vì vậy em muốn viết 1 file lisp với đường dẫn như thế nào để khi cài đặt ctrình thì CAD tự load lun. Em có tham khảo mấy file Lisp acaddoc.lsp và làm theo hương dẫn nhưng vẫn không load các file trên được, mong anh chỉ giáo!!
(load "C:/Program Files/AutoCAD 2007/Support/DOSLib17") em đánh lệnh như thế sao mấy cái file lisp thì load được nhưng cái file DOSLib17 không load được anh nhỉ?!!! CAD2007 nó báo như thế này: AutoCAD menu utilities loaded.; error: LOAD failed: "C:/Program Files/AutoCAD 2007/Support/DOSLib17"
file .arx đó anh em đánh thêm arx ở phía trước Load nó chạy được roài, nhưng khổ nỗi nếu nó load đến cái file nào nó báo lỗi thì các file load tiếp theo nó không thực hiện được anh ah!! anh có cách nào khắc phục ko?! Thanks anh!
Mình kiểm tra thì các text đã chuyển đến đường thẳng (line) nhưng đúng là khoảng cách của các text chưa khớp với các trường hợp các text này chuyển vuông góc với line. Về thuật toán thì cũng chưa biết được. Vậy duy cứ nghiên cứu và viết tiếp hộ với . Cảm ơn
http://www.mediafire.com/file/pno372it7ja64x9/truoc.dwg Duy thử với bản vẽ này ,sau khi thực hiện CCT các text dồn thành 1 đống với nhau http://www.mediafire.com/file/vcashq2pys1p28a/sau.dwg
Rất đạt yêu cầu đặt ra .Không nghĩ việc lấy vuông góc phải đặt ra nhiều biến như vậy. Xin cảm ơn vì nhiệt tình của bạn .Hy vọng được Duy giúp cho các lisp có hiệu quả trong công việc như vậy. Đây là phần đầu bài toán mà mình đang giải quyết Phần 2 là xuất tất cả các text này ra 1 file *.txt (Theo đường dẫn ) theo 4 lựa chọn ( x tăng,x giảm,y tăng ,y giảm ). Nếu có thời gian rảnh ,Duy ngiên cứu viêt giúp với. Cảm ơn lần nữa.
Xuất ra file thì dể lắm nhưng thuật toán sắp sếp để Duy lội qua cadviet mót xong hiểu được thì mới viết được, anh chờ vài ngày nhé! À anh nói theo đường dẩn là cố định hay hiện hộp thoại hỏi chọn vị trí?
Nên cho hội thoại thì hay hơn. Xuất ra tọa độ thì đúng là thuật toán dơn giân,diễn đàn đã có nhiều nhưng việc phải lựa chọn (x,y tăng,giảm ) thì diễn đàn mới đặt sơ qua mà thôi http://www.cadviet.com/forum/index.php?s=&showtopic=13203&view=findpost&p=73455 Thời gian thì vài ngày hay 1 tuần cũng được mà. Cảm ơn.
Cảm ơn anh Duy nha ! Cái Lisp anh viết tốt rồi nhưng nhờ anh sửa thêm lại dùm em 1 chút nữa, Kết quả L=*** là được rồi, nhưng i=*** nhờ anh sửa thành i=**% (phần trăm) Vì kết quả nó ra dài quá che mất 1 trong 2 text khi khoảng cách 2 text gần nhau. Anh cho text i=**% nằm dưới l=*** cho nó dễ nhìn : L=*** i=**%
a có thể viết giúp e cái lisp vẽ các loại của 1,2,4 cánh và cửa sổ không. Em đã tìm hết rồi nhưng đều thấy chỉ là chương trình phụ trợ không dành cho win 7. và có người viết lisp rồi nhưng không dùng được. e xin cảm ơn trước ah. ( e cũng đã tìm luôn trên google nhưng khong thấy ) ai chỉ giúp e với!
Mình đã dow về và kiểm tra ,các kết quả đều đúng .Nhưng ý mình muốn là sau khi chọn đối tượng text tại layer 1( Layer Duy yêu cầu mình chọn ) thì sau đó mới xuât hiên 4 lựa chon: XT(1).XG(2).YT(3),YG(4) và người dùng chọn 1,2,3,4 Các text được lựa chọn đánh dấu chỉ có 1 (hoặc 2 text) được chọn bằng kích chuột hoặc cửa sổ thì trong tập hợp xuât ra text này có chữ T . Rất cảm ơn Duy đã viết cho mình(Giải thich giúp mình về hàm vla-sort nhé).
Rất cảm ơn vì công sức và chất xám của bạn,mình đang đi công tác nên không có cad để thử và kiểm tra kết quả,có gì mình sẽ phản hồi sau (vào tối mai) . Mình muốn hỏi rằng khi dùng lisp thì có thê xuất ra đồng thời 2 file( hoặc nhiều hơn-Lớn nhất là bao nhiêu file) được không ví dụ như trên là định dạng 1 ,kiểu khác nữa là định dạng 2 vi dụ: Định khác là 3 cột Thứ tự /khoảng cách giũa các text/ giá trị text .(theo chiều tăng giảm x,y trên màn hình ) Nhờ viêt nhiều biết là phiền quá ,nên có thể lúc rỗi Duy nghiên cứu giúp minh gợi ý(tất nhiên là viết được thì quá tuyệt vời thì mình dễ học và nâng cao trình độ ,nghiên cứu lập trình nhanh hơn) . Xin cảm ơn bạn lần nữa. Mail của mình là ndbngo@yahoo.com or Phuongksxdhn@gmail.com
Hồi tối đã up sao sáng nay mất tiêu nên Duy up lại đây. Lisp đã hoàn thiện đầy đủ cả cột số thứ tự. và củng đã tối ưu hoá cho gọn lại. Lệnh như cũ. http://www.4shared.com/file/rSoOMfVs/xtexrafileok_2.html
*Về lý thuyết thì 1 lúc có thể xuất ra nhiều file text ko biết giới hạn là bao nhiêu nhưng Duy thử 5 file thì vô tư.
Mình đẫ chạy thử và kết quả tốt ,nhưng mình muốn Duy chỉnh giúp 1 số điêu như sau: -Layer mặc định là "Text1" không phải chọn layer nữa -Lưa chọn các text (vì có vài trăm tập hợp text) băng cách kích chuột vào đường pline khép kín đã vẽ trước bao quanh từng tập hợp này) _vì nhiều tập hợp text nên Duy tạo cho vòng lặp liên tục chỉ kết thúc khi ấn enter. Sau khi ấn kết thúc có thể có được thông báo đã có bao tập hợp được chọn và số dối tượng trong từng tập hợp đó. Xin cảm ơn.
Đánh dâu text nên để ,không đánh dấu thì ấn enter bỏ qua.Để từng trường hợp thôi cũng hợp lý (4 trường hợp) ,để gọn khi sử lý số liệu cũng là 1 ý hay.Sẽ gõ lệnh XT,yt,xg,yg không dùng lệnh chung để chọn nữa cũng hay Có thể thế thì dễ hiêu hơn ,mình vừa học sẽ dễ hiểu và chỉnh sửa theo ý muốn hơn,còn của Hoanh nhiều khi gọn quá ,mình chưa hiểu được nên khó sửa (Dù hay mà gọn ). Anh thấy hàm tự tạo ssget "Wp" plst chọn đối tượng pick theo đường bao hay và nhanh trong bài toán của anh đang giải quyết. Lúc nào em viết gợi ý bài về từ 1 dữ liệu xuất ra cùng lúc đông thời nhiều file với với(chắc cũng chỉ cần đến 4 định dạng thôi chứ khong cần nhiều hơn. Xin cảm ơn.
Viết xong mới đọc mail ,em gửi . Đúng vậy trường hơp khoảng cách text nên cho bằng o ,trường hợp sau thì thì anh nghĩ phải dùng file 1 cua em ,ròi đọc từ đó ra khoảng cách các text ,chứ chưa nghĩ ra cách để lấy ngay từ màn hình để xuát file ,thôi thì học tiếp vậy ,vì để đọc hiểu các líp đã viết thì còn chưa hiểu ,nhất là khi có các hàm VL . Cảm ơn Duy
-Cái vụ lấy tập hợp chọn trong pline giới hạn coi thế nhưng mà rất rắc rối vì dùng WP thì phải chọn từng đỉnh pline chứ không phải chọn pline. Cái này Duy đã đọc mấy lisp của Tuệ viết nhưng vẩn chưa hiểu. -Lấy khoảng cách thì đơn giản vì đã có giá trị toạ độ text rồi, dùng hàm distance là có khoảng cách thôi.
Thế thì hàm wp để sau cũng được,em cho xuât cho anh cả 2 định dạng,tọa độ như đã viết ,file 2 là khoảng cách ,giá trị text ( Chú ý vẫn theo chiều x,y tăng giảm). Cảm ơn Duy.
Lisp Này cho phép chọn nhiều pline bao quanh tập hợp. Duy đã chỉnh lại layer mặc đĩnh là DOCAO luôn rồi. Đã thêm luôn phần dòng ghi tập hợp số ... trong phần viết ra file. -Tên lệnh là XTPL. Lưu ý trong mổi tập hợp phải chọn ít nhất 1 text đánh dầu chứ ko thì hình như lisp lổi. Từ từ Duy khắc phục.
Anh Duy viết dùm em cái Lisp bẻ và nối đối tượng : Em có đường Line hoặc Polyline muốn bẻ gãy làm nhiều đoạn nhưng vẫn liền nhau Bình thường em vẫn phải làm : dùng lệnh “BR” Break bẻ đối tượng các vi trí cần dùng sau đó dùng “PE” Pedit để nối lại các điểm đó ( vì làm Nova nên phải làm trên Cad 14). Làm như vậy mất công quá Nên Nhờ anh viết giúp cái Lisp làm cho nhanh. Cảm ơn
Anh ơi anh còn viết Lisp theo yêu cầu không? Anh viết giúp em Lisp xác định và ghi độ dốc của các đường Line và pline (theo%) với. Em cảm ơn ah. Mail em: qkhs.live@gmail.com
anh duy oi em dang can gap ne anh duy viet dum em lip tinh dien tich nhu trong hinh ve http://www.mediafire.com/?1udeogva4jucevg tranvanthan74@gmail.com
Block đó là nhóm các Block thuộc tính. Nếu dùng lệnh insert bình thường thì OK nhưng nó qua nhiều bước quá nên em muốn tạo một Lisp để thực hiện tất cả các bước đó. BK1 đã tồn ại trong đường dẩn mặc định của cad Và khi bật Cad lên nó báo thế này: Command: bkt ; error: too few arguments
Nó báo như thế là đối số nhập vào quá ít. -Với block thuộc tính thì sau khi nhập tỉ lệ x,y góc quay tương đương với mấy dấu "" của Vương cần phải cung cấp các giá trị khác của block thuộc tính đó nửa nên mình mới hỏi cho xem cái block đó để biết cần thêm bao nhiêu dấu "" thì đủ. -Vương làm như sau: Dùng lệnh insert cùa cad chèn cái block đó vào và xem mình thao tác như nào: +Chọn điểm. cái này trong lisp thay bằng P1 rồi. +Enter mấy lần, enter không hay là có nhập giá trị rồi mới enter. Đếm đúng chính xác như thế rồi viết thêm vào lisp: +Enter tương ứng với "" +Giá trị nhập ví dụ là A thì tương ứng "A". +Giá trị nhập đã được gán thành biến ví dụ là biena thì nhập là biena.
Em up file lên anh xem giúp nhé. Em thử rồi mà cũng chưa được (khả năng lisp còn kém quá, hi hi) Em nghĩ là cái dấu "" cuối cùng thiếu cái gì đó. http://www.mediafire.com/?3zv70io9sx6gvgf
Em đoán đúng chứ hỉ!!! Nghi nghi rồi mà khong biết như thế nào. Anh giải thích giúp chữ "last" cho em hiểu với. Cảm ơn anh nghe. Em còn làm phiền anh nhiều, hi hi!!!
Cho em hỏi thêm tí, hi` hi`!! Bây giờ em muốn chèn block BK1 với điểm chọn là là ngay vị trí góc trên bên trái bảng thì trong Lisp mình thêm dòng lệnh gì nữa anh Duy? Em đang trong giai đoạn học hỏi, có gì mong anh chỉ bảo thêm. Thanks anh
Chú dạo này lười lắm nhé khéo mà ỵut nghề bây giờ :-p. (command "-insert" "bk1" p1 "" "" "" "EXPLODE" "last" "") -Tương đương gỏ lệnh insert, nhập bk1, chọn điểm p1, enter ba lần. Lúc này block bk1 đã được chèn. -Gỏ lệnh explode gỏ last nghĩa là chọn đối tượng vừa được tạo ra, enter.
Hôm trước có thử đưa điểm chèn về gốc tọa độ rồi mà do trong đường dẫn mặc định có thêm cái BK1 nữa (không biết thằng nào bỏ vô :D)nên mới hỏi Có vấn đề để trò chuyện với ông anh nữa rồi. Là thế này: 1- khi load lisp của anh đã sửa dùng thì OK nhưng tại dòng command thấy báo thế này có vẻ hơi mất thẩm mỹ: ....... Command: BKT Unknown command "BKT". Press F1 for help. ...... Thấy cái dòng này có vẻ không đam mê lắm. he he!!! Làm phiền ông anh nhiều, ngại quá, ngại quá
Vương copy cái dòng (command "-insert" "bk1" p1 "" "" "" "EXPLODE" "last" "") Bỏ vào trong cái lisp của Vương là được thôi. -Thì Vương sửa điểm chèn của block trong đường dẩn mặc định luon là xong mà
Mình muốn sử dụng lệnh mpedit trong cadR14 .Bạn có thể viết giúp mình một lisp như thế không. Mình cảm ơn rất nhiều
Trả lờiXóaLệnh mpedit trong cadR14 đã có rồi đó bạn. Nó nằm trong bộ Bonus. Khi cài thì bạn cài Full sẽ có.
Trả lờiXóaBạn nêu rỏ cái đầu vào và đầu ra cái! Nguyên tắc dựng hình, thông số nhập vào?
Trả lờiXóamình cần viết một cái lisp vẽ đường thân khai, nếu vẽ thủ công bình thường thì : vẽ đồ thị sao cho chu vi bằng 120( qua 12 điểm). Sau đó scale toàn bộ, sao cho đường kính = phi yêu cầu.
Trả lờiXóaVẽ circle : chu vi =120 --> vẽ 12tia và 12 đoạn dài 120
Vẽ " lưới": cắt mỗi tia 1 số đoạn theo yêu cầu ( cắt đi 10 cho dễ :-D
Nói thía ko bít Duy đã hình dung ra chưa nữa >.<
Có gì Duy liên lạc qua yahoo với mình được ko? baby_sanhdieu22@yahoo.com
Cảm ơn Duy nhé ~"~
Còn cái hình Xicloit nữa T_T
Trả lờiXóa*Mình đọc cái diễn giải và cái hình của bạn có 1 số chổ không khớp.
Trả lờiXóa-Bạn nói "Vẽ circle chu vi =120" nhưng mình coi trong hình thì như sau:
+Vẽ đoạn thẳng dài 50.
+Array nó thành 12 đối tượng theo hình tròn.
+Vẽ hình tròn tâm tại điểm giao 12 đoạn thẳng vừa array. (như vậy hình tròn này có bán kính là 50 và chu vi 314.1593).
+Từ giao điểm của các đoạn thẳng với đường tròn vẽ các đường thẳng nằm ngang.
+Copy đường tròn thành 12 đối tượng cách nhau 25
+Vẽ đường spline qua giao điểm của đường tròn và đường thẳng ngang.
-Bạn cần cái nào có chu vi là 120. Con số này bất biến hay lisp hỏi và bạn nhập vào.
**Cách yêu cầu viết lisp như sau:
-Bạn muốn lisp hỏi bạn những gì.
-Kết quả lisp xuất ra như thế nào (nguyên tắc cho ra kết quả)
Ặc ặc, sorry anh. Cái bài hum trước là cua thằng bạn em vẽ theo trong sách. Nhưng thầy nói vẽ như thế thì sẽ khó cho bọn em nên thầy đã cho vẽ theo cách giống em nói .
Trả lờiXóahttp://www.cadviet.com/upfiles/2/bai5.dwg đây là bài em vẽ.
Còn về việc viết lisp thì em mún viết một cái lisp để nó hỏi mình nhập chu vi...
( cái đoạn này thầy nói mình mún viết sao cũng được miễn là nó ra cái hình đó là được >.<)
Anh chỉ giáo thêm cho em nhé ^^.
http://www.cadviet.com/upfiles/2/thankhai_xicloit.dwg
Trả lờiXóaNó đây nè anh :-D
Bạn tải file này về giải nén được 3 file. Chép tất cả vào thư mục cài đặt cad. Load file vehinh.lsp lên.
Trả lờiXóa-Lệnh vethankhai và lệnh vexicloit.
-Lisp hỏi chọn điểm bắt đầu vẽ, và hỏi chu vu hình tròn.
http://www.4shared.com/file/190493114/4751bf9e/vehinh.html
Em cám ơn anh nhìu :-(
Trả lờiXóaAnh Duy ơi, em lại làm phiền anh nữa nè ^^! Hum trước anh làm cho em đó, là nó insert một bản vẽ đã có sẵn. Nếu bản vẽ save as acad 2007 format thì chương trình sẽ bị lỗi nếu chạy trong Acad cũ hơn (ví dụ Acad 2004).
Trả lờiXóaGiờ em mong anh giúp em viết cái lisp mà nó làm từ A đến Z được không ạ, anh giúp em với >.<
Cụ thể là em mún nó như này nè
-Nhập số liệu, điểm bắt đầu (tâm vòng tròn).
-Vẽ vòng tròn xuất phát
-tính các điểm trung gian.
-Gọi lệnh command Spline. Lần lượt xuất từng điểm ra cho command
-Kết thúc lệnh vẽ Spline
-Vẽ các trục oX và oY.
Em cảm ơn anh nhiều ^^!
Viết được nhưng phải khoảng 7 ngày sau nha bạn!
Trả lờiXóaHì, em cảm ơn anh nhiều nhiều ^^!
Trả lờiXóaBạn tải file lisp này về load lên. Tên lệnh như cũ.
Trả lờiXóa-Về vẽ thankhai thì các điểm để vẽ thành đường spline là xác định đúng 12 điểm.
-Còn vẽ xicloit thì trong bản vẽ mẫu của bạn đường spline xác địch chỉ bằng 3 điểm mà lại hình như không đối xứng mình cũng vẽ đúng như vậy. Nếu muốn chình thì gửi lại file xicloit chính xác cho mình.
http://www.4shared.com/file/204556667/7fa9a30d/vehinhs.html
Cập nhật lại link lổi.
Trả lờiXóahttp://www.4shared.com/file/204710059/2a92f96c/vehinhs.html
http://www.cadviet.com/upfiles/2/xicloit_1.dwg
Trả lờiXóaChính xác là link này anh ah. Link trên bị thừa 1 vòng tròn :-D. Anh giúp em với nhé ^^!
Hihi, cảm ơn anh nhiều và chúc anh năm mới vui vẻ ^^!
Trả lờiXóaChào anh Duy ! ,anh có thể viết cho em 1 cái lisp để edit như thế này ko a ? e có 1 bản vẽ cốt thép bị lỗi như sau : 1 loại thép số hiệu 10 phi 32a200 , nhưng cũng với thép số hiệu là 10 nhưng có chỗ là phi20a200 hoặc phi 32a150 . Bây giờ e muốn sửa tất cả thép số hiệu 10 là phi32a200 , ma` trong ban ve lai co nhieu thep co so hieu khac nhau , mong anh cứu e với !
Trả lờiXóaBạn gửi file dwg mình xem thử.
Trả lờiXóaNhờ anh Duy xem lại khi mình sử dụng bộ Lisp KSVN chỉ dùng trên USB và sau khi thoát ra thì gở luôn nó ra khỏi Cad của máy đang dùng.
Trả lờiXóaOk men! Chờ vài hôm nhé.
Trả lờiXóaHi, em cũng đang có ý định xây dựng 1 bộ tiện ích di động, em xin phép được tham khảo code của anh để học hỏi nha. thank anh nhiều
Trả lờiXóaPS: em là Thaistreetz bên cadviet :D
Bạn chỉ cần xem file run.lsp là ok. Sang cadviet mình có bài lisp di động đấy có giải thích cách làm việc cùa thèn này. Chúc thành công!
Trả lờiXóaNhờ anh Duy xem dùm em Lisp này với , em muốn sau khi nhập dữ kiện xong thì Lisp tự động vẽ hết mình không phải thao tác gì hi hi
Trả lờiXóahttp://www.mediafire.com/?un2ztwmdzzd
Cám Ơn Anh .
Cám ơn anh đã cho em thêm một chút kiến thức lúc này em cảm thấy yêu đời hơn bao giờ hết . ha ha
Trả lờiXóaChúc anh luôn vui vẻ ! Cám ơn anh .
Nhờ anh chỉ giúp :
Trả lờiXóa(setq diemcmoi (cdr (assoc 10 ttdtc)))
Làm sao mình biết được Item = 10 vậy anh ?
Cám ơn Anh
Bạn xem bài hướng dẩn viết lisp số 30 để biết về các mã dxf. Thông trường nhất là bây nhiêu đấy. Còn cần thêm thì bạn xem trong sácg lisp nhé. Có gì không hiểu mình sẽ nói thêm.
Trả lờiXóaMình làm bên trắc đia bản đồ ,khi đo các điểm cao độ (dạng text)nhiều khi dày đặc trên bản vẽ ,vì vậy để in ra thì rất xấu.
Trả lờiXóaDo đó mình phải xóa đi các cao dộ gần nhau đẻ o bị dè nhau khi in.
Nhờ bạn viết 1 lisp có nhiệm vụ xóa các điểm cao độ gần nhau (theo mình lựa chọn 1 giá trị nào đó ví dụ 1m,2m theo ý người dùng).Nghĩa là xóa các điểm text trong vòng đó để các điểm cao độ o gần nhau in được.
Nếu có thể thì xuất ra 2 file tọa độ (file các điểm đã loại và file các điểm để trên bản vẽ).
Xin cản ơn.
trên cadviet đã có đặt ra vấn đề này (xóa cao độ gần và trùng nhau ) nhưng chưa ai giải quyết,vậy nhờ bạn viết giúp đoạn lisp cho mình nhé.Xin cảm ơn
ndbngo@yahoo.com
Bạn up cho mình 1 góc file để dể hình dung nhé!
Trả lờiXóaMình đã gửi file bản vẽ vào cả 2 hợp thư của bạn .Mình thử dùng phần khảo sát thì có 1 số lỗi như trong bản vẽ mình đã vẽ{
Trả lờiXóa_Hatch nhảy không như yêu cầu
_Nhờ bạn sửa hatch lúa 2 vụ như bản vẽ đó giúp (chắc phải chỉnh góc hatch...)
Xin cảm ơn.
ndbngo@yahoo.com
bản vẽ của mình .nhờ ban giúp
Trả lờiXóahttp://www.2shared.com/photo/A8tNayla/BDONOP1.html
thank
Vậy theo bạn thì các đối tượng hatch (mình ví dụ 2 trường hợp thôi,còn nhiều nữa...)lại có hiện tượng thế ,cách khắc phục(Chú ý: các *.pat trong chương trình của bạn là sao chép nguyên si các *. pat của chương trình Topo (Hamony Co.)đó-sợ có ảnh hưởng đến bản quyền o).Cách khắc phục để có thể dùng các hatch này .
Trả lờiXóaVề việc xóa điểm theo mình có thể xuất ra dạng file tọa độ.Lấy 1 điểm làm gốc so sánh với tất cả các điểm còn lại nếu điểm nào có khoảng cách nhỏ hơn 1 tri do cho trước ( gán hàm khi nhập...m - Theo ý người sử dụng)thì loại sang file khác ,tiếp tục vònglăp cho điểm thứ 2 ...3... end. Mình nghĩ thế ,không biết có được o,bạn xem có thể làm theo hướng đó đc o.
Xin cảm ơn .
Ndbngo@yahoo.com 0988529640
Cảm ơn bạn ,theo bạn mình chuyển về tọa độ 0,0 thì o bị phá vỡ nữa .Còn về .pat mình cũng đọc về khaosat 2009 cấp nhưng mình sợ bạn o biết về nguồn gôc các file *.pat đó mà thôi.
Trả lờiXóaThank.
Chào anh...em là dân khảo sát đường nhờ anh viết hộ cho 1 cái lisp.
Trả lờiXóa-Mục đích: Xóa những text cao độ đè lên nhau.
Khi bọn em xuất cao độ địa hình ra thì những vị trí gần nhau, text cao độ sẽ bị chèn lên nhau. Ý em muốn là xóa bớt những text cao độ sao cho cả bản vẽ ko có 2 text nào chèn lên nhau...và khoảng cách nhỏ nhất giữa 2 text ko nhỏ hơn 1 giá trị nào đó (phụ thuộc vào chiều cao text) để các text ko sít nhau quá, cho dễ nhìn 1 chút...
Ý sơ sơ của em là như thế, em có ví dụ file *.dwg kèm theo...Rất rất mong a giúp đỡ ạ!!!
http://www.mediafire.com/?cf7ncx36n94g5eb
Xin lỗi vì đã làm phiền bạn,đành phải cố gắng học theo các bài của bạn để tự viết lấy vậy thôi.
Trả lờiXóaMình muốn hỏi là dùng lisp thì có thể viết dể xuất 1 dạng file text này sang 1 file text khác được o(nghĩa là từ file nguồn chuyển sang file đích có định dạng khác-mình sẽ gửi file).
nếu có thể Duy viết giúp hoặc hướng dẫn mình viết nhé .Mình có 2 file file 1 số liệu ,file 2 ghi chú theo số thứ tự của cột thứ nhất.Ở file thứ nhất là các điểm từ 1,...end.
file 2 là ghi chú sẽ gán cho các điểm đó. Mình cần 1 file tổng hợp thứ 3 gán các ghi chú ở file 2 vào các điểm của file 1.((mình gửi ở hộp thư)
Xin cảm ơn .
Mình đã gửi vào hộp thư cho bạn .
Trả lờiXóaMong tin.
Đã xem 3 file của bạn gửi. Hướng giải quyết thì mình đề xuất như sau:
Trả lờiXóa-Chỉ định file 1.
-Đọc từng dòng file 1 nếu có nội dung thì xử lý (đoạn 1). Nếu dòng trống thì kết thúc lệnh.
-Nội dung đoạn 1 như sau:
+Đọc lần lượt từng ký tự của dòng đến khi gặp ký tự thì lấy ký tự này làm biến noidungdau tiếp tục đọc ký tự tiếp theo đến khi gặp ký tự rỗng thì kết thúc việc lấy biến noidungdau.
+Dùng hàm điều kiện so sánh biến noidungdau (FILE 2 của bạn nếu là cố định thì nên đưa nó vào lisp chứ đọc file 2 để lấy điều kiện nửa thì rất dài dòng).
+Ghép thêm chuổi đầu cần thêm vào sau đó ghi ra file khác.
Bạn thấy như vậy có đúng ý không và bạn tự viết được không? Chứ mình thì có hướng như vậy nhưng đang đau nên cũng lười hoạt động, chờ thời gian nửa đã.
Gửi Duy rất thân. Cho mình gọi như thế ,thứ nhất là khả năng chịu học hỏi, hơn nữa nhiều khi làm không công và mã nguồn mở em biết rồi ,nhiều lúc bản quyền là vô nghĩa hơn nữa tỉnh lẻ ,huyện miền núi như Bình sơn (Vì anh đã từng ghi đấu chân và làm việc mọi vùng miền của đất Quảng ngãi (Bạn anh cùng học hiện là quan chức nhất nhì của Sở Tài nguyên và môi trường)) .Mình học hành ,cái tâm,cái tài muốn hỗ trợ cho mọi người đê trí thức Việt mình dám ngẩng đầu với thế giới là rất tốt. Nhưng anh nghĩ khi em bỏ công sức ,nhiều khi thức trắng đêm để viết và thử nghiệm phần mềm.Mình có thể o lấy nhiều ,nhưng khi sản xuất áp dụng có hiệu quả thì công ngươi viết ,lao tâm khổ tứ mà o có gì thì anh nghĩ o đc .Năm 98 anh viết 1 phần mềm vẽ nhà như em ,tất nhiên hiệu quả và hợp lý hơn (Vì anh là ngừơi chuyên ngành cơ quan đã thưởng 1 tr(Vì thế hệ cũ anh chỉ viêt trên Pascan qua đuôi Dxf).
Trả lờiXóaVậy anh nghĩ 1 đoạn tiện ích như em viết cho khaosat2009 thì em nên cũng nên láy khoảng 1 tr.Không thì bọn anh là sản xuât thì lợi mà em o có gì thì anh nghĩ ngợi quá.
Thân.
Nếu có thể khác quan điểm của em thì em xóa đi.
Chào em .Ngô Đông Phương (ndbngo,ndpngo) 0988529640.
Vì hơn em gần 2 thập kỷ (nêu em sinh 1968) có suy nghĩ và nhìn nhận khác em thì em thông cảm nhé.
Trả lờiXóaMong gặp,nếu em ra Hà nội thì gọi cho anh.
thank.
Anh gõ nhầm anh sinh 1964 em 1978 .
Trả lờiXóaThế thì Duy phải gọi bằng anh rồi. Cái vụ thù lao thì đúng là Duy chưa dám nghỉ tới vì nói chung các tiện ích viết ra còn ít nhiều tham khảo ý kiến của anh em cadviet và còn có chổ sai xót không ok hoàn toàn được. Viết giúp thì được chứ viết lấy thù lao thì chắc bị phạt hợp đồng miết quá.
Trả lờiXóaÀ Bình Sơn là huyện đồng bằng nằm phía bắc tỉnh Quảng Ngãi chứ ko đc sếp vào huyện miền núi anh à.
Đã xong lisp ghép file txtrồi anh chạy thử xem đúng ý không nhé.
Trả lờiXóa+Lệnh: GTT.
+Load lisp, nhập lệnh, chỉ file muốn chỉnh.
+Vào thư mục chứa file muốn chỉnh xem nội dung file mới tạo (có thêm chử duythem).
*Lưu ý chuyển file muốn chỉnh về đuôi txt trước khi thực hiện lệnh.
http://www.4shared.com/file/1FEIo-PE/ghepthemfiletext.html
Mình muốn bác viết cho mình xin cái Lisp tạo ra một text gốc chẳng han: A1
Trả lờiXóaTrong đó A: mình có thể tùy biến
Sau khi tạo ra text gốc là A1 mình sẽ copy text gốc này ra nhiều text khác là con của text gốc A1 này mình muốn text con của nó thứ tự tăng dần sẽ là A2, A3, A4......
Cảm ơn bác, không biết hồi xưa bác học trường nào nhỉ?@@
-Nếu dạng như sau thì mình viết được:
Trả lờiXóa+Bảo chọn điểm viết text,
+Hỏi giá trị cố định phía trước,
+Hỏi giá trị thay đổi phía sau,
+Hỏi giá trị cộng thêm,
+Hỏi số lượng rải tex này, hỏi khoảng cách.
-Còn nếu muốn copy text có sẳn thì như sau:
+Bảo chọn text mẩu
+Hỏi giá trị cần thay đổi là mấy số tính từ sau tính tới.
+Hỏi giá trị cộng thêm.
+Đoạn sau làm như copy bình thường.
@Mình học ĐHK TRÚC Hà Nội
Oh! Thanks bác Duy, mục đích của mình là cái vế này:
Trả lờiXóa"-Còn nếu muốn copy text có sẳn thì như sau:
+Bảo chọn text mẩu
+Hỏi giá trị cần thay đổi là mấy số tính từ sau tính tới.
+Hỏi giá trị cộng thêm.
+Đoạn sau làm như copy bình thường."
Nếu được bác cho mình xin cái Lisp này!
Mình học ĐH KTrúc HCM!
Thanks bác!
Trả lờiXóaChúc bác sức khỏe, công tác tốt!!
Bác Duy làm cách nào phá Block có xài ATT mà vẫn giữ nguyên số trong Block đó nhỉ?
Trả lờiXóaThanks bác!!
Lệnh burst trong EXpress có sẳn đấy bạn.
Trả lờiXóaAnh Duy, em có vài cái file lisp em muốn add vào cad, có cái lisp nào add tự động các file .lsp, .Fas,... vào cad mà không dùng lệnh AP không nhỉ?!!
Trả lờiXóaThanks anh!
Gỏ lệnh AP, chọn nút Contents..., chọn add, chọn tất cả các lisp và fas vào sau đó cứ khởi động cad thì các file nằm trong danh sách bạn đã add sẽ tự load.
Trả lờiXóaÝ em là em có một số file .lsp, .fas, .arx đã đóng gói thành 1 ctrình nhỏ để chạy nó tự bung ra, vì vậy em muốn viết 1 file lisp với đường dẫn như thế nào để khi cài đặt ctrình thì CAD tự load lun. Em có tham khảo mấy file Lisp acaddoc.lsp và làm theo hương dẫn nhưng vẫn không load các file trên được, mong anh chỉ giáo!!
Trả lờiXóaDòng đó như này: NHớ là tên file không có đuôi mở rộng nhé
Trả lờiXóa(load "c:/tienich/lenh/thuvienndung")
(load "c:/tienich/lenh/thuvienchitiet")
(load "C:/Program Files/AutoCAD 2007/Support/DOSLib17")
Trả lờiXóaem đánh lệnh như thế sao mấy cái file lisp thì load được nhưng cái file DOSLib17 không load được anh nhỉ?!!! CAD2007 nó báo như thế này:
AutoCAD menu utilities loaded.; error: LOAD failed: "C:/Program Files/AutoCAD
2007/Support/DOSLib17"
DOSLib17 nó là file gì bạn? Đuôi ấy!
Trả lờiXóafile .arx đó anh
Trả lờiXóaem đánh thêm arx ở phía trước Load
nó chạy được roài, nhưng khổ nỗi nếu nó load đến cái file nào nó báo lỗi thì các file load tiếp theo nó không thực hiện được anh ah!!
anh có cách nào khắc phục ko?!
Thanks anh!
Không! Chịu khó load thử trước khi đưa vào lisp vậy ha.
Trả lờiXóaanh Duy có phầm mềm viết file .fas không? em đang cần nó để mã hóa 1 số file lisp. Em không hiểu lắm về file .Fas, anh có thể giúp em không?
Trả lờiXóaThanks!!
Mình chưa nghiên cứu việc này nên ko trả lời bạn được.
Trả lờiXóaanh Duy à,anh không trả lời câu hỏi của bạn Khương Duy ngày 21/7/2010 a,anh có lênh dấy không ạ ?
Trả lờiXóaVấn đề này đã bàn luận và giải quyết tại đây bạn vào xem nhé:
Trả lờiXóahttp://www.cadviet.com/forum/index.php?showtopic=23110&st=0
Mình kiểm tra thì các text đã chuyển đến đường thẳng (line) nhưng đúng là khoảng cách của các text chưa khớp với các trường hợp các text này chuyển vuông góc với line.
Trả lờiXóaVề thuật toán thì cũng chưa biết được.
Vậy duy cứ nghiên cứu và viết tiếp hộ với .
Cảm ơn
http://www.mediafire.com/file/pno372it7ja64x9/truoc.dwg
Trả lờiXóaDuy thử với bản vẽ này ,sau khi thực hiện CCT các text dồn thành 1 đống với nhau
http://www.mediafire.com/file/vcashq2pys1p28a/sau.dwg
OK bây giờ bài toán vuông góc là chinhính xác rồi đó anh thư xem nhé. hi vọng đúng ý anh.
Trả lờiXóahttp://www.4shared.com/file/V38ddxeQ/canhchinhtextok.html
Đây là file đã gộp 2 lựa chọn:
Trả lờiXóa-CCTT: Chọn Line và nhập khoảng cách ảnh hưởng.
-CCT: chọn Line và chọn các text ảnh hưởng.
http://www.4shared.com/file/_AVcAc0F/canhchinhtextok_2.html
Rất đạt yêu cầu đặt ra .Không nghĩ việc lấy vuông góc phải đặt ra nhiều biến như vậy.
Trả lờiXóaXin cảm ơn vì nhiệt tình của bạn .Hy vọng được Duy giúp cho các lisp có hiệu quả trong công việc như vậy.
Đây là phần đầu bài toán mà mình đang giải quyết
Phần 2 là xuất tất cả các text này ra 1 file *.txt (Theo đường dẫn ) theo 4 lựa chọn ( x tăng,x giảm,y tăng ,y giảm ).
Nếu có thời gian rảnh ,Duy ngiên cứu viêt giúp với.
Cảm ơn lần nữa.
Xuất ra file thì dể lắm nhưng thuật toán sắp sếp để Duy lội qua cadviet mót xong hiểu được thì mới viết được, anh chờ vài ngày nhé! À anh nói theo đường dẩn là cố định hay hiện hộp thoại hỏi chọn vị trí?
Trả lờiXóaNên cho hội thoại thì hay hơn.
Trả lờiXóaXuất ra tọa độ thì đúng là thuật toán dơn giân,diễn đàn đã có nhiều nhưng việc phải lựa chọn (x,y tăng,giảm ) thì diễn đàn mới đặt sơ qua mà thôi
http://www.cadviet.com/forum/index.php?s=&showtopic=13203&view=findpost&p=73455
Thời gian thì vài ngày hay 1 tuần cũng được mà.
Cảm ơn.
Theo mình thì tạo đường dẫn ( open " D:/toado/text.td " "a").
Trả lờiXóaThời gian thì lúc rảnh Duy viết cho mình cũng được.
Chúc mừng bạn một năm mới tốt lành ,vui vẻ ,xóa được chữ "độc" trong phần giới thiệu.
Trả lờiXóaCảm ơn anh Duy nha !
Trả lờiXóaCái Lisp anh viết tốt rồi nhưng nhờ anh sửa thêm lại dùm em 1 chút nữa,
Kết quả L=*** là được rồi, nhưng i=*** nhờ anh sửa thành i=**% (phần trăm)
Vì kết quả nó ra dài quá che mất 1 trong 2 text khi khoảng cách 2 text gần nhau. Anh cho text i=**% nằm dưới l=*** cho nó dễ nhìn :
L=***
i=**%
Cảm ơn anh
http://www.4shared.com/file/A7TnHxtX/dodoc_2.html
Trả lờiXóaĐây bạn:
a có thể viết giúp e cái lisp vẽ các loại của 1,2,4 cánh và cửa sổ không. Em đã tìm hết rồi nhưng đều thấy chỉ là chương trình phụ trợ không dành cho win 7. và có người viết lisp rồi nhưng không dùng được. e xin cảm ơn trước ah. ( e cũng đã tìm luôn trên google nhưng khong thấy ) ai chỉ giúp e với!
Trả lờiXóaAnh sửa lại dùm cái i=00.00%
Trả lờiXóaĐộ dốc của mình là 25.24% mà trong kết quả là i=0.25%
Anh đưa về 2 số lẻ giúp em
Bạn sửa dòng:
Trả lờiXóa(setq dodoc (/ gialech giatril))
Thành:
(setq dodoc (* (/ gialech giatril) 100))
Là được nha!
Được rồi Anh Duy ơi !
Trả lờiXóaCảm ơn anh nhiều.
Mình đã dow về và kiểm tra ,các kết quả đều đúng .Nhưng ý mình muốn là sau khi chọn đối tượng text tại layer 1( Layer Duy yêu cầu mình chọn ) thì sau đó mới xuât hiên 4 lựa chon:
Trả lờiXóaXT(1).XG(2).YT(3),YG(4) và người dùng chọn 1,2,3,4
Các text được lựa chọn đánh dấu chỉ có 1 (hoặc 2 text) được chọn bằng kích chuột hoặc cửa sổ thì trong tập hợp xuât ra text này có chữ T .
Rất cảm ơn Duy đã viết cho mình(Giải thich giúp mình về hàm vla-sort nhé).
http://www.4shared.com/file/rSoOMfVs/xtexrafileok_2.html
Trả lờiXóaOkay Lisp đã thêm phần đánh số thứ tự đầu dòng và tối ưu lại rồi anh Test xem nhé. Hy vọng đúng ý.
Rất cảm ơn vì công sức và chất xám của bạn,mình đang đi công tác nên không có cad để thử và kiểm tra kết quả,có gì mình sẽ phản hồi sau (vào tối mai) .
Trả lờiXóaMình muốn hỏi rằng khi dùng lisp thì có thê xuất ra đồng thời 2 file( hoặc nhiều hơn-Lớn nhất là bao nhiêu file) được không ví dụ như trên là định dạng 1 ,kiểu khác nữa là định dạng 2 vi dụ:
Định khác là 3 cột
Thứ tự /khoảng cách giũa các text/ giá trị text .(theo chiều tăng giảm x,y trên màn hình )
Nhờ viêt nhiều biết là phiền quá ,nên có thể lúc rỗi Duy nghiên cứu giúp minh gợi ý(tất nhiên là viết được thì quá tuyệt vời thì mình dễ học và nâng cao trình độ ,nghiên cứu lập trình nhanh hơn) .
Xin cảm ơn bạn lần nữa.
Mail của mình là ndbngo@yahoo.com
or Phuongksxdhn@gmail.com
Hồi tối đã up sao sáng nay mất tiêu nên Duy up lại đây. Lisp đã hoàn thiện đầy đủ cả cột số thứ tự. và củng đã tối ưu hoá cho gọn lại. Lệnh như cũ.
Trả lờiXóahttp://www.4shared.com/file/rSoOMfVs/xtexrafileok_2.html
*Về lý thuyết thì 1 lúc có thể xuất ra nhiều file text ko biết giới hạn là bao nhiêu nhưng Duy thử 5 file thì vô tư.
Mình đẫ chạy thử và kết quả tốt ,nhưng mình muốn Duy chỉnh giúp 1 số điêu như sau:
Trả lờiXóa-Layer mặc định là "Text1" không phải chọn layer nữa
-Lưa chọn các text (vì có vài trăm tập hợp text) băng cách kích chuột vào đường pline khép kín đã vẽ trước bao quanh từng tập hợp này)
_vì nhiều tập hợp text nên Duy tạo cho vòng lặp liên tục chỉ kết thúc khi ấn enter.
Sau khi ấn kết thúc có thể có được thông báo đã có bao tập hợp được chọn và số dối tượng trong từng tập hợp đó.
Xin cảm ơn.
Đánh dâu text nên để ,không đánh dấu thì ấn enter bỏ qua.Để từng trường hợp thôi cũng hợp lý (4 trường hợp) ,để gọn khi sử lý số liệu cũng là 1 ý hay.Sẽ gõ lệnh XT,yt,xg,yg không dùng lệnh chung để chọn nữa cũng hay
Trả lờiXóaCó thể thế thì dễ hiêu hơn ,mình vừa học sẽ dễ hiểu và chỉnh sửa theo ý muốn hơn,còn của Hoanh nhiều khi gọn quá ,mình chưa hiểu được nên khó sửa (Dù hay mà gọn ).
Anh thấy hàm tự tạo ssget "Wp" plst chọn đối tượng pick theo đường bao hay và nhanh trong bài toán của anh đang giải quyết.
Lúc nào em viết gợi ý bài về từ 1 dữ liệu xuất ra cùng lúc đông thời nhiều file với với(chắc cũng chỉ cần đến 4 định dạng thôi chứ khong cần nhiều hơn.
Xin cảm ơn.
Viết xong mới đọc mail ,em gửi .
Trả lờiXóaĐúng vậy trường hơp khoảng cách text nên cho bằng o ,trường hợp sau thì thì anh nghĩ phải dùng file 1 cua em ,ròi đọc từ đó ra khoảng cách các text ,chứ chưa nghĩ ra cách để lấy ngay từ màn hình để xuát file ,thôi thì học tiếp vậy ,vì để đọc hiểu các líp đã viết thì còn chưa hiểu ,nhất là khi có các hàm VL .
Cảm ơn Duy
-Cái vụ lấy tập hợp chọn trong pline giới hạn coi thế nhưng mà rất rắc rối vì dùng WP thì phải chọn từng đỉnh pline chứ không phải chọn pline. Cái này Duy đã đọc mấy lisp của Tuệ viết nhưng vẩn chưa hiểu.
Trả lờiXóa-Lấy khoảng cách thì đơn giản vì đã có giá trị toạ độ text rồi, dùng hàm distance là có khoảng cách thôi.
Thế thì hàm wp để sau cũng được,em cho xuât cho anh cả 2 định dạng,tọa độ như đã viết ,file 2 là khoảng cách ,giá trị text ( Chú ý vẫn theo chiều x,y tăng giảm).
Trả lờiXóaCảm ơn Duy.
Lisp Này cho phép chọn nhiều pline bao quanh tập hợp. Duy đã chỉnh lại layer mặc đĩnh là DOCAO luôn rồi. Đã thêm luôn phần dòng ghi tập hợp số ... trong phần viết ra file.
Trả lờiXóa-Tên lệnh là XTPL. Lưu ý trong mổi tập hợp phải chọn ít nhất 1 text đánh dầu chứ ko thì hình như lisp lổi. Từ từ Duy khắc phục.
http://www.4shared.com/file/E3bJWulf/xftlp.html
Lisp đã đạt được theo yêu cầu của mình.
Trả lờiXóaCảm ơn Duy.
Yêu cầu tiếp mình gửi Duy qua Mail.
Hẹ hẹ. Visua thì em bó tay bác ợ. Nếu Là LSP và DCL + NS thì mình còn nhờ anh GOOGLE dịch rồi sửa được chứ như này thì em xin vái cả nón.
Trả lờiXóaAnh Duy viết dùm em cái Lisp bẻ và nối đối tượng :
Trả lờiXóaEm có đường Line hoặc Polyline muốn bẻ gãy làm nhiều đoạn nhưng vẫn liền nhau
Bình thường em vẫn phải làm : dùng lệnh “BR” Break bẻ đối tượng các vi trí cần dùng sau đó dùng “PE” Pedit để nối lại các điểm đó ( vì làm Nova nên phải làm trên Cad 14). Làm như vậy mất công quá
Nên Nhờ anh viết giúp cái Lisp làm cho nhanh. Cảm ơn
Anh ơi anh còn viết Lisp theo yêu cầu không? Anh viết giúp em Lisp xác định và ghi độ dốc của các đường Line và pline (theo%) với. Em cảm ơn ah.
Trả lờiXóaMail em: qkhs.live@gmail.com
Chủ nhà đi đâu rồi vậy ta? Sao để vườn không nhà chống thế này?
Trả lờiXóaanh duy viet dum em lip tinh dien tich nhu trong hinh ve
Trả lờiXóahttp://www.mediafire.com/?1udeogva4jucevg
tranvanthan74@gmail.com
anh duy oi em dang can gap ne
Trả lờiXóaanh duy viet dum em lip tinh dien tich nhu trong hinh ve
http://www.mediafire.com/?1udeogva4jucevg
tranvanthan74@gmail.com
oh, anh duy oi, sao ko thay anh hoi am vay, anh ban lam aH, mong anh hoi am vai tien ich lisp upload thang 4
Trả lờiXóatranvanthan74@yahoo.com
Anh Duy xem giúp em còn thiếu thông số gì nhe
Trả lờiXóa(defun c:BKT (/P1)
(SETVAR "CMDECHO" 0)
(setq P1 (GETPOINT "\nChon diem chen bang thong ke:"))
(command "INSERT" "BK1" P1 "" "" "" "EXPLODE" "")
(SETVAR "CMDECHO" 1)
)
(princ)
1. Up block BK1 cho mình xem tí.
Trả lờiXóa2. BK1 đã tồn ại trong đường dẩn mặc định của cad chưa.
3. Khi chạy lisp báo lổi gì copy nội dung báo mình xem tí.
Block đó là nhóm các Block thuộc tính. Nếu dùng lệnh insert bình thường thì OK nhưng nó qua nhiều bước quá nên em muốn tạo một Lisp để thực hiện tất cả các bước đó.
Trả lờiXóaBK1 đã tồn ại trong đường dẩn mặc định của cad
Và khi bật Cad lên nó báo thế này:
Command: bkt
; error: too few arguments
Nó báo như thế là đối số nhập vào quá ít.
Trả lờiXóa-Với block thuộc tính thì sau khi nhập tỉ lệ x,y góc quay tương đương với mấy dấu "" của Vương cần phải cung cấp các giá trị khác của block thuộc tính đó nửa nên mình mới hỏi cho xem cái block đó để biết cần thêm bao nhiêu dấu "" thì đủ.
-Vương làm như sau: Dùng lệnh insert cùa cad chèn cái block đó vào và xem mình thao tác như nào:
+Chọn điểm. cái này trong lisp thay bằng P1 rồi.
+Enter mấy lần, enter không hay là có nhập giá trị rồi mới enter.
Đếm đúng chính xác như thế rồi viết thêm vào lisp:
+Enter tương ứng với ""
+Giá trị nhập ví dụ là A thì tương ứng "A".
+Giá trị nhập đã được gán thành biến ví dụ là biena thì nhập là biena.
Em up file lên anh xem giúp nhé. Em thử rồi mà cũng chưa được (khả năng lisp còn kém quá, hi hi)
Trả lờiXóaEm nghĩ là cái dấu "" cuối cùng thiếu cái gì đó.
http://www.mediafire.com/?3zv70io9sx6gvgf
(defun c:bkt ()
Trả lờiXóa(command "undo" "be")
(setq p1 (getpoint "\nDiem dat bang: "))
(command "-insert" "bk1" p1 "" "" "" "EXPLODE" "last" "")
(command "undo" "end")
(Princ))
Em đoán đúng chứ hỉ!!! Nghi nghi rồi mà khong biết như thế nào. Anh giải thích giúp chữ "last" cho em hiểu với. Cảm ơn anh nghe. Em còn làm phiền anh nhiều, hi hi!!!
Trả lờiXóaCho em hỏi thêm tí, hi` hi`!! Bây giờ em muốn chèn block BK1 với điểm chọn là là ngay vị trí góc trên bên trái bảng thì trong Lisp mình thêm dòng lệnh gì nữa anh Duy? Em đang trong giai đoạn học hỏi, có gì mong anh chỉ bảo thêm. Thanks anh
Trả lờiXóaChú dạo này lười lắm nhé khéo mà ỵut nghề bây giờ :-p.
Trả lờiXóa(command "-insert" "bk1" p1 "" "" "" "EXPLODE" "last" "")
-Tương đương gỏ lệnh insert, nhập bk1, chọn điểm p1, enter ba lần. Lúc này block bk1 đã được chèn.
-Gỏ lệnh explode gỏ last nghĩa là chọn đối tượng vừa được tạo ra, enter.
Muốn thay điểm chèn của block thì mở block đó ra và thay điểm chèn (move cái hình đó cái điểm mong nuốn về điểm 0,0) lisp ko cần chỉnh chi cả
Trả lờiXóaHôm trước có thử đưa điểm chèn về gốc tọa độ rồi mà do trong đường dẫn mặc định có thêm cái BK1 nữa (không biết thằng nào bỏ vô :D)nên mới hỏi
Trả lờiXóaCó vấn đề để trò chuyện với ông anh nữa rồi. Là thế này:
1- khi load lisp của anh đã sửa dùng thì OK nhưng tại dòng command thấy báo thế này có vẻ hơi mất thẩm mỹ:
.......
Command: BKT Unknown command "BKT". Press F1 for help.
......
Thấy cái dòng này có vẻ không đam mê lắm. he he!!!
Làm phiền ông anh nhiều, ngại quá, ngại quá
Vương copy cái dòng
Trả lờiXóa(command "-insert" "bk1" p1 "" "" "" "EXPLODE" "last" "")
Bỏ vào trong cái lisp của Vương là được thôi.
-Thì Vương sửa điểm chèn của block trong đường dẩn mặc định luon là xong mà