Thaistreetz 539 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Bạn nhấn nút Reply bài viết số 340 hoặc nhấn nút Edit bài viết số 350 của bạn (nằm ngay trên bài viết này)-> chép hết code về chạy nhé Cheers Lỗi này lạ nhỉ. hình như lỗi này là do trình duyệt mà các bác dùng góp phần tạo ra chứ không hẳn là do cadviet. trong suốt thời gian qua và hiện giờ em không hề bị dính lỗi này, vẫn có thể copy code trực tiếp về dùng bình thường. em dùng Opera 10. 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Bạn Tuệ ơi! Bạn có lisp nào copy các số dạng 1+; 1-... sang một vị trí khác thành 2+; 2-... không? Mình đang vẽ đường dốc cho ô tô 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Bạn Tuệ ơi! Bạn có lisp nào copy các số dạng 1+; 1-... sang một vị trí khác thành 2+; 2-... không? Mình đang vẽ đường dốc cho ô tô mà Bạn hãy đọc thật kỹ bài viết số 4 của Tue_NV. Nó sẽ giúp bạn làm điều đó Bài viết đó ở đây : Bai viet so 4 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 các số này nằm trong ô vuông do mình đánh lệnh leader. Cả ô vuông và các số dạng này là 1 block không phá được Mình copy cả cụm này cơ bạn Tuệ ah 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
Trần Diệu Nhân 20 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 các a trên diễn đàn xin giúp e, e có text c1, c2, c3... bây giờ e muốn thay toàn bộ các text trên thành c3, c4, c5, nghĩa là tăng thêm 2 đơn vị số trong text đó ai biết giúp e nhá! :tongue2: 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 các a trên diễn đàn xin giúp e, e có text c1, c2, c3... bây giờ e muốn thay toàn bộ các text trên thành c3, c4, c5, nghĩa là tăng thêm 2 đơn vị số trong text đóai biết giúp e nhá! :tongue2: Tue_NV viết cho trường hợp tổn quát : Chuỗi của bạn được cấu thành từ string chữ đứng đầu và string số đứng sau Ví dụ : Th-1 thì Th- : là string chữ đứng đầu và 1 : là string số đứng sau : Lisp này Tue_NV viết sẽ tăng giảm đơn vị số trong text đó : - Nếu tăng : Nhập số - Nếu giảm : Nhập dấu trừ đằng trước số. Ví dụ : -2 (defun c:upts(/ ss so i ss ent str tdau lentcuoi sthay tcuoi so) (vl-load-com) ;copyright by Tue_NV (prompt "\n Chon cac TEXT :") (setq ss (ssget '((0 . "TEXT"))) i 0) (if (not soo) (setq soo 0.0)) (setq so (getreal (strcat "\n Nhap so muon cong them :") )) (if (not so) (setq so soo) (setq soo so)) (while ( (setq ent (entget(ssname ss i))) (setq str (cdr(assoc 1 ent))) (setq tdau (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" str )) (setq lentcuoi (- (strlen str) (strlen tdau) )) (setq tcuoi (substr str (1+ (strlen tdau)) lentcuoi)) (setq sthay (rtos (+ (atof tcuoi) so) 2 0) ) (if (= (substr tcuoi 1 1) "0") (setq sthay (strcat "0" (rtos (+ (atof tcuoi) so) 2 0)) ) ) (setq ent (entmod (subst (cons 1 (strcat tdau sthay)) (assoc 1 ent) ent))) (setq i (1+ i)) ) (princ) ) 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Em đánh lệnh leader (sử dụng lựa chọn setting/annotation/tolerance) sau đó copy dimleader đó sao cho cụm ký tự trong ô vuông tăng lên theo cấp số cộng với n=1 Vậy ai biết có lisp nào thì giúp em với nha! em sẽ mời :tongue2: 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
daotac541 2 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Tue_NV viết cho trường hợp tổn quát :Chuỗi của bạn được cấu thành từ string chữ đứng đầu và string số đứng sau Ví dụ : Th-1 thì Th- : là string chữ đứng đầu và 1 : là string số đứng sau : Lisp này Tue_NV viết sẽ tăng giảm đơn vị số trong text đó : - Nếu tăng : Nhập số - Nếu giảm : Nhập dấu trừ đằng trước số. Ví dụ : -2 (defun c:upts(/ ss so i ss ent str tdau lentcuoi sthay tcuoi so) (vl-load-com) ;copyright by Tue_NV (prompt "\n Chon cac TEXT :") (setq ss (ssget '((0 . "TEXT"))) i 0) (if (not soo) (setq soo 0.0)) (setq so (getreal (strcat "\n Nhap so muon cong them <" (rtos soo 2 0) "> :") )) (if (not so) (setq so soo) (setq soo so)) (while (< i (sslength ss)) (setq ent (entget(ssname ss i))) (setq str (cdr(assoc 1 ent))) (setq tdau (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" str )) (setq lentcuoi (- (strlen str) (strlen tdau) )) (setq tcuoi (substr str (1+ (strlen tdau)) lentcuoi)) (setq sthay (rtos (+ (atof tcuoi) so) 2 0) ) (if (= (substr tcuoi 1 1) "0") (setq sthay (strcat "0" (rtos (+ (atof tcuoi) so) 2 0)) ) ) (setq ent (entmod (subst (cons 1 (strcat tdau sthay)) (assoc 1 ent) ent))) (setq i (1+ i)) ) (princ) ) Nhờ bác Tue NV viết dùm em cái lisp tác dụng tương tự như lisp trên nhưng thay vì sửa text trực tiếp thì lisp cho phép mình copy text. Ví dụ + Có text "so1" + Sau khi chạy lisp sẽ hỏi : nhập số muốn cộng thêm ( ví dụ em nhập là 2) + Kết quả : pick điểm ta được 1 text khác là "so3", pick thêm điểm ta được text "so5" Thx bác nhiều nhiều !!!!!!!!!!! 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Nhờ bác Tue NV viết dùm em cái lisp tác dụng tương tự như lisp trên nhưng thay vì sửa text trực tiếp thì lisp cho phép mình copy text.Ví dụ + Có text "so1" + Sau khi chạy lisp sẽ hỏi : nhập số muốn cộng thêm ( ví dụ em nhập là 2) + Kết quả : pick điểm ta được 1 text khác là "so3", pick thêm điểm ta được text "so5" Thx bác nhiều nhiều !!!!!!!!!!! Bạn Tuệ ơi! Bạn có lisp nào copy các số dạng 1+; 1-... sang một vị trí khác thành 2+; 2-... không? Mình đang vẽ đường dốc cho ô tô mà Chào bạn daotac541 và bạn dlongkts Hai bạn có thể sử dụng Lisp này đã được bác ssg viết ở đây : Bài viết số 6 Chức năng download Lisp file của diễn đàn đôi lúc bị lỗi. Nếu sử dụng chức năng này không được bạn nhấn nút Reply bài viết của bác ssg (không sót nhé) về chạy là được @daotac541 và Trần Diệu Nhân : Lisp của Tue_NV viết theo ý của Trần Diệu Nhân là cập nhật vào các Text đã có theo ý của Trần Diệu Nhân và ý tưởng của Tue_NV được viết ở bài số 358. @dlongkts : Tại bạn không nói rõ từ đầu là bạn dùng Block thuộc tính. Bạn sử dụng lệnh OCA của bác ssg nhé. Tuy nhiên, Lisp của bác ssg chỉ tăng giảm số đằng sau. Ví dụ +1 tăng lên +2 -> +3 .... Nhưng ý của bạn lại là tăng giảm số đằng trước. vdụ : 1+ tăng 2+ -> 3+ ..... Vậy thì trong đoạn Lisp OCA bạn sửa lại như sau : Thay dòng : (setq c (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" cn) -> thành dòng : (setq c (vl-string-left-trim "0 1 2 3 4 5 6 7 8 9" cn) và thay dòng : (setq cn (strcat c (incN (vl-string-subst "" c cn) dn))) ->thành dòng : (setq cn (strcat (incN (vl-string-subst "" c cn) dn) c)) Nếu không đúng ý bạn dlongkts thì bạn dlongkts vui lòng upload file .dwg lên diễn đàn và nói rõ điều bạn muốn Chúc các bạn thành công :tongue2: 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
Trần Diệu Nhân 20 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Bài số 358 kiếm ở đâu a Tue_NV ơi! Cảm ơn a! lisp a viết dùng ngon lắm ạ! :tongue2: E còn câu hỏi này nữa : Anh Tue_NV! Giúp e cái lisp bố trí cột vào lưới với ạ! File đính kèm đây a: http://www.mediafire.com/file/wlvw3inzdwm/lisp dat ki hieu va bo tri cot.dwg 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Bạn Tuệ ơi đây là link: http://www.cadviet.com/upfiles/2/duongdoc1.dwg 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Bạn Tuệ ơi đây là link: http://www.cadviet.com/upfiles/2/duongdoc1.dwg Chào bạn dlongkts Bạn đã đọc bài viết số 361 và làm theo ý của Tue_NV chưa? Bản vẽ của bạn có rất nhiều file Xref nên Tue_NV mở không thấy gì cả ở Model Bạn nên làm theo ý của Tue_NV trước đã. Có khó khăn gì post lên đây. Mình sẽ giúp @Trần Diệu Nhân : Tue_NV đã đọc bài viết và cần có thời gian mới viết được Lisp này. Dạo này mình hơi bận. Bạn chịu khó chờ vậy. 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 http://www.cadviet.com/upfiles/2/duongdoccopy.dwg Vừa rồi mình phải làm thủ công nên mất thời gian quá. Mình đã blind rồi nên không bị xref nữ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
phamthanhbinh 3.146 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Bài số 358 kiếm ở đâu a Tue_NV ơi!Cảm ơn a! lisp a viết dùng ngon lắm ạ! :tongue2: E còn câu hỏi này nữa : Anh Tue_NV! Giúp e cái lisp bố trí cột vào lưới với ạ! File đính kèm đây a: http://www.mediafire.com/file/wlvw3inzdwm/lisp dat ki hieu va bo tri cot.dwg Chào bạn Trần Diệu Nhân và bạn dlongkts. Bài viết số 358 ở ngay trongtopic này bạn ạ. Tỷ như bài post của bạn Trần diệu nhân trên đây là bài viết số 362 của topic này. Các bạn có thể post bản vẽ ở dạng Cad2004 được không. Như vậy sẽ có nhiều người đọc được hơn và khả năng có thể giúp các bạn cao hơn. Thanks all 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 .... E còn câu hỏi này nữa : Anh Tue_NV! Giúp e cái lisp bố trí cột vào lưới với ạ! File đính kèm đây a: http://www.mediafire.com/file/wlvw3inzdwm/lisp dat ki hieu va bo tri cot.dwg Phù. Cuối cùng cũng hoàn thành Lisp bố trí cột vào lưới'Trần Diệu Nhân' thử nhé Chức năng download Lisp file của diễn đàn đôi lúc bị lỗi. Nếu sử dụng chức năng này không được bạn nhấn nút Reply bài viết của Tue_NV (không sót nhé) về chạy là được (defun c:ltruc(/ oldos dai rong ang i j ssx ssy ltx lty ent dau cuoi ang i minx miny maxx maxy i1 i2 i3 i4 pt1 pt2 pt3 pt4 in) (vl-load-com) ;copyright by Tue_NV (command "undo" "be") (setq oldos (getvar "osmode")) (setvar "osmode" 0) (Setq dai (getdist "\n chieu dai cot theo phuong X :")) (Setq rong (getdist "\n chieu rong cot theo phuong Y :")) (setq ang 0) (setq ss (ssget '((0 . "*LINE"))) i 0 j 0 ssx (ssadd) ssy (ssadd) ltx nil lty nil) (Repeat (sslength ss) (setq ent (ssname ss i)) (setq dau (vlax-curve-getStartPoint ent)) (setq cuoi (vlax-curve-getEndPoint ent)) (if (or (= (angle dau cuoi) ang) (= (angle dau cuoi) (+ ang pi)) ) (progn (if (= (angle dau cuoi) pi) (progn (setq dau (vlax-curve-getEndPoint ent)) (setq cuoi (vlax-curve-getStartPoint ent)) ) ) (setq ssx (ssadd ent ssx)) (setq ltx (append ltx (list (list dau cuoi ent)))) ) ) (if (or (= (angle dau cuoi) (+ ang (/ pi 2)) ) (= (angle dau cuoi) (+ ang (/ (* 3 pi) 2))) ) (progn (if (= (angle dau cuoi) pi) (progn (setq dau (vlax-curve-getEndPoint ent)) (setq cuoi (vlax-curve-getStartPoint ent)) ) ) (setq ssy (ssadd ent ssy)) (setq lty (append lty (list (list dau cuoi ent)))) ) ) (setq i (1+ i)) ) (setq ltx (vl-sort ltx '(lambda (x1 x2) (< (cadr(car x1)) (cadr(car x2))) ) ) ) (setq lty (vl-sort lty '(lambda (y1 y2) (< (car(car y1)) (car(car y2))) ) ) ) (alert "\n Vui long cho mot chut. Chuong trinh se bo tri luoi cot cho ban") ;Case #1 (setq minx (car ltx) miny (car lty) maxx (nth (1- (length ltx)) ltx) maxy (nth (1- (length lty)) lty) i1 (car(giaodt (caddr minx) (caddr miny))) i2 (car(giaodt (caddr maxx) (caddr maxy))) i3 (car(giaodt (caddr maxx) (caddr miny))) i4 (car(giaodt (caddr maxy) (caddr minx))) pt1 (list (+ (car i1) dai) (+ (cadr i1) rong) 0) pt2 (list (- (car i2) dai) (- (cadr i2) rong) 0) pt3 (list (+ (car i3) dai) (- (cadr i3) rong) 0) pt4 (list (- (car i4) dai) (+ (cadr i4) rong) 0) ) (vecot i1 pt1) (vecot i2 pt2) (vecot i3 pt3) (vecot i4 pt4) (setq ltx (vl-remove minx ltx)) (setq ltx (vl-remove maxx ltx)) (setq lty (vl-remove miny lty)) (setq lty (vl-remove maxy lty)) ;Case #2 : Intersect minx - y (foreach x lty (setq in (car(giaodt (caddr minx) (caddr x))) pt1 (list (- (car in) (/ dai 2)) (cadr in) 0) pt2 (list (+ (car in) (/ dai 2)) (+ (cadr in) rong) 0) ) (vecot pt1 pt2) );foreach ;Case #3 : Intersect maxx - y (foreach x lty (setq in (car(giaodt (caddr maxx) (caddr x))) pt1 (list (- (car in) (/ dai 2)) (cadr in) 0) pt2 (list (+ (car in) (/ dai 2)) (- (cadr in) rong) 0) ) (vecot pt1 pt2) );foreach ;Case #4 : Intersect miny - x (foreach x ltx (setq in (car(giaodt (caddr miny) (caddr x))) pt1 (list (car in) (- (cadr in) (/ rong 2)) 0) pt2 (list (+ (car in) dai) (+ (cadr in) (/ rong 2)) 0) ) (vecot pt1 pt2) );foreach ;Case #5 : Intersect maxy - x (foreach x ltx (setq in (car(giaodt (caddr maxy) (caddr x))) pt1 (list (car in) (+ (cadr in) (/ rong 2)) 0) pt2 (list (- (car in) dai) (- (cadr in) (/ rong 2)) 0) ) (vecot pt1 pt2) );foreach ;Case #5 : Intersect maxxy - minxy (foreach x ltx (foreach y lty (setq in (car(giaodt (caddr x) (caddr y))) pt1 (list (- (car in) (/ dai 2)) (- (cadr in) (/ rong 2)) 0) pt2 (list (+ (car in) (/ dai 2)) (+ (cadr in) (/ rong 2)) 0) ) (vecot pt1 pt2) );foreach );foreach (alert "\n Finish") (setvar "osmode" oldos) (command "undo" "be") (princ) ) ; (defun vecot(p1 p2) (command "rectang" p1 p2) ;(command "zoom" "w" p1 p2) (command "hatch" "solid" (entlast) "") ;(command "zoom" "P") (princ) ) ; (defun GiaoDT (ent1 ent2) (setq ob1 (vlax-ename->vla-object ent1) ob2 (vlax-ename->vla-object ent2) ) (setq g (vlax-variant-value (vla-IntersectWith ob1 ob2 acExtendNone) ) ) (if (/= (vlax-safearray-get-u-bound g 1) -1) (setq g (vlax-safearray->list g)) (setq g nil) ) (if g (progn (setq kq nil sd (fix (/ (length g) 3)) ) (repeat sd (setq kq (append kq (list (list (car g) (cadr g) (caddr g)))) g (cdddr g) ) ) kq ) nil ) ) 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
duy782006 1.554 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Phù. Cuối cùng cũng hoàn thành Lisp bố trí cột vào lưới 'Trần Diệu Nhân' thử nhé Chức năng download Lisp file của diễn đàn đôi lúc bị lỗi. Nếu sử dụng chức năng này không được bạn nhấn nút Reply bài viết của Tue_NV (không sót nhé) về chạy là được Sao Tue_NV không dùng insert bock cho hắn khỏe 1 tí. (tạo block vuông 1x1 sau đó chèn theo tỉ lệ x,y) 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
Trần Diệu Nhân 20 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Cảm ơn a Tue_NV nhiều lắm lắm, thật tình thì ko biết lấy gì để đền đáp công sức của a bỏ ra viết Lisp cho e. Thôi thì e xin gửi tặng 500k ủng hộ đồng bào Miền Trung khắc phục sau bão vậy!? A có thể nt số tài khoản của a cho e. 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 (Đă chỉnh sửa) Sao Tue_NV không dùng insert bock cho hắn khỏe 1 tí. (tạo block vuông 1x1 sau đó chèn theo tỉ lệ x,y)Chào anh Duy và bạn Trần Diệu NhânCode này Tue_NV viết theo ý anh Duy -> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó . "BX : di chuyển Block theo phương X BY : di chuyển Block theo phương Y" Đây là Lisp chèn Block cột với kích thước là axb vào lưới cột a: cạnh dài cột theo phương X và b là cạnh ngắn cột theo phương Y Code đây : (defun c:ltruc(/ oldos dai rong ang i j ssx ssy ltx lty ent dau cuoi ang i minx miny maxx maxy i1 i2 i3 i4 pt1 in) (vl-load-com) ;copyright by Tue_NV (command "undo" "be") (setq oldos (getvar "osmode")) (setvar "osmode" 0) (Setq dai (getdist "\n chieu dai cot theo phuong X :")) (Setq rong (getdist "\n chieu rong cot theo phuong Y :")) (setq ang 0) (setq ss (ssget '((0 . "*LINE"))) i 0 j 0 ssx (ssadd) ssy (ssadd) ltx nil lty nil) (Repeat (sslength ss) (setq ent (ssname ss i)) (setq dau (vlax-curve-getStartPoint ent)) (setq cuoi (vlax-curve-getEndPoint ent)) (if (or (= (angle dau cuoi) ang) (= (angle dau cuoi) (+ ang pi)) ) (progn (if (= (angle dau cuoi) pi) (progn (setq dau (vlax-curve-getEndPoint ent)) (setq cuoi (vlax-curve-getStartPoint ent)) ) ) (setq ssx (ssadd ent ssx)) (setq ltx (append ltx (list (list dau cuoi ent)))) ) ) (if (or (= (angle dau cuoi) (+ ang (/ pi 2)) ) (= (angle dau cuoi) (+ ang (/ (* 3 pi) 2))) ) (progn (if (= (angle dau cuoi) pi) (progn (setq dau (vlax-curve-getEndPoint ent)) (setq cuoi (vlax-curve-getStartPoint ent)) ) ) (setq ssy (ssadd ent ssy)) (setq lty (append lty (list (list dau cuoi ent)))) ) ) (setq i (1+ i)) ) (setq ltx (vl-sort ltx '(lambda (x1 x2) (< (cadr(car x1)) (cadr(car x2))) ) ) ) (setq lty (vl-sort lty '(lambda (y1 y2) (< (car(car y1)) (car(car y2))) ) ) ) (alert "\n Vui long cho mot chut. Chuong trinh se bo tri luoi cot cho ban") ;Case #1 (setq minx (car ltx) miny (car lty) maxx (nth (1- (length ltx)) ltx) maxy (nth (1- (length lty)) lty) i1 (car(giaodt (caddr minx) (caddr miny))) i2 (car(giaodt (caddr maxx) (caddr maxy))) i3 (car(giaodt (caddr maxx) (caddr miny))) i4 (car(giaodt (caddr maxy) (caddr minx))) pt1 (list (+ (car i1) (/ dai 2)) (+ (cadr i1) (/ rong 2)) 0) pt2 (list (- (car i2) (/ dai 2)) (- (cadr i2) (/ rong 2)) 0) pt3 (list (+ (car i3) (/ dai 2)) (- (cadr i3) (/ rong 2)) 0) pt4 (list (- (car i4) (/ dai 2)) (+ (cadr i1) (/ rong 2)) 0) ) (vecot pt1 dai rong) (vecot pt2 dai rong) (vecot pt3 dai rong) (vecot pt4 dai rong) (setq ltx (vl-remove minx ltx)) (setq ltx (vl-remove maxx ltx)) (setq lty (vl-remove miny lty)) (setq lty (vl-remove maxy lty)) ;Case #2 : Intersect minx - y (foreach x lty (setq in (car(giaodt (caddr minx) (caddr x))) pt1 (list (car in) (+ (cadr in) (/ rong 2)) 0) ) (vecot pt1 dai rong) );foreach ;Case #3 : Intersect maxx - y (foreach x lty (setq in (car(giaodt (caddr maxx) (caddr x))) pt1 (list (car in) (- (cadr in) (/ rong 2)) 0) ) (vecot pt1 dai rong) );foreach ;Case #4 : Intersect miny - x (foreach x ltx (setq in (car(giaodt (caddr miny) (caddr x))) pt1 (list (+ (car in) (/ dai 2)) (cadr in) 0) ) (vecot pt1 dai rong) );foreach ;Case #5 : Intersect maxy - x (foreach x ltx (setq in (car(giaodt (caddr maxy) (caddr x))) pt1 (list (- (car in) (/ dai 2)) (cadr in) 0) ) (vecot pt1 dai rong) );foreach ;Case #5 : Intersect maxxy - minxy (foreach x ltx (foreach y lty (setq in (car(giaodt (caddr x) (caddr y))) ) (vecot in dai rong) );foreach );foreach (alert "\n Finish") (setvar "osmode" oldos) (command "undo" "be") (princ) ) ; (defun vecot(p d r / el1) (command "rectang" '(-0.5 -0.5) '(0.5 0.5)) (setq el1 (entlast)) (command "hatch" "solid" el1 "") (if (/= (tblsearch "block" "luoicot") nil) (command "block" "luoicot" "Y" '(0 0 0) el1 (entlast) "") (command "block" "luoicot" '(0 0 0) el1 (entlast) "") );if (command "insert" "luoicot" p d r "0") (princ) ) ; (defun GiaoDT (ent1 ent2) (setq ob1 (vlax-ename->vla-object ent1) ob2 (vlax-ename->vla-object ent2) ) (setq g (vlax-variant-value (vla-IntersectWith ob1 ob2 acExtendNone) ) ) (if (/= (vlax-safearray-get-u-bound g 1) -1) (setq g (vlax-safearray->list g)) (setq g nil) ) (if g (progn (setq kq nil sd (fix (/ (length g) 3)) ) (repeat sd (setq kq (append kq (list (list (car g) (cadr g) (caddr g)))) g (cdddr g) ) ) kq ) nil ) )Edit : đã fix một lỗi. Các bạn chạy chưa được test lại dùm. Thanks @ Trần Diệu Nhân : Bạn chỉ cần đóng góp nhiều cho diễn đàn là quý lắm rồi. Với Tue_NV chỉ cần điều đó. Và nếu bạn muốn ủng hộ đồng bào miền Trung thì mình ủng hộ ý kiến của bạn. Miền Trung phải hứng chịu hậu quả của cơn bão thiệt tình buồn lắm . Mình nghĩ nếu bạn có tấm lòng thì tất nhiên bạn sẽ có cách để ủng hộ đồng bào miền Trung mà. Mình nói vậy đúng không? Thôi, mình không nên bàn chủ đề này ở đây Nhân nhé Chỉnh sửa Tháng 1 7, 2016 theo ketxu 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
hugo007 1 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Chào bác TUE trong lisp của bác về dimstyle mẫu D100 rất hay,bác có thể chỉ cho e cách thêm dòng lệnh nào để trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER sẽ được chọn khi nhấn lệnh dim100,mấy thông số kia vẫn như lisp gốc của bác.Thanks. http://www.cadviet.com/forum/index.php?sho...205&st=2580 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Chào bác TUE trong lisp của bác về dimstyle mẫu D100 rất hay,bác có thể chỉ cho e cách thêm dòng lệnh nào để trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER sẽ được chọn khi nhấn lệnh dim100,mấy thông số kia vẫn như lisp gốc của bác.Thanks.http://www.cadviet.com/forum/index.php?sho...205&st=2580 Bạn chèn thêm dòng này vào nhé : "DIMFIT" 5 Hy vọng bạn tự xử lý được :tongue2: 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
hugo007 1 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Bạn chèn thêm dòng này vào nhé : "DIMFIT" 5 Hy vọng bạn tự xử lý được :tongue2: Mong bác kiểm tra lại giùm e,e đã chèn dòng này vào rồi nhưng khi mở cad lên,đánh dim100,vào dimstyle kiểm tra thì trong trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER của mục Text Placement vẫn chưa được chọn.Chân thành 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 5, 2009 Mong bác kiểm tra lại giùm e,e đã chèn dòng này vào rồi nhưng khi mở cad lên,đánh dim100,vào dimstyle kiểm tra thì trong trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER của mục Text Placement vẫn chưa được chọn.Chân thành cảm ơn bác nhiều. Hãy chạy lại thử Code sau : (defun c:dim100() (command "style" "style1" "VHELVCN.TTF" "0" "1" "0" "n" "n") (if (not (tblsearch "DImstyle" "Dim100")) (progn (command "dimstyle" "S" "Dim100") (command "dim" "style" "style1" "DIMADEC" 0 "DIMALT" 0 "DIMALTD" 3 "DIMALTF" 0.0394 "DIMALTRND" 0.0000 "DIMALTTD" 3 "DIMALTTZ" 0 "DIMALTU" 2 "DIMALTZ" 0 "DIMASZ" 1.2000 "DIMATFIT" 3 "DIMAUNIT" 0 "DIMAZIN" 0 "DIMBLK" "_Dot" "DIMBLK1" "" "DIMBLK2" "" "DIMCLRD" 8 "DIMCLRE" 8 "DIMCLRT" 4 "DIMDEC" 0 "DIMDLE" 0.0000 "DIMDLI" 7.0000 "DIMEXE" 2.0000 "DIMEXO" 2.0000 "DIMFRAC" 0 "DIMGAP" 0.5000 "DIMJUST" 0 "DIMLFAC" 1.0000 "DIMLIM" 0 "DIMLUNIT" 2 "DIMLWD" 9 "DIMLWE" 9 "DIMRND" 0.0000 "DIMSAH" 0 "DIMSCALE" 100.0000 "DIMSD1" 0 "DIMSD2" 0 "DIMSE1" 0 "DIMSE2" 0 "DIMSOXD" 0 "DIMTAD" 1 "DIMTIH" 0 "DIMTIX" 1 "DIMTM" 0.0000 "DIMTMOVE" 0 "DIMTOFL" 1 "DIMTOH" 0 "DIMTSZ" 0.0000 "DIMTVP" 0.0000 "DIMTXSTY" "style1" "DIMTXT" 2.5000 "DIMFIT" 5 \e) (command "dimstyle" "S" "Dim100" "Y") ) ) (graphscr) (princ) ) 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
Trần Diệu Nhân 20 Báo cáo bài đăng Đã đăng Tháng 11 6, 2009 Chào anh Duy và bạn Trần Diệu Nhân Code này Tue_NV viết theo ý anh Duy -> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó . "BX : di chuyển Block theo phương X BY : di chuyển Block theo phương Y" Đây là Lisp chèn Block cột với kích thước là axb vào lưới cột a: cạnh dài cột theo phương X và b là cạnh ngắn cột theo phương Y Edit : đã fix một lỗi. Các bạn chạy chưa được test lại dùm. Thanks Đồng ý với a Tue_NV e sẽ cố gắng đóng góp nhiều cho diễn đàn ạ...! Lisp ltruc bị lỗi gì vậy a Tue_NV!? e dùng vẫn ok mà!? À mà sao load lệnh ltruc thì các chế độ bắt điểm mất hết nhỉ, khắc phục được ko a Tue_NV!? 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 6, 2009 :tongue2: 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
dlongkts 0 Báo cáo bài đăng Đã đăng Tháng 11 6, 2009 Bài viết số 358 và 362 lấy ở đâu ạ? link này mình mới saveas sang cad2000: http://www.cadviet.com/upfiles/2/duongdoccopy_1.dwg Mong các bạn có thể giúp đỡ cho mì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