Chuyển đến nội dung
Diễn đàn CADViet

47c1

Thành viên
  • Số lượng nội dung

    52
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi 47c1


  1. Lisp đầy đủ nên có option chọn bắt đầu từ trên xuống hay từ dưới lên.

    Sửa lisp nầy không khó nhưng để tác giả làm thì tốt hơn.

    Ngoài ra còn cần phải xét đến biến PEDITACCEPT để tránh lỗi cho lệnh PEDIT

    Trong thời gian chờ, bạn sửa các chỗ sau để dùng tạm

    đổi dấu > thành < và ngược lại ở các dòng

    (if (> (cadr sp) (cadr ep))

    (if (< ang (/ pi 2))

    đổi 2 dòng

    (if (= ans "D") thành

    (if (= ans "T")

    Có lẽ lisp này vẫn chưa thỏa mãn khi mà đường PL gấp khúc thì nó ko hiểu được như hình của m gửi. khi đó mình phải đánh cấp từng đường 1 không gộp chung lại được. dù sao m cũng rất cám ơn vì đã hướng dẫn m sửa lisp của a Tue_NV


  2. Dạ e chào anh ạ. e chỉ cần sửa bản cuối cùng 

    Cai lisp cua bac chỉ đánh cấp được từ khi polyline từ phải qua trái thôi, em vừa thử

    Sửa lại cho bạn đây. Bạn thử lại nhé :
    http://www.cadviet.c...iles/3/dcap.lsp 

    Lisp của anh là đưa Bề rộng B từ đỉnh dưới đường PL lên đỉnh trên của đường PL 

    Còn đánh cấp để thiết kế đường của bọn e là Bề rộng B đều từ đỉnh trên của đường PL xuống đỉnh dưới a ạ.

     

     

    "Bạn vui lòng upload file dwg lên nhé!" - Tue_NV


  3. Em cũng hay tham khảo đọc các bài của mọi người trên diễn đàn. Phần Thống kê thép và vẽ thép được rất nhiều người quan tâm. và em cũng vậy. Thực ra sẽ là rất may mắn cho bọn em được sử dụng các phần mềm hay các lisp của các anh để tiết kiệm thời gian vẽ, trình bày bản vẽ, và chính xác bản vẽ.

    Em cũng mong các anh có thể đưa lên nhiều Clip thực hiện (từ những cái đơn giản đến những phần khó hơn) để những người tự mày mò không có nhiều người chỉ như e được hiểu rõ và làm việc được thuận lợi.

    Em cũng nhận thấy diễn đàn có nhiều bạn sinh viên tham gia. Nếu đưa video hướng dẫn lên youtube thì bọn em sẽ dễ hình dung hơn.

    Xin gửi lời cảm ơn tới tất cả các anh tâm huyết cho diễn đàn Cadviet của chúng ta.


  4. Bạn có thể nhấn Vote ^^ Thực ra cái này mình nghĩ sẽ lỗi khi gặp đường bao PL hở + cách chọn "CP", tuy nhiên với Line thì có thể ít lỗi hơn ^^ Trong trường hợp lỗi mà thấy rõ mồn một thì hãy quay lại etrim + erase truyền thống :) Mình cũng có thể cho extrim với cả Dim, nhưng với file Bình đồ có lẽ k cần thiết ?? ^^

    Còn 1 lỗi nữa. Đó là đường bao kín thì khi chọn xóa bên trong ko được.Chỉ xóa những cái ở bên ngoài đường bao thui.


  5. Bạn có thể nhấn Vote ^^ Thực ra cái này mình nghĩ sẽ lỗi khi gặp đường bao PL hở + cách chọn "CP", tuy nhiên với Line thì có thể ít lỗi hơn ^^ Trong trường hợp lỗi mà thấy rõ mồn một thì hãy quay lại etrim + erase truyền thống :) Mình cũng có thể cho extrim với cả Dim, nhưng với file Bình đồ có lẽ k cần thiết ?? ^^

    Thế là mình ưng ý rồi. K cần phải lo về đường bao hở. Vì tự mình sẽ vẽ đường kín để cắt. :lol:


  6. Bạn nên chú ý cách giải thích vấn đề của mình, tránh làm cả bạn và mọi người mất quá nhiều thời gian

    Ý xanh : được

    Ý đỏ : được

    Bạn có thể theo dõi ở đây, chính là topic mà bạn nói chỉ có "trong" chứ chưa có ngoài, nhưng thực ra đã có, các lisp bác giabach và bác thiep viết rất hay :

    http://www.cadviet.com/forum/index.php?showtopic=27121&st=40

     

    Còn đây là mình độ giùm theo 2 yêu cầu của bạn. Yêu cầu xanh : mình cụ thể là bên trái hoặc bên phải Line,Pline, chưa có thời gian làm tổng quát :)

    Link EE

    ;free lisp from Cadviet.com @gia_bach -> ketxu ^^
    (defun C:EE ( / en ss lst ssall bbox tmpvt lit) 
    (vl-load-com)
    (if (null etrim)(load "extrim.lsp"))
    (setq tmpvt '(1e+10 0 0))
     (if (and (setq en (car(entsel "\n Chon duong bao : ")))
              (wcmatch (cdr(assoc 0 (entget en))) "LINE,*POLYLINE"))		   
       (progn
         (setq bbox (ACET-ENT-GEOMEXTENTS en))
         (setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
         (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3)
    		lit (nth (1- (length lst)) lst))
         (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
         (command "_.Zoom" "0.95x") 
      (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
      (if (vlax-curve-isClosed en)	  
    	(progn
    		(etrim en (getpoint "\n Phia cat va xoa bo : "))
    		(setq ss (ssget "_CP" lst))			
    	)
    	(progn	
    		(initget 1 "t p T P")
    		(if (= (strcase(getkword "\n Phia cat va xoa bo : [T/P]")) "T")
    			(progn
    				(etrim en (mapcar '- (nth 0 lst) '(1e+10 0 0)))
    				(setq ss (ssget "_CP"  
    					(append  (list (nth 0 lst) (mapcar '+ (nth 0 lst) tmpvt) (mapcar '+ lit tmpvt) lit))))
    			)
    			(progn
    			(etrim en (mapcar '+ (nth 0 lst) '(1e+10 0 0)))
    			(setq ss (ssget "_CP"  
    				(append  (list (nth 0 lst) (mapcar '- (nth 0 lst) tmpvt) (mapcar '- lit tmpvt) lit))))
    			)
    		)
    	)
      )
      (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
    			(foreach e1 lst (ssdel e1 ssall))
    			(ACET-SS-ENTDEL ssall)
      )
     )
    )
    

     

    Chú ý : chưa kiểm định, mần trên lý thuyết ^^

    Hoàn toàn làm mình ưng ý với lisp này.Hix quả thật là giải thích đôi khi hơi khó hiểu.Nhưng mà thực ra người nào gặp tình trạng như mình thì biết ngay mình nói gì mà.

    Cái link bạn đưa mình chưa đọc trước đó mà đọc link khác. Thank bạn ketxu


  7. Mình thì đoán bạn đó đang trim ở Acad2004 trở về trước,hoặc là bạn nhầm lẫn giữa trim và break, không biết có phải thế không nhỉ? >:)

    Đương nhiên là ko phải.

    Thui câu hỏi này mình hỏi cho cá nhân vì đôi khi cũng hơi phiền hà.nhưng mà thực ra Trim xong rồi erase cũng ko sao.

    Mình tìm trên diễn đàn hình như có cách trim một hình kín.Ko biết liệu có thể làm như thế này được không: mình vẽ 1 hình chữ nhật(hoặc hình tròn, elip) sau đó muốn lựa chọn để xóa các phần nằm ngoài hoặc xóa các phần nằm trong hình chữ nhật(hoặc hình tròn, elip)đó được ko?


  8. Em bó chân, ko thể hiểu ý của tác giả 47c1 qua diễn đạt chữ nghĩa mà ko có hình anh minh họa!????

    (trên diễn đàn từng có nhiều bài viết, mà mọi người không hiểu ý tác giả, lại phải yêu cầu tác giả gửi bản vẽ lên, gây lãng phí thời gian)

    Đùa chứ tưởng là dễ hiểu nên chả cần phải giải thích nhiều. Ví dụ bạn có 1 cái bình đồ rất rộng. Vẽ 1 đường line làm giới hạn thành 2 nửa bình đồ.

    Bạn ko thể xóa toàn bộ cả 1 nửa bình đồ. đầu tiên bạn phải trim các đường cắt qua đường line giới hạn sau đó mới erase các đường bị tách rời.

    Mình muốn gộp lại xóa tất luôn.


  9. Thú thật: tôi không hiểu ý bạn. Có 1 hình gồm nhiều đối tượng, sau đó trim thì đương nhiên 1 nửa sẽ bị xóa, còn lại 1 nửa. Nhưng trim rồi erase nghĩa là erase cái gì?

    Trim thì chỉ những đường thuộc 1 hình thôi.còn nếu các nét vẽ mà ko thuộc hình đó thì mình lại phải erase.

    • Vote giảm 1

  10. (1).Trim và Erase từng cặp đối tượng?

    hay

    (2).Trim và Erase cùng lúc 2 tập hợp chọn?

    (1) thì dễ nhưng (2) thì còn phụ thuộc thứ tự chọn đối tượng nữa. Bạn muốn sao?

    Đại ý là như thế này: Mình có 1 hình vẽ. Vẽ 1 đường line và muốn xóa một nửa và giữ lại một nửa.Thường là trim rồi sau đó erase.Mình muốn gộp chúng lại.


  11. Câu hỏi em đã từng hỏi trên diễn đàn nhưng theo cách làm được hướng dẫn vẫn còn hơi phức tạp và mất thời gian.

    Em có 1 block (đã được add vào nhiều bản vẽ) với 2 chi tiết A và B. bây giờ em muốn cho chi tiết A ra khỏi Block nhưng vẫn muốn tất cả các bản vẽ vẫn còn chi tiết A chỉ là chi tiết này ko nằm trong Block thôi.

    Cad có cách nào khắc phục ko?hay cad 2011 có làm được điều này ko?hoặc có lisp nào như vậy ko?

×