amateurday 16 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 các bác cho em hỏi, em muốn chia 1 đoạn cong thành nhiều đoạn cong, với điểm chia là bất kỳ thì làm thế nào ạ. 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
Nguyen Hoanh 4669 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 các bác cho em hỏi, em muốn chia 1 đoạn cong thành nhiều đoạn cong, với điểm chia là bất kỳ thì làm thế nào ạ. bạn đã thử lệnh break chưa? 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 16 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 bạn đã thử lệnh break chưa? à, em thử rồi, được rồi, nhưng có lisp nào thế này không: break, chọn polylinenhấp vào điểm nào thì ngắt tại đó, và mình cứ nhấp liên tục cho đến khi xong, không phải mỗi lần break là mỗi lần thực hiện lệnh.cám ơn 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
sv_nuce 1 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 à, em thử rồi, được rồi, nhưng có lisp nào thế này không: break, chọn polylinenhấp vào điểm nào thì ngắt tại đó, và mình cứ nhấp liên tục cho đến khi xong, không phải mỗi lần break là mỗi lần thực hiện lệnh.cám ơn bác Bạn dùng lệnh DIVIDE (DIV) được đấy.Bạn dùng phương thức truy bắt điểm NOD nha.Hoặc có thể dùng lệnh MEASURE cũng được đấy.Bạn dùng thử xem nha! 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 16 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 Bạn dùng lệnh DIVIDE (DIV) được đấy.Bạn dùng phương thức truy bắt điểm NOD nha.Hoặc có thể dùng lệnh MEASURE cũng được đấy.Bạn dùng thử xem nha! mình đang chia các đoạn cong không bằng nhau, mình thử rồi không đượ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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 à, em thử rồi, được rồi, nhưng có lisp nào thế này không: break, chọn polylinenhấp vào điểm nào thì ngắt tại đó, và mình cứ nhấp liên tục cho đến khi xong, không phải mỗi lần break là mỗi lần thực hiện lệnh.cám ơn bác Đây, thử xem (defun C:WBREAK( / name p) (while (setq name (entsel)) (setq p (cadr name) name (car name)) (command "_.break" name p p) (command "_.change" (entlast) "" "p" "c" 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
amateurday 16 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 Đây, thử xem (defun C:WBREAK( / name p) (while (setq name (entsel)) (setq p (cadr name) name (car name)) (command "_.break" name p p) (command "_.change" (entlast) "" "p" "c" 1 "") ) ) lisp của bác không xài được, bác xem lại có sai ở đâu không 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 lisp của bác không xài được, bác xem lại có sai ở đâu không Mình thử lại với đường polyline vẫn bình thường mà. Trước khi thực hiện bác tắt chế độ bắt dính đi,hoặc có thể sửa lại như sau (defun C:WBREAK( / name p) (setvar "osmode" 0) (while (setq name (entsel)) (setq p (cadr name) name (car name)) (command "_.break" name p p) ;đoan này không cần thiết ;(command "_.change" (entlast) "" "p" "c" 1 "") ) ) 2 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 3147 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 lisp của bác không xài được, bác xem lại có sai ở đâu không Khà khà, Lisp này chạy ngon, mỗi tội thiếu tí bôi trơn thôi bác ơi. Gọi bác tdvn đi nhậu là nó chạy vù vù ngay ấy mà. 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 16 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 Mình thử lại với đường polyline vẫn bình thường mà. Trước khi thực hiện bác tắt chế độ bắt dính đi,hoặc có thể sửa lại như sau(defun C:WBREAK( / name p) (setvar "osmode" 0) (while (setq name (entsel)) (setq p (cadr name) name (car name)) (command "_.break" name p p) ;đoan này không cần thiết ;(command "_.change" (entlast) "" "p" "c" 1 "") ) ) à, tại em để bắt điểm với lại nó chuyển hết sang màu đỏ nên em không biết. bác giúp em thêm được không. 1. em muốn nó bắt điểm được, với lại lúc mà select object là hắn lại chia đoạn luôn, nếu bắt điểm được thì tốt quá 2. em muốn mỗi lần chia đoạn nó sẽ cho ra 1 màu khác nhau để dễ phân biệt cám ơn bác 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
Phiphi- 177 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 các bác cho em hỏi, em muốn chia 1 đoạn cong thành nhiều đoạn cong, với điểm chia là bất kỳ thì làm thế nào ạ. + Lệnh XDIV dùng chia đường cong, Lines, Pline 3D (chỉ vẽ các Points) theo các đoạn khác nhau do user nhập. Lisp có post trong bài #7: http://www.cadviet.com/forum/index.php?sho...c=9019&st=0 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 à, tại em ðể bắt ðiểm với lại nó chuyển hết sang màu ðỏ nên em không biết. bác giúp em thêm ðýợc không. 1. em muốn nó bắt ðiểm ðýợc, với lại lúc mà select object là hắn lại chia ðoạn luôn, nếu bắt ðiểm ðýợc thì tốt quá 2. em muốn mỗi lần chia ðoạn nó sẽ cho ra 1 màu khác nhau ðể dễ phân biệt cám õn bác nhiều Bạn xem thử, ðổi màu cũng ðc nhýng xem ra cũng không hay lắm. Mình thêm point cho bạn (defun C:WBREAK( / name p) (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 512) (while (and (setq p (getpoint "Pick")) (setq name (nentselp p))) (setq name (car name)) (setvar "osmode" 0) (command "_.break" name p p) (command "_.point" p) (setvar "osmode" 512) ) ) 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
amateurday 16 Báo cáo bài đăng Đã đăng Tháng 4 9, 2009 Bạn xem thử, ðổi màu cũng ðc nhýng xem ra cũng không hay lắm. Mình thêm point cho bạn (defun C:WBREAK( / name p) (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 512) (while (and (setq p (getpoint "Pick")) (setq name (nentselp p))) (setq name (car name)) (setvar "osmode" 0) (command "_.break" name p p) (command "_.point" p) (setvar "osmode" 512) ) ) cám ơn bác, vậy là tốt lắm rồi. cho em hỏi thêm vì em bị lỗi này: Command: (LOAD "C:/Documents and Settings/comeon811/Desktop/chiaduongcong.lsp") ; error: bad character read (octal): 0 Command: wbreak Unknown command "WBREAK". Press F1 for help. 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 16 Báo cáo bài đăng Đã đăng Tháng 4 14, 2009 Bạn xem thử, ðổi màu cũng ðc nhýng xem ra cũng không hay lắm. Mình thêm point cho bạn (defun C:WBREAK( / name p) (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 512) (while (and (setq p (getpoint "Pick")) (setq name (nentselp p))) (setq name (car name)) (setvar "osmode" 0) (command "_.break" name p p) (command "_.point" p) (setvar "osmode" 512) ) ) lisp của bác có 1 vấn đề là thế này : nếu có 1 lưới các đường giao nhau (vd lưới ô vuông, lưới spl giao nhau ), thì khi mình muốn cắt tại điểm giao nhau thì lúc thì nó cắt đoạn thẳng đứng, lúc thì nó cắt đoạn nằm ngang. mình không thể chọn đối tượng thẳng đứng hay nằm ngang được. bác giúp em sửa lại cho hoản hảo nhé 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 14, 2009 lisp của bác có 1 vấn ðề là thế này : nếu có 1 lýới các ðýờng giao nhau (vd lýới ô vuông, lýới spl giao nhau ), thì khi mình muốn cắt tại ðiểm giao nhau thì lúc thì nó cắt ðoạn thẳng ðứng, lúc thì nó cắt ðoạn nằm ngang. mình không thể chọn ðối týợng thẳng ðứng hay nằm ngang ðýợc. bác giúp em sửa lại cho hoản hảo nhé bác. Ðây là lisp ðã ðc chỉnh theo ý bạn. Khi bạn gặp câu : "Chon vi tri chia khac (neu co)", nếu bạn nhập 1 ðiểm thì ðây sẽ là vị trí chia mới, nếu không thì sẽ chia ở vị trí cũ ban ðâu. (defun C:WBREAK( / name p p1) (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 512) (while (and (setq p (getpoint "Chon ðoi tuong va vi tri chia")) (setq name (nentselp p))) (setvar "osmode" 544) (setq p1 (getpoint "\nChon vi tri chia khac (neu co)")) (if p1 (setq p p1)) (setq name (car name)) (setvar "osmode" 0) (command "_.break" name p p) (command "_.point" p) (setvar "osmode" 512) ) ) 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
amateurday 16 Báo cáo bài đăng Đã đăng Tháng 4 15, 2009 Ðây là lisp ðã ðc chỉnh theo ý bạn. Khi bạn gặp câu : "Chon vi tri chia khac (neu co)", nếu bạn nhập 1 ðiểm thì ðây sẽ là vị trí chia mới, nếu không thì sẽ chia ở vị trí cũ ban ðâu. (defun C:WBREAK( / name p p1) (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 512) (while (and (setq p (getpoint "Chon ðoi tuong va vi tri chia")) (setq name (nentselp p))) (setvar "osmode" 544) (setq p1 (getpoint "\nChon vi tri chia khac (neu co)")) (if p1 (setq p p1)) (setq name (car name)) (setvar "osmode" 0) (command "_.break" name p p) (command "_.point" p) (setvar "osmode" 512) ) ) mỗi lần space bỏ qua dòng này (Chon vi tri chia khac (neu co)) mất công quá bác à. bác có cách nào cải tiến được không: đầu tiên là mình sẽ chọn đối tượng, sau đó thì chia và phải sử dụng được đầy đủ osnap của cad nữa cơ. bác tdvn giúp em thêm cái này nhé 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
amateurday 16 Báo cáo bài đăng Đã đăng Tháng 4 16, 2009 mỗi lần space bỏ qua dòng này (Chon vi tri chia khac (neu co)) mất công quá bác à. bác có cách nào cải tiến được không: đầu tiên là mình sẽ chọn đối tượng, sau đó thì chia và phải sử dụng được đầy đủ osnap của cad nữa cơ. bác tdvn giúp em thêm cái này nhé bác. bác tdvn giúp em cái này nữa. thank 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 16, 2009 bác tdvn giúp em cái này nữa. thank bác Mình đang bận tý việc và cũng đang suy nghĩ xem cách nào thuận lợi cho bạn. Bạn chịu khó chờ tý nhé 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 16, 2009 Mình ðã sửa lại cho bạn ðây. Về các kiểu bắt dính thì bạn có thể chỉnh lại theo ý mình bằng cách. Ðánh lệnh ds, sau ðó chọn các kiểu thích hợp. chọn OK. Sau ðó tại dòng command: ðánh osmode. Ví dụ Command: osmode Enter new value for OSMODE <2600>: dùng giá trị 2600 ở trên nhập vào vị trí của dòng (setvar "osmode" 2600) trong lisp. (defun C:WBR( / name p p1 p2 a ss l old nl) (princ "\nLenh chia thanh tung doan") (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 2600);Day la tong cua mot so kieu bat dinh (while (setq p (getpoint "Vi tri va doi tuong")) (setq old (getvar "osmode")) (setq a (/ (* (getvar "aperture") (getvar "viewsize")) 400) p1 (list (- (car p) a) (+ (cadr p) a) 0.0) p2 (list (+ (car p) a) (- (cadr p) a) 0.0) name nil) (setq ss (ssget "c" p1 p2 '((0 . "LINE,XLINE,RAY,SPLINE,POLYLINE,LWPOLYLINE,ARC")))) (if ss (progn (setq l (sslength ss)) (if (= l 1) (setq name (ssname ss 0)) (progn (setq name (entsel "\nDiem chon co nhieu doi tuong, chon doi tuong can chia")) (if name (setq name (car name))) )) )) (if name (progn (setvar "osmode" 0) (setq nl (entlast)) (command "_.break" name p p) (if (null (equal nl (entlast))) (command "_.point" p)) )) (setvar "osmode" old) ) ) 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
trumxike8x 1 Báo cáo bài đăng Đã đăng Tháng 4 16, 2009 các bác cho em hỏi, em muốn chia 1 đoạn cong thành nhiều đoạn cong, với điểm chia là bất kỳ thì làm thế nào ạ. câu này ông thày tui cùng từng hỏi khi xưa nhưng nghĩ maĩ không ra..................mấy cách của các ka ka đè ra cũng có vẻ đưọc đây........tui lâu rồi khôg sài cad nên chưa thử test thử tui PM lại nghen 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 16 Báo cáo bài đăng Đã đăng Tháng 4 17, 2009 Mình ðã sửa lại cho bạn ðây. Về các kiểu bắt dính thì bạn có thể chỉnh lại theo ý mình bằng cách. Ðánh lệnh ds, sau ðó chọn các kiểu thích hợp. chọn OK. Sau ðó tại dòng command: ðánh osmode. Ví dụ Command: osmode Enter new value for OSMODE <2600>: dùng giá trị 2600 ở trên nhập vào vị trí của dòng (setvar "osmode" 2600) trong lisp. (defun C:WBR( / name p p1 p2 a ss l old nl) (princ "\nLenh chia thanh tung doan") (setvar "pdmode" 33) (setvar "pdsize" 0.25) (setvar "osmode" 2600);Day la tong cua mot so kieu bat dinh (while (setq p (getpoint "Vi tri va doi tuong")) (setq old (getvar "osmode")) (setq a (/ (* (getvar "aperture") (getvar "viewsize")) 400) p1 (list (- (car p) a) (+ (cadr p) a) 0.0) p2 (list (+ (car p) a) (- (cadr p) a) 0.0) name nil) (setq ss (ssget "c" p1 p2 '((0 . "LINE,XLINE,RAY,SPLINE,POLYLINE,LWPOLYLINE,ARC")))) (if ss (progn (setq l (sslength ss)) (if (= l 1) (setq name (ssname ss 0)) (progn (setq name (entsel "\nDiem chon co nhieu doi tuong, chon doi tuong can chia")) (if name (setq name (car name))) )) )) (if name (progn (setvar "osmode" 0) (setq nl (entlast)) (command "_.break" name p p) (if (null (equal nl (entlast))) (command "_.point" p)) )) (setvar "osmode" old) ) ) thank bác nhiều lắm, nhưng vẫn chọn đối tượng rồi kick điểm chia liên tục thôi. nhưng thôi vậy cũng được rồi, em gửi cho bác bản vẽ bình đồ, đg màu xanh là sông, các đường còn lại là đường đồng mức. cho em hỏi sông được vẽ bằng lệnh gì vậy, tại sao bề dày của nó lại lớn thế, dù em đã tắt lineweight rồi. em dùng lisp của bác sao lại không chia được con sông ra thành nhiều đoạn tại những điểm giao với đường đồng mức. bác rảnh thì xem hộ em nhé. thank bác link file : http://www.mediafire.com/?sharekey=e0519e8...04e75f6e8ebb871 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