Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
hanam1210

[yêu cầu] lisp vẽ đường bóng ( đường thể hiện dốc trên mặt bằng )

Các bài được khuyến nghị

hanam1210    1

Tình hình là lisp chạy ko ổn định bác phamthanhbinh ạ ? khi chạy ở các bản bình đồ( tức là nó phụ thuộc vào định dạng bản vẽ sao ý ) thì lisp thường lỗi ở mục các đường bóng ko fix kín biên( đường dài đường ngắn nhấp nhô)

Yêu cầu bổ sung chức năng:

1-Đường bóng thuộc layer CADVIET có màu 8

2-Lưu các giá trị đã nhập của lần trước

3-Có gía trị mặc định ban đầu khi ko nhập giá trị mà enter thì tự động chọn =10

4- Bổ sung điểm N giới hạn phạm vi kẻ đường bóng, ko kẻ đường bóng ngoài phạm vi điểm N ( điểm N thuộc hướng kẻ đường bóng) ( Minh họa trong hình vẽ )

Dưới đây là file lỗi và yêu cầu cập nhật.

http://www.mediafire.com/?lwrzao75wx07ml8

Cảm ơn các anh đã nhiệt tình giúp đỡ !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

Tình hình là lisp chạy ko ổn định bác phamthanhbinh ạ ? khi chạy ở các bản bình đồ( tức là nó phụ thuộc vào định dạng bản vẽ sao ý ) thì lisp thường lỗi ở mục các đường bóng ko fix kín biên( đường dài đường ngắn nhấp nhô)

Yêu cầu bổ sung chức năng:

1-Đường bóng thuộc layer CADVIET có màu 8

2-Lưu các giá trị đã nhập của lần trước

3-Có gía trị mặc định ban đầu khi ko nhập giá trị mà enter thì tự động chọn =10

4- Bổ sung điểm N giới hạn phạm vi kẻ đường bóng, ko kẻ đường bóng ngoài phạm vi điểm N ( điểm N thuộc hướng kẻ đường bóng) ( Minh họa trong hình vẽ )

Dưới đây là file lỗi và yêu cầu cập nhật.

http://www.mediafire...lwrzao75wx07ml8

Cảm ơn các anh đã nhiệt tình giúp đỡ !

Hề hề hề,

Tình hình là bạn vẫn không chịu đọc kỹ hay là vẫn không hiểu kỹ cái hướng dẫn sử dụng trước khi sử dụng rồi. Điểm bắt đầu của đường chuẩn là diểm được xác dịnh bởi hàm (vlax-curve-getstartpoint e), tương tự điểm cuối của đường chuẩn là điểm được xác định bởi hàm (vlax-curve-getendpoint e).

Việc đường kẻ bóng nhấp nho chỉ là do bạn chọn sai mà thôi. Khi đó nếu bạn khôn một tí thì chỉ cần undo và chọn theo trật tự ngược lại là Ok.

1/- hãy nhập khi lisp hỏi nhập tên lớp là: CADVIET.

2/- Đã xử lý ở lisp cũ rồi.

3/- Hãy bổ sung: (if (/= a1 nil) vào trước dòng code (setq a a1) và (setq a 10)) vào sau dòng code (setq a a1) đó.

4/- Đã xử lý trong lisp cũ rồi.

 

Hề hề hề, mong rằng bạn hãy cố gắng đọc kỹ những gì mình định post trước khi post yêu cầu nhé.

 

http://www.cadviet.com/upfiles/3/loi_1.dwg

Đây là file bản vẽ của bạn mình đã dùng lisp kbg để kẻ bóng. Hoàn toàn không có lỗi như bạn nói.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hanam1210    1

Hề hề hề,

Tình hình là bạn vẫn không chịu đọc kỹ hay là vẫn không hiểu kỹ cái hướng dẫn sử dụng trước khi sử dụng rồi. Điểm bắt đầu của đường chuẩn là diểm được xác dịnh bởi hàm (vlax-curve-getstartpoint e), tương tự điểm cuối của đường chuẩn là điểm được xác định bởi hàm (vlax-curve-getendpoint e).

Việc đường kẻ bóng nhấp nho chỉ là do bạn chọn sai mà thôi. Khi đó nếu bạn khôn một tí thì chỉ cần undo và chọn theo trật tự ngược lại là Ok.

1/- hãy nhập khi lisp hỏi nhập tên lớp là: CADVIET.

2/- Đã xử lý ở lisp cũ rồi.

3/- Hãy bổ sung: (if (/= a1 nil) vào trước dòng code (setq a a1) và (setq a 10)) vào sau dòng code (setq a a1) đó.

4/- Đã xử lý trong lisp cũ rồi.

 

Hề hề hề, mong rằng bạn hãy cố gắng đọc kỹ những gì mình định post trước khi post yêu cầu nhé.

 

http://www.cadviet.c...les/3/loi_1.dwg

Đây là file bản vẽ của bạn mình đã dùng lisp kbg để kẻ bóng. Hoàn toàn không có lỗi như bạn nói.

 

HIC. Bác Ăn gian, cái điểm N giới hạn thì từ đầu tới h chưa có mà ? hic.Bác có cách nào để nó ổn định hơn ko ? việc chọn đường biên đó rất khó và ko ổn định. mỗi lúc mỗi kiểu và các đường bóng ở gần cuối điểm N hay bị lỗi. BÁc xem hình nhé : http://www.mediafire...ysewzv3aynpzltc

Và chức năng lưu giá trị cũ..

 

;========code
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...opic=56050&st=0
(defun c:kbb ( / a k)
(vl-load-com)
(command "undo" "be")
(command "ucs" "w")
(command "layer" "N" "bong" "S" "bong" "color" 8 "" "")
(setq e1 (car(entsel "\n Chon goc bien duoi"))
e2 (car(entsel "\n Chon goc bien tren"))
e (car (entsel "\n Chon duong ke chuan"))
)
(or k (setq k 0.9)) ; 0.9 = he so khoang cach mac dinh
(setq k (cond ((getdist (strcat "\nhe so khoang cach <" (vl-princ-to-string k) " > :")))(k)))
(or #inc (setq #inc 1.2))
(or a (setq a 10)) ; 10 = khoang cach mac dinh
(setq a (cond ((getdist (strcat "\a0= <" (vl-princ-to-string a) " > :")))(k)))
(or #inc (setq #inc 1.2))
(setq
p (getpoint "\n Chon huong rai duong ke bong")
dis (distance p (vlax-curve-getClosestPointTo (vlax-ename->vla-object e) p T))
b 0
)
(setq la (getstring "\n Nhap ten layer: "))
(if (= (tblsearch "layer" la) nil)
(command "layer" "m" la "c" 8 "" "")
)
(setvar "clayer" la)
(command "change" e "" "p" "la" la "")
(while (and (< b dis) (> a 0.01))
(command "offset" a e p "")
(setq e (entlast)
a (* k a)
b (+ b a)
;;;;; pd (vlax-curve-getstartpoint e)
;;;;;;pc (vlax-curve-getendpoint e)
)
(if (setq p1 (acet-geom-intersectwith e e1 0))
(progn
(command "break" e (car p1) (vlax-curve-getstartpoint e))
(setq e (entlast))
)
(command "extend" e1 "" (vlax-curve-getstartpoint e) "")
)
(if (setq p2 (acet-geom-intersectwith e e2 0))
(command "break" e (car p2) (vlax-curve-getendpoint e))
(command "extend" e2 "" (vlax-curve-getendpoint e) "")
)
)
(command "undo" "e")
(princ)
)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

 

HIC. Bác Ăn gian, cái điểm N giới hạn thì từ đầu tới h chưa có mà ? hic.Bác có cách nào để nó ổn định hơn ko ? việc chọn đường biên đó rất khó và ko ổn định. mỗi lúc mỗi kiểu và các đường bóng ở gần cuối điểm N hay bị lỗi. BÁc xem hình nhé : http://www.mediafire...ysewzv3aynpzltc

Và chức năng lưu giá trị cũ..

 

Bác Pro nào hiến kế để sửa cái lisp này chọn đường biên 1 cách dễ dàng với ạ ? quả thật là lisp không ổn định và khó dùng. hic

Hề hề hề,

Cái ni chứng tỏ bạn cũng kha khá hiểu về lisp, vậy mà bạn không chịu đọc kỹ cái lisp mình viết để rồi thắc mắc tùm lum.....

Đúng là mình có ăn gian một tí ở chỗ không thông báo cho bạn biết phải nhập điểm giới hạn. Tuy nhiên thực tế lisp đã chọn cái điểm khi bạn chọn hướng rải đường kẻ bóng để làm giới hạn rồi đó. Nếu không vậy thì cần chi mình phải có các đoạn code: dis (distance p (vlax-curve-getClosestPointTo (vlax-ename->vla-object e) p T))

và : (while (and (< b dis) (> a 0.01))

Như vậy mình sẽ tiết kiệm được một lần chọn điểm. Hề hề hề, củ chuối tuy hơi chát nhưng cũng có ích đó.

Việc chọn mỗi lúc một kiểu là do các bản vẽ của bạn nó lộn xộn chứ không phải tại lisp. Nếu bạn muốn thì hãy kiểm tra trước các line hay LWpolyline bạn chọn làm đường chuẩn kẻ bóng để xác định đâu là đầu và đâu là đít. Tử đó sẽ chọn đường biên đúng.

Còn với tư duy củ chuối của mình thì quá đơn giản, chả cần phải loằng ngoằng chi, Bởi vì chì có hai biên nên chọn lần 1 chửa đúng thì undo rồi chọn lại lần 2 khắc đúng.

Việc cải tiến lisp để chọn kiểu chi cũng được thì mình nhường lại cho bạn và các cao thủ khác do mình không đủ khả năng giải quyết. Vấn đề bí ở cái chỗ cắt hoặc kéo dài đường kẻ bóng cho nó chạm đường biên. Để có thể chọn đúng phía cắt hay giãn dài ắt sẽ phải xét tới đầu và đít của đường kẻ bóng. Do dốt nên mình chọn cái cách củ chuối mà bạn chẳng ưa này để xài đỡ cái đã, còn hơn là mốc mép ngồi chờ.

Rất có thể sẽ có các cao thủ tìm ra hướng giải tốt hơn của mình, Bạn hãy ráng mà chờ nếu như không muốn tự mình sửa hay dùng cái của không ngon này.

Về chức năng lưu giá trị cũ thì bạn đã có cái của bạn rồi đó. Còn của mình tuy chả ngon song mình cũng chả muốn xài cái của bạn do không hợp khẩu vị. Rất mong bạn thông cảm.

Hề hề hề,....

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.649

Nếu đường kẻ gióng chắc chắn chỉ là đường thẳng thì vấn đề sẽ đơn giản hơn 1 chút :)

@Hanam1210 : mình thật ái ngại cho bạn, yêu cầu lisp mấy lần rồi, mà có mỗi việc Cho code vào thẻ Code cứ phải nhắc mãi. Hãy đặt mình vào vị trí người đọc. Thân !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hanam1210    1

hức hức ! e bị bác KETXU mắng. Bác nói em mới biết cách chèn CODE vào thẻ CODE đó ạ. Lần sau e sẽ chấp hành đúng nội quy diễn đàn. lần này là e ko bit bác ạ. Còn cái chức năng lưu giá trị cũ kia em copy từ cái lisp bác KETXU viết sang đó ạ. chứ e đâu hiểu đc mà viết ra.Còn cái đường biên kia thì các cao thủ trên diễn đàn có cao kiến nào thì vào xử giúp em với ạ. Chứ thực sự chạy cả mấy lần thì mới đúng đc.Như thế thì mất công quá. hic !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
congchivo    1

máy bạn viết mẫu hach theo yêu cầu trên được ko, còn nếu viết lisp thì bạn chọ sao điểm đầu điểm cuối và offset dang dần ra theo một hệ số tăng theo hướng định săn của hai line được chọn được không các bác. các bác viết như trên em dùng thấy cũng khó khăn wa. em nhờ các bác điều chỉnh lisp trên lại dùm em với , em cảm ơn nhiều

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123
máy bạn viết mẫu hach theo yêu cầu trên được ko, còn nếu viết lisp thì bạn chọ sao điểm đầu điểm cuối và offset dang dần ra theo một hệ số tăng theo hướng định săn của hai line được chọn được không các bác. các bác viết như trên em dùng thấy cũng khó khăn wa. em nhờ các bác điều chỉnh lisp trên lại dùm em với , em cảm ơn nhiều

Hề hề hề,

Tớ không hiểu bạn nói cái chi cả nên chịu không giúp được. Cách tốt nhất hãy post bản vẽ lên và mô tả rõ cái kết quả bạn cần thì may ra có thể làm được.

Việc viết lisp để tạo mẫu hatch e rằng không ngon ăn như bạn hình dung đâu. Vậy nên nếu muốn thì hãy đợi đó để các cao thủ ra tay chớ tớ thì đầu hàng vô điều kiện.

Việc dùng cái lisp của tớ mà bạn thấy quá khó khăn thì đừng dùng nữa, Hãy chờ để có cái khác ngon hơn.

Hề hề hề, văn dốt vũ dát nên tớ chỉ biết có vậy, ai khoái thì dùng mà chả khoái thì cứ cho vô sọt rác, chớ bận tâm chi.

Chúc bạn sớm tìm được cái bạn cần.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
amateurday    4

Em nhờ các bác viết lisp tô bóng theo kiểu này được không? (Mời các bác xem hình)

http://www.cadviet.c...649_to_bong.dwg

Yêu cầu là: dày thưa () phụ thuộc theo hướng mình chọn đường màu đỏ cái nào trước, cái nào sau.

Cảm ơn các bác!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×