Đến nội dung


Hình ảnh
- - - - -

[ Yêu Cầu] viết lisp sơ họa


  • Please log in to reply
10 replies to this topic

#1 banbe0274

banbe0274

    biết vẽ pline

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

Đã gửi 07 February 2012 - 11:41 AM

Nhờ các bác cao thủ và anh em trên diễn đàn đàn viết hộ em 1 lisp.
Dùng để sơ họa . Từ bình đồ địa hình em vạch 1 tuyến . Trên tuyến có nhiều góc.
Từ tim tuyến em lấy ra mỗi bên 50m em bo đường polyline kín. Em dùng extrim cắt các đối tượng bên ngoài( Em chỉ cần lấy bên trong. Nhờ các Bác viết hộ em 1 lisp đưa tất cả các góc và đường bình đồ về góc 0độ như kết quả ví dụ. Em Trân thành cám ơn các Bác.http://www.cadviet.c...2353_vd_1_1.dwg
  • 0

#2 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 07 February 2012 - 03:14 PM

Nhờ các bác cao thủ và anh em trên diễn đàn đàn viết hộ em 1 lisp.
Dùng để sơ họa . Từ bình đồ địa hình em vạch 1 tuyến . Trên tuyến có nhiều góc.
Từ tim tuyến em lấy ra mỗi bên 50m em bo đường polyline kín. Em dùng extrim cắt các đối tượng bên ngoài( Em chỉ cần lấy bên trong. Nhờ các Bác viết hộ em 1 lisp đưa tất cả các góc và đường bình đồ về góc 0độ như kết quả ví dụ. Em Trân thành cám ơn các Bác.http://www.cadviet.c...2353_vd_1_1.dwg

Tôi đã đọc ví dụ của bạn và nhận thấy ví dụ bạn đưa ra rất đặc biệt, chứ không mang tính tổng quát. Vì vậy, tôi chỉ giúp bạn được 50%, còn 50% thì đợi bạn trả lời (hoặc bạn tự làm). Đó là tôi chỉ mới làm xong bước 1-3, còn bước 4 (bước duỗi thẳng) thì hỏi bạn mấy câu sau:
1). Khi đường đồng mức đi qua điểm góc thì duỗi theo thằng trước hay theo thằng sau?
2). Khi đường đồng mức nằm gọn trong đường bao nhưng lại cắt cả thằng trước và thằng sau thì duỗi kiểu gì?
Đây là lisp "thô" cho bạn:

(defun C:HA( / p1 lst pq pn obj1 obj2 lstp1 lstp2 ss q ent)
(vl-load-com)
(command "undo" "be")
(setq osm (getvar "osmode") cmd (getvar "cmdecho"))
(setq p1 (getpoint "\nChon diem dau tien: ") lst (list p1) pq p1)
(while (setq pn (getpoint "\nChon diem tiep theo: "))
(grdraw p1 pn 3)
(setq lst (cons pn lst) p1 pn))
(setq q (getpoint "\nChon diem dat ket qua cuoi cung: "))
(setvar "osmode" 0) (setvar "cmdecho" 0)
(LWPoly (reverse lst) 0)
(redraw)
(setq obj1 (car (vlax-invoke (vlax-ename->vla-object (entlast)) 'Offset 50)))
(setq obj2 (car (vlax-invoke (vlax-ename->vla-object (entlast)) 'Offset -100)))
(setq lstp1 (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (vlax-vla-object->ename obj1)))))
(setq lstp2 (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (vlax-vla-object->ename obj2)))))
(LWPoly (append lstp1 (reverse lstp2)) 1)
(setq ss (ssget "cp" (cons (car lstp2) (append lstp1 (reverse lstp2)))))
(command "copy" ss "" pq q)
(load "extrim.lsp")
(etrim (setq ent (entlast)) pq)
(setq lstp3 (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent))))
(command "erase" ent "")
(setvar "osmode" osm) (setvar "cmdecho" cmd)
(command "undo" "end")
(princ))
(defun LWPoly (lst cls)
(entmakex (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) (cons 70 cls))
(mapcar (function (lambda (p) (cons 10 p))) lst))))

  • 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.


#3 banbe0274

banbe0274

    biết vẽ pline

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

Đã gửi 07 February 2012 - 03:29 PM

Cám ơn Bác Hà đã giúp em . 1.Ta lên duỗi theo thằng trước là tốt nhất Bác Ạ..
2.Tại điểm góc khi ta duỗi đường đồng múc có thể trùng và cắt nhau. Cái đó chắc chỉ có thể sửa bằng tay thôi bác ạ. Nếu Bác có các khác tối ưu hơn thì càng tốt. Bác giúp em nhé.Cám ơn Bác.
  • 0

#4 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 07 February 2012 - 03:50 PM

Cám ơn Bác Hà đã giúp em . 1.Ta lên duỗi theo thằng trước là tốt nhất Bác Ạ..
2.Tại điểm góc khi ta duỗi đường đồng múc có thể trùng và cắt nhau. Cái đó chắc chỉ có thể sửa bằng tay thôi bác ạ. Nếu Bác có các khác tối ưu hơn thì càng tốt. Bác giúp em nhé.Cám ơn Bác.

Câu 1 thì OK, nhưng Bạn chưa hiểu câu hỏi thứ 2 của tôi. Giả sử khi bạn đã cắt xén theo 2 đường biên xong, khi đó tồn tại 1 đường đồng mức mà nó cắt từ 2 đường trục trở lên thì đường đồng mức này sẽ được duỗi theo kiểu gì?
  • 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.


#5 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 07 February 2012 - 03:52 PM

Nhờ các bác cao thủ và anh em trên diễn đàn đàn viết hộ em 1 lisp.
Dùng để sơ họa . Từ bình đồ địa hình em vạch 1 tuyến . Trên tuyến có nhiều góc.
Từ tim tuyến em lấy ra mỗi bên 50m em bo đường polyline kín. Em dùng extrim cắt các đối tượng bên ngoài( Em chỉ cần lấy bên trong. Nhờ các Bác viết hộ em 1 lisp đưa tất cả các góc và đường bình đồ về góc 0độ như kết quả ví dụ. Em Trân thành cám ơn các Bác.http://www.cadviet.c...2353_vd_1_1.dwg

Hề hề hề,
Bạn dùng thử cái này coi đã đúng ý chưa nhé. Kết quả vẫn còn một số râu thừa do lệnh extrim của express. Mình chưa tìm ra cách xử lý. Bạn có thể xóa thủ công nó một tí. Hy vọng rằng nó có ích cho bạn.



(defun c:sht (/ tt lsp lsp0 lse al e0 e1 e2 e3 e4 en lsp1 ss ssl ss1 p pd oldos )
(VL-LOAD-COM)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq tt (car (entsel "\n Chon tim tuyen"))
lsp (acet-geom-vertex-list tt)
lsp0 (vl-remove (last lsp) (cdr lsp))
;;; e0 (entlast)
lse (list tt) )
(foreach pt lsp0
(command "break" tt pt pt)
(setq lse (cons (entlast) lse)
tt (entlast) )
)
(setq lse (reverse lse))
(load "extrim.lsp")
(foreach tt lse
(setq al (* 180 (/ (angle (setq pd (vlax-curve-getstartpoint tt)) (vlax-curve-getendpoint tt)) pi)) )
(command "offset" 50 tt (list (+ (car pd) 50) (+ (cadr pd) 50)) "")
(setq e1 (entlast))
(command "offset" 50 tt (list (- (car pd) 50) (- (cadr pd) 50)) "")
(setq e2 (entlast))
(command "pline" (vlax-curve-getstartpoint e1) (vlax-curve-getstartpoint e2) "")
(setq e3 (entlast))
(command "pline" (vlax-curve-getendpoint e1) (vlax-curve-getendpoint e2) "")
(setq e4 (entlast))
(command "pedit" e3 "j" e1 e4 e2 "" "")
(setq en (entlast)
lsp1 (acet-geom-vertex-list en))
(command "zoom" "e")
(setq ss (ssget "cp" lsp1))
(setq ssl (acet-ss-to-list ss))
(foreach e ssl
(if (and (member e lse) (not (equal e tt)))
(setq ssl (vl-remove e ssl))
)
)
(setq ss (acet-list-to-ss ssl))
(setvar "osmode" 1)
(command "copy" ss "" pd (setq p (getpoint pd "\n Chon diem dat")))
(setvar "osmode" 0)
(etrim (setq e0 (entlast)) (list (+ (car p) 1000) (+ (cadr p) 1000)))
(command "erase" en e0 "")
(setq ss1 (ssadd))
(while (setq en1 (entnext en)) (setq ss1 (ssadd en1 ss1) en en1) )
(command "rotate" ss1 "" p (- al) )
;;;;(command "erase" (entlast) "")
(command "zoom" "p")
)
(command "pedit" (car lse) "j" (acet-list-to-ss (cdr lse)) "" "")
(setvar "osmode" oldos)
(command "undo" "e")
(princ)
)
Chúc bạn vui.
PS: Sau một hồi mày mò, mình đã khắc phục được các râu thừa đồng thời cũng giải quyết joint lại cái polyline tim tuyến để không làm thay đổi bản vẽ ban đầu của bạn.
Hãy lưu ý vài điểm sau đây khi sử dụng lisp này:
1/- Đường tim tuyến phải là đường Lwpolyline và phải được vẽ trước bạn nhé (Bạn phải dùng lệnh pline của CAD để vẽ đường tim tuyến này). Sở dĩ vậy vì trong lisp có sử dụng lệnh break mà thằng này lại có cái cách làm khác nhau giữa Lwpolyline và Polyline bạn ạ.
Điều này có khác với lisp của bác DoanVanHa vì bác ấy cho bạn pick điểm để tạo polyline.
2/- Khoảng cách offset mặc định là 50 như bạn yêu cầu, Nếu cần khoảng cách khác thì bạn phải thay đổi các giá trị 50 này trong các dòng lệnh offset cho phù hợp. Khi đó bạn cũng cần lưu ý thay đổi cái khoảng cách nhập điểm trong lệnh etrim kẻo nó cắt nhầm đó.(các giá trị 1000. Điều này có khác một chút với bác DoanVanHa vì bác ấy chọn một điểm luôn có thể đảm bảo là nằm ngoài do chắc rằng chả bao giờ bạn lại muốn đặt cái hình kết quả ở trong vùng bản vẽ cũ cả, nó sẽ rất khó nhòm.
3/- Để đảm bảo các đoạn hình cắt ra được nối lại liên tục thì bạn lưu ý khi lisp yêu cầu chọn điểm đặt bạn hãy sử dụng truy bắt điểm là end và zoom lớn đoạn liền trước nó rồi pick vào đầu mút bên phải của đoạn thẳng tim đường.(trừ lần chọn điểm đầu tiên)

Mình đã cập nhật các thay đổi vào lisp bên trên, bạn hảy thử dùng và cho biết ý kiến nhé. Nếu cần sửa đổi gì hãy post lên nhé.
Hề hề hề,..
PS: @ Banbe0274: Khi bạn chạy lisp nên chọn các điểm đăt cách nhau một khoảng đủ lớn để tránh việc bị ẽtrim nhầm các đối tượng không cần extrim bạn nhé. Tuy nhiên như vậy sẽ mất công move chùng lại cho liền nhau như mô tả của bạn.
Trường hợp hướng của đường tim từ phải qua trái, sau khi bạn đã có kết quả nếu muốn có thể dùng lệnh rotate để quay nó đi 180 độ cho gần giống với bản vẽ gốc bạn nhé.

Bài viết đã được chỉnh sửa nội dung bởi phamthanhbinh: 08 February 2012 - 03:57 PM
Chỉnh sửa lại lisp theo một số góp ý của bác DoanVanHa

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

#6 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 07 February 2012 - 05:53 PM

Câu 1 thì OK, nhưng Bạn chưa hiểu câu hỏi thứ 2 của tôi. Giả sử khi bạn đã cắt xén theo 2 đường biên xong, khi đó tồn tại 1 đường đồng mức mà nó cắt từ 2 đường trục trở lên thì đường đồng mức này sẽ được duỗi theo kiểu gì?

Hề hề hề,
Mình hiểu ý bạn ấy là chả co duỗi gì cả mà chỉ đơn giản là xoay cả cái đống đường đồng mức này đi cùng với đườing tim một góc nào đó để đường tim nằm song song trục hoành thôi bác ạ. Khúc tim nào thì các đường đồng mức cắt nó sẽ bị xoay theo tim đó. Chả biết hiểu như vậy có trúng không nữa ????
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.

#7 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 07 February 2012 - 06:22 PM

Hề hề hề,
Mình hiểu ý bạn ấy là chả co duỗi gì cả mà chỉ đơn giản là xoay cả cái đống đường đồng mức này đi cùng với đườing tim một góc nào đó để đường tim nằm song song trục hoành thôi bác ạ. Khúc tim nào thì các đường đồng mức cắt nó sẽ bị xoay theo tim đó. Chả biết hiểu như vậy có trúng không nữa ????
Hề hề hề,..

Bác PTB ơi! Có những đường đồng mức sau khi trim xong nó còn dài đến nỗi cắt tới vài ba khúc tuyến, lại có ĐĐM nó không cắt nhưng nằm trải trên nhiều khúc tuyến khác nhau, nên mới hỏi là quay theo khúc nào, nhưng hình như tôi đã nhớ mang mang ra y/c này ở đâu đó đã gặp. Bác đã làm xong thì OK rồi.
  • 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.


#8 banbe0274

banbe0274

    biết vẽ pline

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

Đã gửi 08 February 2012 - 10:09 AM

Lisp của bác Bình đúng với công việc của em rồi. Cám ơn Bác nhé chúc các Bác trong ban quản trị diễn đàn 1 năm mới an khang thịnh vượng đạt và được nhiều thành công trong cuộc sống.
  • 0

#9 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 08 February 2012 - 10:22 AM

Bạn tham gia cũng được nhiều bài viết rồi. Nhắc bạn là cám ơn nên dùng nút LIKE như thế thể hiện sự biết luật chơi hơn, và thiết nghỉ ai đã giúp thì nên được LIKE mặc dù số lần được LIKE nhiều thì cũng chả có thêm quyền lợi thiết thực nào chẳng qua để thấy rằng time mình bỏ ra viết phản hồi là ko vô ích đối với người đặt câu hỏi.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#10 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 08 February 2012 - 11:39 AM

Hề hề hề,
Bạn dùng thử cái này coi đã đúng ý chưa nhé. Kết quả vẫn còn một số râu thừa do lệnh extrim của express. Mình chưa tìm ra cách xử lý. Bạn có thể xóa thủ công nó một tí. Hy vọng rằng nó có ích cho bạn.




(defun c:sht (/ tt lsp lsp0 lse al e0 e1 e2 e3 e4 en lsp1 ss ssl ss1 p pd )
(VL-LOAD-COM)
(command "undo" "be")
(setq tt (car (entsel "\n Chon tim tuyen"))
lsp (acet-geom-vertex-list tt)
lsp0 (vl-remove (last lsp) (cdr lsp))
;;; e0 (entlast)
lse (list tt) )
(foreach pt lsp0
(command "break" tt pt pt)
(setq lse (cons (entlast) lse)
tt (entlast) )
)
(setq lse (reverse lse))

(foreach tt lse
(setq al (* 180 (/ (angle (setq pd (vlax-curve-getstartpoint tt)) (vlax-curve-getendpoint tt)) pi)) )
(command "offset" 50 tt (list (+ (car pd) 50) (+ (cadr pd) 50)) "")
(setq e1 (entlast))
(command "offset" 50 tt (list (- (car pd) 50) (- (cadr pd) 50)) "")
(setq e2 (entlast))
(command "pline" (vlax-curve-getstartpoint e1) (vlax-curve-getstartpoint e2) "")
(setq e3 (entlast))
(command "pline" (vlax-curve-getendpoint e1) (vlax-curve-getendpoint e2) "")
(setq e4 (entlast))
(command "pedit" e3 "j" e1 e4 e2 "" "")
(setq en (entlast)
lsp1 (acet-geom-vertex-list en))
(command "zoom" "e")
(setq ss (ssget "cp" lsp1))
(setq ssl (acet-ss-to-list ss))
(foreach e ssl
(if (and (member e lse) (not (equal e tt)))
(setq ssl (vl-remove e ssl))
)
)
(setq ss (acet-list-to-ss ssl))
(command "copy" ss "" pd (setq p (getpoint pd "\n Chon diem dat")))
(load "extrim.lsp")
(etrim (setq e0 (entlast)) (list (+ (car p) 1000) (+ (cadr p) 1000)))
(command "erase" en e0 "")
(setq ss1 (ssadd))
(while (setq en1 (entnext en)) (setq ss1 (ssadd en1 ss1) en en1) )
(command "rotate" ss1 "" p (- al) )
;;;;(command "erase" (entlast) "")
(command "zoom" "p")
)
(command "pedit" (car lse) "j" (acet-list-to-ss (cdr lse)) "" "")

(command "undo" "e")
(princ)
)
Chúc bạn vui.
PS: Sau một hồi mày mò, mình đã khắc phục được các râu thừa đồng thời cũng giải quyết joint lại cái polyline tim tuyến để không làm thay đổi bản vẽ ban đầu của bạn.
Hãy lưu ý vài điểm sau đây khi sử dụng lisp này:
1/- Đường tim tuyến phải là đường Lwpolyline và phải được vẽ trước bạn nhé (Bạn phải dùng lệnh pline của CAD để vẽ đường tim tuyến này). Sở dĩ vậy vì trong lisp có sử dụng lệnh break mà thằng này lại có cái cách làm khác nhau giữa Lwpolyline và Polyline bạn ạ.
Điều này có khác với lisp của bác DoanVanHa vì bác ấy cho bạn pick điểm để tạo polyline.
2/- Khoảng cách offset mặc định là 50 như bạn yêu cầu, Nếu cần khoảng cách khác thì bạn phải thay đổi các giá trị 50 này trong các dòng lệnh offset cho phù hợp. Khi đó bạn cũng cần lưu ý thay đổi cái khoảng cách nhập điểm trong lệnh etrim kẻo nó cắt nhầm đó.(các giá trị 1000. Điều này có khác một chút với bác DoanVanHa vì bác ấy chọn một điểm luôn có thể đảm bảo là nằm ngoài do chắc rằng chả bao giờ bạn lại muốn đặt cái hình kết quả ở trong vùng bản vẽ cũ cả, nó sẽ rất khó nhòm.
3/- Để đảm bảo các đoạn hình cắt ra được nối lại liên tục thì bạn lưu ý khi lisp yêu cầu chọn điểm đặt bạn hãy sử dụng truy bắt điểm là end và zoom lớn đoạn liền trước nó rồi pick vào đầu mút bên phải của đoạn thẳng tim đường.(trừ lần chọn điểm đầu tiên)

Mình đã cập nhật các thay đổi vào lisp bên trên, bạn hảy thử dùng và cho biết ý kiến nhé. Nếu cần sửa đổi gì hãy post lên nhé.
Hề hề hề,..

Bác Bình ơi! Tốt rồi. Nếu bác thêm tí mắm muối nữa thì càng tuyệt vời hơn:
- Đưa (load "extrim.lsp") lên đầu kẻo load hoài.
- Hướng vẽ: nếu pline trục đã vẽ từ phải qua trái thì ngược ngược khó coi.
- Điểm đặt bác nên chọn 1 lần thôi, lần sau có thể suy ra được mà!
- Khi đó bật tắt osnap luôn.
Thân thương!
  • 1

* 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.


#11 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 08 February 2012 - 12:38 PM

Bác Bình ơi! Tốt rồi. Nếu bác thêm tí mắm muối nữa thì càng tuyệt vời hơn:
- Đưa (load "extrim.lsp") lên đầu kẻo load hoài.
- Hướng vẽ: nếu pline trục đã vẽ từ phải qua trái thì ngược ngược khó coi.
- Điểm đặt bác nên chọn 1 lần thôi, lần sau có thể suy ra được mà!
- Khi đó bật tắt osnap luôn.
Thân thương!

Hề hề hề,
Thanks bác đã tận tình hướng dẫn. Quả thực là mình vẫn suy nghĩ theo kiểu chắp vá của thằng đi mót nhiều lắm chứ chưa biệt kiểm soat theo hệ thống cống rãnh nào cả. Cứ căn cứ vào cái yêu cầu, rồi lục trong mớ hàng xén mình mót được, có cái chi xài được thì vác ra rồi ghép nó vô thôi nên nó chả được chặt chẽ, sáng sủa cho lắm.
Cái vụ (load extrim.lsp) ấy là mót của bác đấy, Thấy bác đặt ở trên thằng (etrim...... ) thì mình cũng cứ thế mà nhét vô chứ đâu có hiểu ngọn ngành như bác. Cứ tương là hễ etrim thì phải load thôi. Trước tới nay khi lisp có dùng thằng etrim thì mình thường chả có cái vụ load này mà. Nay bác đã dạy thì mình xin tiếp thu và sẽ sửa lại cho nó Chuẩn hỉ???
Cái hướng của pline thì mình cũng đã biết là khi vẽ đường tim từ phải qua trái thì cái hình cắt ra sẽ bị xoay lộn tu 180 độ. Song tại chủ thớt bảo xoay về góc 0 độ mà chả nói rõ là cần theo trật tự nào nên mình cứ cho về mo hết để chủ thớt tự xử thôi. (lẽ ra chỗ này chủ thớt phải nói rõ là 0 hay 180 đô tùy vào hướng của đường tim bác nhể )
Cái điểm đặt, đúng là từ lần thứ hai trở đi có thể cho tự chọn bằng cách lấy điểm cuối của đường tim trước. Xong mình nghĩ cứ để vậy để nhỡ đâu chủ thớt lại muốn lấy thành các khúc riêng biệt thì cứ thế mà mần, còn muốn nối thì mình đã hướng dẫn trong bài post. Tuy hơi loằng ngoằng nhưng có nhẽ nó đa dụng hơn bác nhể.
Việc bật tắt osnap đúng là mình hay bỏ qua thằng cu này và đã nhiều lần ăn chưởng của nó. Vậy mà vẫn chửa tỉnh đòn bác ạ. Cám ơn bác nhắc nhở.Mình sẽ lưu tâm hơn về thằng cu này và sẽ chỉnh sửa vào bài post sau bác nhé.
Mong bác luôn mạnh khỏe để giúp đỡ được nhiều cho mình và các anh em khác trên diễn đàn.
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.