-
Số lượng nội dung
548 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
46
Bài đăng được đăng bởi ndtnv
-
-
Tôi test trên cad 2010
Nếu DYNMODE =1, 3 : không nhập được tọa độ trụ tương đối=> 2 điểm B, C trùng nhau
Nhấn F12 : nhập được tọa độ trụ, 2 điểm B, C phân biệt
-
ID: cho kq là độ chính xác theo UNITS
dùng entget: hiển thị 6 số có nghĩa nên
X = 312507.7589 => 312508
.0 chỉ cho biết đó là kiểu số thực
Muốn kiểm tra giống lệnh ID thì dùng rtos là rõ
-
1
-
-
Tôi dùng cad 2010 nên "OSOPTIONS" cũng chỉ có giá trị 0-3
Xem ảnh và GG thì thấy cad đời mới có thêm bit 4 cho dimension extension lines.
Trong tương lai có thể thêm các bit khác: 8, 16 ...
-
1
-
-
23 giờ trước, quocmanh04tt đã nói:"Quá nhanh, hơi nguy hiểm", có thể gọi là giết nhầm hơn bỏ sót.
Chính xác là vừa giết nhầm vừa bỏ sót.
OSOPTIONS = 7, Test => 1
Giết nhầm:
Ignore endpoints of dimension extension lines: Check => Uncheck
Bỏ sót:
Ignore hatch objects: Check => Check
Ở đây, có 2 biến ảnh hưởng đến snap hatch objects là OSOPTIONS và OSNAPHATCH nên có thể dùng lisp của ketxu.
Tổng quát, nếu muốn thay đổi bit khác, dùng hàm
(defun SwitchBit (n k) (+ n (if (= (logand n k) k)(- k) k)))
n : số nguyên >=0
k : 2^i (1, 2, 4, ..)
-
1
-
1
-
-
Vào lúc 10/5/2012 tại 23:24, hoan2182 đã nói:Giả sử có một trò chơi trên TV như sau: có 3 cánh cửa, đằng sau 1 trong 3 cánh cửa đó là 1 món quà lớn, còn sau 2 cửa còn lại không có gì. Người chơi được chọn 1 trong 3 cánh cửa, nếu chọn đúng cửa có quà thì được nhận quà. Sau khi người chơi đã chọn 1 cửa, người hướng dẫn chương trình mở một trong hai cửa còn lại ra, nhưng sẽ chỉ mở cửa không có quà. Sau đó người chơi được quyền chọn, hoặc là giữ cái cửa mình chọn ban đầu, hoặc là đổi lấy cái cửa chưa được mở còn lại. Theo bạn thì người chơi nên chọn phương án nào? Vì sao ?"
Sưu tầm
Vào lúc 10/7/2012 tại 12:12, hoan2182 đã nói:Câu hỏi phụ:
1- Xác suất chọn đúng của người chơi P= ???
2- Xác suất của người hướng dẫn chương trình P= ???
Câu đố post đã lâu, tác giả đã offline hơn 1 năm nhưng đây là 1 bài toán thuộc dạng nghịch lý rất hay.
Nếu các bạn quan tâm, tôi sẽ post lên một số bài khác
Cách giải như bài sau:
Nghịch lý Monty Hall
Tại Châu Âu, từng thịnh hành trò chơi mang tên "Dốc sức". Ở phần kết thúc người chơi được chọn phần thưởng của mình được để ở một ba chiếc hộp đậy kín như hình vẽ.

Sau khi người chơi đã chọn được chiếc hộp mà người chơi tin rằng trong đó có phần thưởng thì MC (người dẫn chương trình) sẽ mở một trong hai chiếc hộp còn lại (tất nhiên là chiếc hộp này không có phần thưởng rồi). Sau đó còn lại hai chiếc hộp, MC cho phép người chơi được quyền đổi hoặc giữ nguyên cái hộp lúc ban đầu.
Vậy câu hỏi được đặt ra là có nên đổi chiếc hộp hay không ?
Nhiều người chúng ta sẽ trả lời rằng: Đổi hay không thì xác suất cũng là 50% thôi. Do đó khả năng có được phần thưởng là 50−50.
Tuy nhiên, với Xác suất chúng ta sẽ chỉ ra rằng, nếu đổi chiếc hộp thì xác suất của chúng ta sẽ tăng từ 1/3 lên thành 2/3. Tại sao có điều vô lý như vậy ? Ta thường gọi đây là nghịch lý Monty Hall
Nguồn: http://mathtdplus.blogspot.com/2015/11/nghich-ly-monty-hall.html
-
1 giờ trước, Doan Van Ha cho biết:Tôi mới nghĩ ra thuật toán thế này. Mọi người cho nhận xét để tìm phương án tối ưu hơn:
- Zoom cho tất cả tam giác (TG) nằm trong screen.
- Qua điểm pick P tạo 2 đường vuông góc ngang (d1) và đứng (d2) trong giới hạn screen (chỉ lấy các điểm mút p1 p2 và q1 q2 chứ không cần vẽ).
- Chọn 2 tập ss1 và ss2 bằng "fence" theo p1 p2 và q1 q2.
- Lấy tập nhỏ bỏ tập lớn, ví dụ được là ss1.
- Duyệt ss1 xem TG nào chứa P thì tóm cổ hắn. Nếu không có TG nào chứa P thì P nằm ngoài tất cả TG.
Ưu điểm của pp này là chỉ xử lý trên tập ss1 (nói chung rất nhỏ so với tập toàn bộ TG là ss).
Nhược điểm là chọn fence nên nếu TG vẽ bằng nét đứt thì nguy hiểm.
Mọi người cho ý kiến thêm!
Sao không chọn ss2 là fence các tam giác trong ss1 hay chọn ss là giao của ss1 và ss2.
-
1
-
-
Nhờ chỉnh lisp
trong AutoLisp
Đổi tên file thành tiếng việt không dấu và không có dấu cách
-
1
-
-
hàm trim trong lisp?
trong AutoLisp
Kịp thời}}, lp_hai cho biết:Ngu kiến của mình sao chủ thớt không dùng Break thay dim trong trường hợp này nhỉ? đỡ tốn công hơn nhiều: không cần set tm2:
(setq tm2 (entlast)) (command "trim" tm2 "" (ssget "c" d4 d3) "") >>>(command "Break" tm1 d1 d4)Dùng Break thay Trim trong trường hợp này vì biết d1 là giao điểm của 2 line. Nếu không phải tốn thêm bước tính giao điểm.
Trong trường hợp này, dùng trim như sau:
(command "trim" tm2 "" (list tm1 d4) "")
Dùng Break trong trường hợp là đường cong kín vd Circle còn phức tạp hơn vì ngoài việc tính 2 giao điểm, còn phải xác định thứ tự nữa.
VD vẽ thêm 1 circle:
(command "circle" "non" (mapcar '+ p '(500 1000)) 400)
(setq tm3 (entlast))rồi thử từng dòng sau để xem kết quả:
(command "trim" tm2 "" (list tm3 p) "")
(command "trim" tm2 "" (list tm3 d4) "") -
Hiệu suất của bơm η trong công thức trên chỉ đúng khi H = H thiết kế của bơm.
Khi chiều cao bơm khác nhiều so với H thiết kế, η sẽ giảm nhiều
Tham khảo: http://www.jensenengineeredsystems.com/pump-curves/

-
1
-
-
Bài này có thể dùng công thức tính
Đánh công thức từ giấy sang cad có thể bị sai nhưng kq đã kiểm tra

File excel tính toán
-
1
-
-
Nếu muốn lưu giá trị của lần nhập sau cùng thì phải sửa code lại như thế nào?
ví dụ: Lần cuối cùng nhập h=5. Lần dùng sau VBA sẽ lưu lại giá trị h=5 và hiển thị tại dòng nhắc lệnh.
Dùng biến toàn cục : đưa khai báo
Dim h As Double
ra trước
Sub nhap()
...
h = ThisDrawing.Utility.GetReal("Nhap chieu cao text <" & h & " >:")
-
1
-
-
1. Phải đưa xuống dưới nữa, tốt nhất là ngay trên dòng:
(command "Pline" p3 p4 p5 p6 "c")
2. Sửa
(setq p2 (getpoint "diem cuoi:"))
thành
(setq p2 (getpoint p1 "diem cuoi:"))
cho dễ hình dung
-
1
-
-
Viết theo yêu cầu cũng không khó nhưng tôi chưa rãnh, nếu Danh Cong rãnh thì hoàn chỉnh
Bạn dùng tạm lisp này
- Copy các dim
- Chọn dim gốc lấy y chuẩn
- Chọn các dim cần chỉnh tọa độ
(defun c:cy( / a g) ; chinh y (setq a (assoc 10 (entget (car (entsel "\nChon dim goc : "))))) (princ "\nChon dim can chinh cao do : ") (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "DIMENSION")(-4 . "&=")(70 . 6)))))) (entmod (subst a (assoc 10 (setq g (entget e))) g)) ) )
-
2
-
-
Tìm
(princ " " fl)
Sửa thành
(princ "\n" fl)
-
Test trên máy tôi :
Bước 2.0m: 121 giây
PEDIT Join trên bv mẫu:
Select objects: 15090 found
14935 segments added to 154 polylines : 4687 millisecs
-
Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.
Lisp có một phần nguồn từ Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý. Một phần khác tự viết.
Code mở nên mọi người tha hồ vọc. Lệnh: DDM.
Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây (với các thông số mặc định trong lisp).
Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.
Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.
File Cad để test:
http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg
File Lisp:
http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp
File Image:
http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png
Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!
Tôi cũng có dự định viết chương trình Đường Đồng Mức bằng ARX và đã viết xong phần tạo lưới tam giác. Tuy nhiên đến phần vẽ ĐĐM, tham khảo các file cad tôi thấy ĐĐM vẽ bằng các line xấp xỉ Spline nên rất mịn. Search tìm công thức Spline chưa ra, mặt khác vì không có chuyên môn sâu về trắc địa nên không rõ nguyên tắc xấp xỉ Spline như thế nào nên còn để đó.
Tham khảo file test thì thấy lisp của bạn Doan Van Ha chạy còn thiếu nhiều chỗ (>15), ĐĐM còn thô nên không biết có đạt y/c TCVN không?
Về câu hỏi bên http://www.cadviet.com/forum/topic/14210-hoi-ve-lisp-thuat-toan-y-tuong-coding/page-142?do=findComment&comment=410604
bạn thử dùng cách chọn các line cùng cao độ rồi dùng lệnh PEDIT Join của cad xem.
-
Lisp của quocmanh04tt chỉ thay 81 đoạn gấp khúc thành 80 đoạn arc, dùng làm trơn pline thì được nếu dùng để Dimradius thì không hiệu quả.
Trong trường hợp có 1 đỉnh có hướng thay đổi nhiều, các đoạn arc sau đỉnh đó lệch pline rất nhiều.
Lisp của Bee chỉ đổi 2 đoạn liền nhau thành 1 arc, nếu số đoạn lẻ thì mất đoạn cuối.
Search gg thấy trang này có thuật toán, nhưng chưa có thời gian đọc xem có đúng y/c của bài này không
http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node203.html
-
1
-
-
Muốn sửa lệnh cho nó ngắn lại đâu cần file lisp
1 - Dùng lệnh ALIASEDIT hay thêm trực tiếp trong acad.pgp
2 - Dùng lisp để gọi:
(defun C:1 () (C:CungPoly))
-
1
-
-
Tôi thì dùng acet: bỏ qua phần tử thứ 3
(acet-str-to-list "(" (vl-string-subst "(" ")" "Dam-01A(220x300)"))
-
1
-
-
Tôi không dùng lisp này nhưng khi test :
200X300 là kết quả khi chạy lisp tkt
Trong kết cấu, tên ck nếu viết đầy đủ: Dầm 1, Cột 1 ...(ít xảy ra) => sai
nhưng nếu viết tắt thì cấu kiện ĐK => sai
Tóm lại: hàm vl-string-left-trim không ổn
@ptd1987: text nào sai mẫu thì ghi ra hay post file
-
Nhờ Sửa Lỗi Lisp
trong AutoLisp
Vì sao phải dùng cách không an toàn, dễ chọn thiếu khi các đối tượng là nét đứt
(ssget "F" (list p1 p2) ...)
mà không dùng trực tiếp, có thể kiểm soát
(ssget (list (cons 8 "L1,L2,L3,L4,L5")))
-
Ai biết thuật toán này tên gì không mách bảo tí để tìm hiểu:
Cho n điểm A,B,C,D,E... (gọi chung là các điểm X) trên m.phẳng. M là điểm di động. Các chi phí đơn vị từ M đến X là kX (đã biết). MX là các khoảng cách từ M đến X.
Tìm vị trí điểm M sao cho tổng chi phí là nhỏ nhất:
(MA*kA+MB*kB+MC*kC+MD*kD+ME*kE+...) -> Min
Bạn search Bài toán cực trị của hàm nhiều biến, ở đây là hàm 2 biến
fz = Σ{ki*sqrt[ (xi-x)^2 + (yi-y)^2 ]}
-
* nếu giá trị a nhập vào nằm ngoài chương trình:
- phần tử đầu: (car lst), cuối (last lst)
Bạn tự viết được
* nếu giá trị a bằng với giá trị bất kỳ trong bảng sẽ trả về vị trí tương ứng giá bằng a nằm trong list
(setq c (vl-position a lst))
* nếu không bằng giá trị nào trong list sẽ trả về 2 vị trí gần nó nhất
c = nil khi thực hiện dòng lệnh trên: bạn Hạ đã viết ở #2
Bạn dùng các hàm if hoặc cond để tự hoàn thiện
-
1
-
-
các bác chỉ cho em cách để đưa 2 sợi tóc về trạng thái nguyên sơ với ( 2 sợi vuông góc ấy ạ).
Em mày mò mãi mà vẫn chưa ra!
Cám ơn các bác!!
http://www.cadviet.com/upfiles/6/149773_ban_ve_duong_ong.dwg
Command: SNAPSTYL
Enter new value for SNAPSTYL <1>: 0
-
1
-
Lỗi không nối bằng PEDIT được
trong Sử dụng AutoCAD
Đã đăng · Trả lời báo cáo
Vì chỗ 2 đường Pline gặp nhau là node 2 của đường bên phải