Đến nội dung


Hình ảnh
* * * - - 17 Bình chọn

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2848 replies to this topic

#921 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2011 - 11:05 PM

E nghĩ có thể xài qua Reactor.
1 ví dụ :

(defun ST:Reactor-Clear (lstReactor)
(foreach item lstReactor (if (eval item) (progn (vlr-remove (eval item))(set item nil))))
)
(defun ST-Get-List-Command(objReactor lstOfCommand)
(setq #lstCmds (reverse (cons (car lstOfCommand) (reverse #lstCmds))))
)
(ST:Reactor-Clear '(#CmdList1 #CmdList2))
(setq #CmdList1 (vlr-editor-reactor nil '((:vlr-commandended . ST-Get-List-Command))))
(setq #CmdList2 (vlr-editor-reactor nil '((:vlr-unknownCommand . ST-Get-List-Command))))

#lstCmds lưu lại list các lệnh known và unknown.Khi sử dụng lệnh AA thì lấy last list này
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#922 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 30 September 2011 - 09:03 AM

E nghĩ có thể xài qua Reactor.
1 ví dụ :

#lstCmds lưu lại list các lệnh known và unknown.Khi sử dụng lệnh AA thì lấy last list này

Hê hề hề,
Nếu đã có cái list command thì việc lấy các phần tử của nó có nhẽ là không quá khó.
Nếu AA là kết quả của (last lstCmd) thì cái thằng trước AA sẽ là (cadr (reverse lstCmd))
Hề hề hề, các bác cho mình nói leo một chút hỉ??? Trúng trật thì mong các bác chớ giận....
Hề hề hề,
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#923 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 09 October 2011 - 07:30 AM

Chào các bác!
Cho Tue_NV hỏi 1 câu :
Mình sử dụng hàm sau : (Command "quickcalc")
-> CAD ra hộp thoại quickcalc -> Mình nhập công thức -> Ví dụ : 5*2 -> Enter Ra kết quả là 10
-> Nhấn Apply -> được số 10 ngay dòng Command.
Xin hỏi là làm sao gán giá trị 10 đó cho 1 biến x??

Loay hoay mãi chưa ra. Các bác giúp dùm Tue_NV giải pháp
Xin chân thành cảm ơn
  • 0

#924 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 October 2011 - 07:59 AM

Chào các bác!
Cho Tue_NV hỏi 1 câu :
Mình sử dụng hàm sau : (Command "quickcalc")
-> CAD ra hộp thoại quickcalc -> Mình nhập công thức -> Ví dụ : 5*2 -> Enter Ra kết quả là 10
-> Nhấn Apply -> được số 10 ngay dòng Command.
Xin hỏi là làm sao gán giá trị 10 đó cho 1 biến x??

Loay hoay mãi chưa ra. Các bác giúp dùm Tue_NV giải pháp
Xin chân thành cảm ơn


Thì ra bác Tuệ muốn lợi dụng Quickcalc của CAD ^^
Đến đây lại phải nhắc lại công dụng của vla-sendcommand thôi ^^

(defun mycalc ( / val)
(command "quickcalc")
(vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) "\n")
(setq val (getreal))
val
)
(setq b (mycalc))

  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#925 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 10 October 2011 - 05:58 AM


Thì ra bác Tuệ muốn lợi dụng Quickcalc của CAD ^^
Đến đây lại phải nhắc lại công dụng của vla-sendcommand thôi ^^


(defun mycalc ( / val)
(command "quickcalc")
(vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) "\n")
(setq val (getreal))
val
)
(setq b (mycalc))

Cảm ơn KetXu nhiều nhiều. Rất tuyệt
Trước giờ, mình cứ tường là Method SendCommand chỉ có thể thao tác trong 1 lệnh nào đó thôi. Không ngờ nó có thể lấy kết quả của 1 lệnh, cụ thể là lệnh quickCAL

Nhân tiện code trên của Ketxu, Tue_NV hỏi thêm 1 tí nữa
Theo mình biết thì hàm getreal cho phép USER dừng lại nhập số thực, nhưng tại sao ở đây :
(setq val (getreal))
Hàm getreal này lại gán luôn giá trị là kết quả của lệnh QuickCAL cho biến VAL???

Thanks bạn 1 lần nữa
  • 0

#926 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 October 2011 - 08:53 AM

Vì khi bác click nút Apply, thực chất là Quickcalc đã gửi 1 string bằng giá trị của phép tính ra ngoài commandline. Getreal chờ nhập kết quả, nó phát hiện ra string giá trị ở trên commandline rồi, nhưng không có ai enter để gán kết quả đấy cho nó -> vla-sendcommand để send key Enter. Ở chỗ này có tí ngược thứ tự thực hiện, nhưng nếu để getreal lên trước, nó sẽ đòi user phải nhập xong rồi mới thao tác tiếp theo ^^
  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#927 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 23 October 2011 - 12:38 AM

Tôi có 2 đường Spline phẳng nằm trong không gian 3D. Làm sao để:
1). Xác định khoảng cách min giữa chúng (bằng cách chỉ ra 2 điểm thuộc 2 đường)?
2). Xác định khoảng cách thẳng đứng giữa chúng nếu tồn tại (bằng cách chỉ ra 2 điểm thuộc 2 đường mà đường nối 2 điểm này vuông góc với xoy)?
Ai biết xin chỉ giùm giải thuật để thực hiện, thanks!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#928 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 24 October 2011 - 01:02 AM

Tôi có 2 đường Spline phẳng nằm trong không gian 3D. Làm sao để: 1). Xác định khoảng cách min giữa chúng (bằng cách chỉ ra 2 điểm thuộc 2 đường)? 2). Xác định khoảng cách thẳng đứng giữa chúng nếu tồn tại (bằng cách chỉ ra 2 điểm thuộc 2 đường mà đường nối 2 điểm này vuông góc với xoy)? Ai biết xin chỉ giùm giải thuật để thực hiện, thanks!

Hề hề hề,
1/- Vấn dề của bác có nhẽ là phải định nghĩa cái khoảng cách min ấy đã bác ạ.
Với các line thì đã có nhưng với các spline thì chửa rõ nó ra sao. Nếu có cái định nghĩa này thì có thể sẽ không quá khó để làm đâu.
Bác có thể nói qua về cái định nghĩa này không ạ????
Hề hề hề,,,
2/- Chưa nghĩ ra thuật giải bác ạ.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#929 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 24 October 2011 - 06:33 AM

Hề hề hề,
1/- Vấn dề của bác có nhẽ là phải định nghĩa cái khoảng cách min ấy đã bác ạ.
Với các line thì đã có nhưng với các spline thì chửa rõ nó ra sao. Nếu có cái định nghĩa này thì có thể sẽ không quá khó để làm đâu.
Bác có thể nói qua về cái định nghĩa này không ạ????
Hề hề hề,,,
2/- Chưa nghĩ ra thuật giải bác ạ.

Tức là tìm 2 điểm thuộc 2 Spline sao cho khoảng cách của chúng là nhỏ nhất.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#930 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 24 October 2011 - 09:37 AM

Tức là tìm 2 điểm thuộc 2 Spline sao cho khoảng cách của chúng là nhỏ nhất.

Giả sử như 2 Spline có đoạn nào đó song song và giả sử rằng khoảng cách giữa đoạn // đó là MIN thì sẽ có vô số nghiệm rồi
Tỉ như 2 đoạn thẳng // trong không gian vậy.

Bài toán này có thể sẽ chẳng có thuật giải nào được đâu
Vì mỗi cặp đoạn thẳng trong không gian -> ta xác định được khoảng cách giữa chúng
mà Cặp Spline lại được cấu thành từ rất nhiều cặp Line như vậy
  • 0

#931 hoangvanquang

hoangvanquang

    biết pan

  • Members
  • Pip
  • 9 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 October 2011 - 09:56 AM

Jin muốn hỏi về một vài lệnh trong Lisp
Ví dụ như Jin có một xâu như sau abcd45e263
Ở trong Lisp, lệnh để lấy ra xâu con cd45e từ xâu trên là gì?

BẠN DÙNG LỆNH FIND NHE
  • 0

#932 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 24 October 2011 - 10:04 AM

Giả sử như 2 Spline có đoạn nào đó song song và giả sử rằng khoảng cách giữa đoạn // đó là MIN thì sẽ có vô số nghiệm rồi
Tỉ như 2 đoạn thẳng // trong không gian vậy.

Bài toán này có thể sẽ chẳng có thuật giải nào được đâu
Vì mỗi cặp đoạn thẳng trong không gian -> ta xác định được khoảng cách giữa chúng
mà Cặp Spline lại được cấu thành từ rất nhiều cặp Line như vậy

1). Một bài toán thì có thể: vô nghiệm, có hữu hạn nghiệm, có vô số nghiệm. Nhiệm vụ của chúng ta là phải phân ra để biện luận cho từng trường hợp, ví dụ với bài toán 2 Spline, chúng ta phải phân ra:
- Có vô số nghiệm: khi đó tôi chỉ cần chỉ ra 1 nghiệm là được, hoặc bỏ qua.
- Có hữu hạn nghiệm: chỉ ra tất cả các nghiệm đó, hoặc chỉ cần 1 nghiệm. Đây là điều tôi cần.
- Vô nghiệm: với bài toán này thì không xãy ra.
2). Không thể có giải thuật hay chưa thể tìm ra giải thuật là 1 vấn đề khó, vì chúng ta chưa chứng minh được điều "không thể" đó.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#933 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 24 October 2011 - 11:08 AM

......
2). Không thể có giải thuật hay chưa thể tìm ra giải thuật là 1 vấn đề khó, vì chúng ta chưa chứng minh được điều "không thể" đó.

Chính xác là không có thuật giải.
Một đường Spline có vô số điểm cần xác định khoảng cách từ điểm đến SPLINE kia. Ứng với từng điểm đó -> xác định khoảng cách từ điểm đến SPLINE kia.
Không xác định được số bước lặp cho vòng lặp => Không có thuật giải.
Có thể là chia SPLINE thành nhiều LINE, nhưng nếu chia như vậy thì bài toán không còn chính xác nữa

=> KHÔNG CÓ THUẬT GIẢI
  • 0

#934 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 24 October 2011 - 11:11 AM

Tạm thời bác có thể thực hiện theo phương pháp gần đúng (e mới nghĩ th, chưa chắc đúng) :sai số là S
1 - Tìm cặp điểm ngắn nhất gồm 1 control point của SPLine 1 và điểm gần nhất với điểm đó của SPline 2, gọi khoảng cách là D, 2 điểm lần lượt là p1, p2 thuộc control point thứ n
2 - Kiểm tra KC các điểm cách p1 1 khoảng delta1 (bước nhảy) từ control thứ n-1 đến n+1 đến P2 (gọi là list d1)
- Nếu không phát hiện điểm nào trong list d1 có khoảng cách nhỏ hơn D và sai số nhỏ hơn S thì chuyển sang bước 3
- Nếu phát hiện tồn tại khoảng cách min nhỏ hơn D thì gán khoảng cách này bằng D, tiếp tục lặp lại bước 2, với 2 điểm mút giới hạn là 2 điểm trước - sau của điểm gần hơn mới tìm thấy, delta = delta1 / hệ số giảm delta (hệ số > 1)
- Dừng lại khi sai số khoảng cách nhỏ hơn S
3 - Làm ngược lại từ phía p2 về Spl1, dừng lại khi sai số khoảng cách nhỏ hơn S
4 - So sánh giữa 2 khoảng cách min

P/S : vẫn mông lung lắm ^^
Có khi bác rã nó ra thành n đoạn thẳng nhỏ, rồi kiểm tra cũng được. Code nhanh hơn, chờ lâu hơn
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#935 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 24 October 2011 - 02:10 PM

Giả sử như 2 Spline có đoạn nào đó song song và giả sử rằng khoảng cách giữa đoạn // đó là MIN thì sẽ có vô số nghiệm rồi
Tỉ như 2 đoạn thẳng // trong không gian vậy.

Bài toán này có thể sẽ chẳng có thuật giải nào được đâu
Vì mỗi cặp đoạn thẳng trong không gian -> ta xác định được khoảng cách giữa chúng
mà Cặp Spline lại được cấu thành từ rất nhiều cặp Line như vậy

Hề hề hề,
Có thể chính cái gợi ý này của bác Tue_NV là một thuật giải chăng????
Này nhé:
1/- Chia các Spline thành các đoạn thẳng đủ nhỏ sao cho nó có thể đại diện cho Spline đó.
2/- Lặp qua các đoạn thẳng của Spline thứ nhất với các đoạn thẳng của spline thứ hai để tìm khoảng cách giữa các cặp đoạn thẳng rồi cho vào một list gồm độ dài và tọa độ các đỉnh của đoạn thẳng ngắn nhất này..
3/- Sắp xếp lại cái list này để có khoảng cách nhỏ nhất, và từ đó có được các điểm cần tìm.

Hề hề hề,
Cách này tuy chả cho được chính xác cái bác cần nhưng cũng gần đạt với một sai số cho phép. Tuy nhiên có nhẽ sẽ khá mất thời gian nếu như các Spline đủ dài và phức tạp.
Việc chuyển Spline thành các polyline thì hình như trên diễn đà đã có lisp của bác SSG thì phải. Như vậy chỉ còn việc làm cái lisp xác định khoảng cách giữa hai đoạn thẳng bất kỳ nữa là Ok. Hy vọng nói đúng với ý muốn của bác ĐoanVanha.

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

#936 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 24 October 2011 - 02:28 PM

Tạm thời bác có thể thực hiện theo phương pháp gần đúng (e mới nghĩ th, chưa chắc đúng) :sai số là S
1 - Tìm cặp điểm ngắn nhất gồm 1 control point của SPLine 1 và điểm gần nhất với điểm đó của SPline 2, gọi khoảng cách là D, 2 điểm lần lượt là p1, p2 thuộc control point thứ n
2 - Kiểm tra KC các điểm cách p1 1 khoảng delta1 (bước nhảy) từ control thứ n-1 đến n+1 đến P2 (gọi là list d1)
- Nếu không phát hiện điểm nào trong list d1 có khoảng cách nhỏ hơn D và sai số nhỏ hơn S thì chuyển sang bước 3
- Nếu phát hiện tồn tại khoảng cách min nhỏ hơn D thì gán khoảng cách này bằng D, tiếp tục lặp lại bước 2, với 2 điểm mút giới hạn là 2 điểm trước - sau của điểm gần hơn mới tìm thấy, delta = delta1 / hệ số giảm delta (hệ số > 1)
- Dừng lại khi sai số khoảng cách nhỏ hơn S
3 - Làm ngược lại từ phía p2 về Spl1, dừng lại khi sai số khoảng cách nhỏ hơn S
4 - So sánh giữa 2 khoảng cách min

P/S : vẫn mông lung lắm ^^
Có khi bác rã nó ra thành n đoạn thẳng nhỏ, rồi kiểm tra cũng được. Code nhanh hơn, chờ lâu hơn

Hề hề hề,
Cách này ngó bộ không ổn về lý thuyết bác Ketxu à.
Bởi chưng từ một điểm có thể tìm dược khoảng cách nhỏ nhất tới một curve, nhưng đó chưa chắc đã là khoảng cách giữa hai curve được.
Cho dù bác có thể dịch chuyển dần cái point trên curve theo hai phía để xác định khoảng cách nhỏ nhất nhưng có nhẽ nó vẫn chưa phải là khoảng cách giũa hai curve.

Nếu bác thay đổi lại thành tìm khoảng cách giữa véctơ tiếp tuyến tại một điểm trên curve1 tới curve2 thì có nhẽ sẽ cho kết quả hợp lý hơn về mặt lý thuyết. Tất nhiên sau đó sẽ phải loại các trường hợp mà chân đường vuông góc chung giữa hai tiếp tuyến nằm cách quá xa so với đường curve.

@ Bác Tue_NV: Việc tìm chính xác thì quả thật không đơn giản, nhưng trong kỹ thuật có thể cho phép các cách làm gần đúng với sai số được kiểm soát bác ạ. Nên chăng ta sẽ giải bài toán theo cái hướng này để có thể đáp ứng được phần nào cái nhu cầu trước mắt chứ chả nhẽ bó giò hay sao bác nhể?????

@Bác DoanVanHa: Nên chăng bác cho thêm cái giới hạn về sai số cho phép để người dùng dễ dàng lựa chọn giải pháp hơn.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#937 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 24 October 2011 - 02:51 PM

Cám ơn các bác Tue_NV, PTB và Ketxu!
Chắc là không thể tìm chính xác được, nên phải đi theo con đường tính gần đúng với 1 sai số cho phép thôi. Điều này cũng chấp nhận được.
Cám ơn mọi người đã quan tâm!
Thân thương!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#938 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 24 October 2011 - 05:49 PM

Chắc là không thể tìm chính xác được, nên phải đi theo con đường tính gần đúng với 1 sai số cho phép thôi. Điều này cũng chấp nhận được.
Cám ơn mọi người đã quan tâm!
Thân thương!

Mình kg đủ sức để viết ra giải thuật nhưng có thể gợi ý một ý tưởng để các bạn tham khảo :
- căn cứ vào sp1, dựng hình trụ xoắn bán kính r đủ nhỏ có tim là đường sp1.
- tìm giao của hình trụ xoắn vừa dựng với sp2. Nếu chưa có giao thì tăng r lên, ngược lại nếu có nhiều giao thì giảm r xuống
- nghiệm chính là số giao tìm ra là nhỏ nhất. Chính xác khi sp2 tiếp xúc với hình trụ xoắn
  • 0

#939 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 24 October 2011 - 06:14 PM

Mình kg đủ sức để viết ra giải thuật nhưng có thể gợi ý một ý tưởng để các bạn tham khảo :
- căn cứ vào sp1, dựng hình trụ xoắn bán kính r đủ nhỏ có tim là đường sp1.
- tìm giao của hình trụ xoắn vừa dựng với sp2. Nếu chưa có giao thì tăng r lên, ngược lại nếu có nhiều giao thì giảm r xuống
- nghiệm chính là số giao tìm ra là nhỏ nhất. Chính xác khi sp2 tiếp xúc với hình trụ xoắn

Hề hề hề,
Bác trungngamy ơi, thế nhưng liệu khi bác tạo một cái hình trụ xoán khác quanh SP2 với bán kính mà bác vừa tìm được thì nó có tiếp xúc hay cắt cái thằng SP1 không nhể????
Ấy mới là cái khoản khó chịu bác ạ....
Hề hề hề,....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#940 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 24 October 2011 - 08:06 PM

@ bác Bình : tiaij vì theo e hiểu ý bác ĐVH k yêu cầu tìm khoảng cách 2 curve, mà là tìm 2 điểm giữa 2 curve sao cho khoảng cách giữa chúng là ngắn nhất ^^ Mà e ngờ rằng spline bị chi phối bởi các control point + bugle. Vậy ta làm cái j đó gắn với control point là hay hơn ^^

Tức là tìm 2 điểm thuộc 2 Spline sao cho khoảng cách của chúng là nhỏ nhất.


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC