

tannguyen291
-
Số lượng nội dung
486 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
49
Bài đăng được đăng bởi tannguyen291
-
-
4 phút trước, Htn02 đã nói: a có font ko cho e xin với ạ
Font unicode chính là các font có sẵn của windows như: Arial, Time new roman, Calibri... ngoài ra có thể tải các font unicode khác trên google font nhiều vô số kể.
-
Thôi các bố dẹp mấy font .vn đi, lỗi lòi mắt. bây giờ văn bản giấy tờ đã yêu cầu sử dụng font unicode theo TC 6909 rồi. mấy bố vẽ kỹ thuật cứ ôm khư khư mấy font đời tống.
-
Trình độ DCL của bạn gần như chưa có gì nên là tốt nhất tham khảo những code đã có.
Mình từng đăng 1 dcl tặng mọi người có thể xem tại đây:
-
Đừng gọi lisp là list. Với pline tính diện tích bằng công thức Shoelace nên luôn ra kết quả. nhưng với hatch hoặc 1 số đối tượng khác việc cạnh biên tự giao thì không thể lấy được diện tích hoặc không thể tạo thành đối tượng. trong trường hợp này công thức tính kể trên cũng là tính sai nên cố gắng vẽ lại pline để hatch có diện tích.
-
30 phút trước, TTdra đã nói:Thầy cho em hỏi, em mới làm quen với autocad thì có nên học lập trình VBA ngay không ạ?
Em cảm ơn thầy ạ
Không biết bạn hoạt động trong ngành gì. nếu trong ngành xây dựng thì học autolisp ,vba. nếu bạn muốn đi theo đường code chuyên nghiệp thì c++, c#.
VBA lợi thế là vừa viết cho cad vừa viết được cho exel. autolisp lợi thế dễ học.
Còn khi đã thích thì ngôn ngữ nào cũng được.
-
1
-
-
Mình k dùng cad map. chỉ biết là có chức năng này thôi. bạn tự tìm hiểu xem: https://www.youtube.com/watch?v=y8m697I5-eU&t=323s
-
15 giờ trước, nguyenhong3868 đã nói:Em đang có các tờ bản đồ địa chính File Autocad, trên bản đồ có rất nhiều thửa đất được vẽ bằng Line
Nhiệm vụ của em là : Bo từng thửa đất để tạo thành thửa khép kín bằng đường Polyline ở 1 Level hiện tại và màu Level hiện tại đó Nếu sử dụng lệnh Bo từng thửa 1 thì mất rất nhiều thời gian và có khi còn bị sót không kiểm soát được
>>> EM CÓ TÌM THẤY 1 LISP TRÊN DIỄN ĐÀNTRONG LISP NAY tác giả đang viết Hatch và TÔ MÀU cho từng thửa và từng vùng một
Em không biết gì về viết code Lisp. Em nhờ các cao nhân giúp em sửa lại Lisp trên thành Lisp :- Tên lệnh : taovungthua
- Lisp chỉ tạo đường BO cho từng thửa riêng lẻ (KHÔNG BO CHO CẢ MỘT VÙNG RỘNG LỚN)
- KHÔNG TÔ MÀU CHO THỬA
- Làm sao để chạy nhanh hơn vì em thấy Lisp trên nếu quét một vùng nhiều thửa thấy chạy chậm lắm ạ
* HOẶC CÓ CÁCH NÀO XỬ LÝ TRÊN FILE CAD ĐƯỢC KHÔNG Ạ
Rất mong được các cao nhân giúp đỡ ạ. Em xin cảm ơn rất nhiều
111.dwg
Chuyển qua dùng autocad map. có sẵn chức năng này. chạy siêu nhanh. còn với lisp thì khắc phục tốn quá nhiều nơron nên bỏ qua. trên autodesk app có ông bán chương trình kiểu này có mấy trăm k. công việc phức tạp như này tìm lisp không ai có đâu.
-
1
-
-
Lisp hay đấy ông nhưng tôi chụp màn hình bắt chatgpt chuyển thành bảng ổn lắm :)
-
1
-
-
C# autocad mới thành thạo 2d. chưa biết gì 3d có được không :))
-
1
-
-
Vứt cái chatgpt sang 1 bên. bài này có 3 cách giải.
1. duyệt qua từng rectange lấy listpoint sử dụng (ssget "CP" listpoint '((0 . "CIRCLE"))) để chọn được các vòng tròn nằm trong nó.
note: câu lệnh đơn giản, chạy với polyline bất kỳ không nhất thiết là hình chữ nhật. nhưng nếu vòng tròn lớn hơn polyline thì không chọn được.
2. sử dụng hàm trong express tool để kiểm tra điểm nằm trong 1 danh sách điểm (acet-geom-point-inside p1 lst dst) {hoặc bất kỳ hàm point inside nào trên mạng} để loại trừ
not: chạy với polyline bất kỳ không nhất thiết là hình chữ nhật.
3. sử dụng cách của chatgpt tuy nhiên nên dùng 1 vòng lặp for.
note: chỉ áp dụng với hình chữ nhật.
còn hướng dẫn bạn sửa thì không. bạn học tập đi đừng ném chatgpt lên nhóm nhờ mọi người sửa.
-
1
-
-
Mới học thì nên tham khảo nhưng đừng phụ thuộc.
(while rect
(while circle
(ssdel circle
)
(ssdel rect
)
cái này là cái gì. hiểu thuật toán chứ.???
qua vòng 1: danh sách circle đã bị xóa sạch rồi còn làm gì cho các vòng sau nữa.
phụ thuộc ít thôi.
-
1
-
-
1 code chatgpt ra tay. :)) đóng mở ngoặc còn không đủ thì chạy kiểu gì. :))
-
1
-
-
Layer DIM
trong Sử dụng AutoCAD
15 giờ trước, vietduc147258 đã nói:DIMLAYER nếu cad 2018 hoặc cao hơn.
Nếu cad đời thấp thì dùng lisp.
Tham khảo
ồ h mới biết có lệnh DIMLAYER. cũng tiện phết nhỉ.
-
Ctrl + 1, MO, Properties, LI , LIST , Quichproperties... nhiều không kể siết. không cần cảm ớn cứ dùng dần hết các lệnh cad là sẽ rõ.
-
Vào lúc 9/11/2024 tại 14:54, cuongtk2 đã nói:@minhtuan57hk xem video về phương thức thực hiện .
Em đã từng viết lisp này và thấy hoạt động dựa trên region cũng không hề chậm chỉ khoảng 5s là xong rồi ạ.
còn về gap equal thì giải quyết bằng cách lấy điểm giao cắt Extends both ,rồi so sánh với startpoint, end point.
Sau này có điều kiện chuyển lisp sang .net có lẽ công cụ sẽ chạy nhanh hơn.
-
1
-
-
14 giờ trước, cuongtk2 đã nói:Mục tiêu của em để làm gì, bởi đã có lệnh BO trong Cad để tạo Boundary rồi.
Code của Kean chỉ mang ý nghĩa học thuật, hầu hết phục vụ cho coder về mặt hướng dẫn chứ không phải cho người vẽ.
Chắc bạn ấy đang cần lệnh bo đổi màu tăng dần đó bác. :))
à dạo này em đang bắt đầu nghiên cứu c# bác cho em xin vài link hướng dẫn cài debug CAD với ạ. em làm chưa được. toàn buid ra dùng netload để test.
-
1
-
-
39 phút trước, minhtuan57hk đã nói:Anh có thể cho em xin lại lisp này được ko ạ!
Có một vài lý do mình chưa chia sẻ lisp. tuy nhiên bạn có thể tải về lisp của @limfx phía trên. chạy không nhanh nhưng rất hiệu quả.
-
1
-
-
(itoa (1+ (atoi "123")))
dễ hơn rất nhiều cái bạn vừa viết.
Kể cho bạn 1 hàm có sẵn của lisp rất tiện.
(vl-string-right-trim char-set<string> str<string>)
ví dụ muốn xóa số đằng sau 1 đoạn ký tự
(vl-string-right-trim "0123456789" "DL-123")
kết quả trả về "DL-"
dùng substr để lấy cái "123" ra
-
CAD có sẵn chức năng này rồi.
-
Nhờ sửa lỗi LISP
trong AutoLisp
chèn block att nếu sử dụng entmake sẽ không tạo attribute trong block. (nếu muốn dùng cách này cần thêm lệnh attsync trong command.)
để tối ưu nên dùng vla:
(vla-InsertBlock Object<vla-object> InsertionPoint<variant:xyz> Name<string> Xscale?<double> Yscale?<double> Zscale?<double> Rotation?<double> Password?<variant>)
-
1
-
-
9 phút trước, cuongtk2 đã nói:@tannguyen291 Em làm rất đúng. Tặng em 1 hàm có thể có íchc
(defun CurveGetAngleAtDist (object dist / param VEC X Y) (setq param (vlax-curve-getParamAtDist object dist) vec (vlax-curve-getFirstDeriv object param) x (nth 0 vec) y (nth 1 vec)) (if (/= x 0) (atan (/ y x)) (if (> y 0) (* PI 0.5)(* PI -0.5) ) ) )
Tks bác. hàm này có thể giảm thiểu một số tính toán thừa của em.
-
chả bị lỗi gì. cad của bạn có vấn đề. nếu đã mở được file thử lưu về dạng dwt xem sao.
-
6 phút trước, cuongtk2 đã nói:@tannguyen291 Em phát biểu đúng về việc chia càng nhiều khoảng thì càng chính xác. Nhưng về bản chất spline và pline khác nhau về độ bẻ cong tại node, một bên là knode, một bên là bulge. Cho nên việc chia đều khoảng cách spline với 20 điểm có thể không chính xác bằng chia không đều với 5 điểm.
Lisp của em là chia không đều mà. space này chỉ đơn giản là timming để dò tìm thôi. :)) quan trọng còn có dòng này nữa: (equal ck2 0 0.02) tính toán gần đúng cho bulge. giảm xuống mới tạo ra nhiều điểm hơn.
-
9 giờ trước, Lee123 đã nói:lips bác này chỉ chạy được các đường spline đơn giản thôi, các đường phúc tạp thì nó xoay đến mùa quýt luôn.
Lisp của mình là ước tính. nên độ chính xác không cao. :)) ngoài ra nếu bạn biết về lisp thì có thể sửa variable space và giá trị so sánh bulge tại dòng 2 và dòng 9 để phù hợp với nhu cầu. (đây là giá trị đánh giá từng bước. càng nhỏ càng lâu càng chính xác, càng lớn các nhanh càng thiếu chính xác). như vậy sẽ đáp ứng được công việc của bạn.
Sửa lisp tính Trung bình cộng
trong AutoLisp
Đã đăng · Trả lời báo cáo
Có lần yêu cầu phức tạp hơn cả code, em từng viết cái prompt dài như 1 cái sớ và dài hơn cả code nếu viết gọn mấy cái xuống dòng lại.