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

romeo1982

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

    147
  • Đã tham gia

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

  • Ngày trúng

    1

Bài đăng được đăng bởi romeo1982


  1. Còn vấn đề này "các hình chữ nhật có thể bị nổ ra thành line và có thể bị hở nhỏ nữa" thì pótay !

    Bạn thử LISP này :

    (defun c:addLay (/ ent i j layname objci objpl pt_lst ss ssc)
     ;| By : Gia Bach, gia_bach @  www.CadViet.com             |;  
     (vl-load-com)
    
    (defun GetPtLst (obj / anginc arcparam blg delta eparam inc pt ptlst sparam)
     (setq sparam (vlax-curve-getStartParam obj)
    eparam (vlax-curve-getEndParam obj)
    anginc (* pi (/ 6 180.0)))
     (while (<= sparam eparam)
       (setq pt (vlax-curve-getPointAtParam obj sparam))
       (if (not (equal pt (car ptlst) 1e-12))
         (setq ptlst (cons pt ptlst)))
       (if (and (/= sparam eparam)
          (setq blg (abs (vlax-invoke obj 'GetBulge sparam)))
          (/= 0 blg))
         (progn
    (setq delta (* 4 (atan blg)) ;included angle
          inc (/ 1.0 (1+ (fix (/ delta anginc))))
          arcparam (+ sparam inc))
    (while (< arcparam (1+ sparam))
      (setq pt (vlax-curve-getPointAtParam obj arcparam)
    	ptlst (cons pt ptlst)
    	arcparam (+ inc arcparam))))      )
       (setq sparam (1+ sparam))    )
     ptlst)
    ;main 
     (princ "\nChon Pline : ")
     (if (setq ss (ssget  '((0 . "LWPOLYLINE"))))
       (progn
         (setq i -1)
         (while (setq ent (ssname ss (setq i (1+ i))))
    (setq objPL (vlax-ename->vla-object ent)
          pt_lst (GetPtLst objPL)
          ssC (ssget "_WP" pt_lst (list (cons 0 "CIRCLE"))) )
    (if ssC
      (progn
        (setq num (sslength ssC))
        (if (> num 255) (setq num (rem num 255)))
        (setq layname (strcat "Layer_" (itoa num) "_Circle") j -1)
        (or (tblsearch "Layer" layname) (vl-cmdf "-layer" "N" layname "c" num layname ""))
        (vla-put-Layer objPL layname)
        (while (setq ent (ssname ssC (setq j (1+ j))))
          (setq objCi (vlax-ename->vla-object ent) )
          (vla-put-Layer objCi layname) ) ) ))))
     (princ))

    Đã được rùi rất cám ơn


  2. Còn vấn đề này "các hình chữ nhật có thể bị nổ ra thành line và có thể bị hở nhỏ nữa" thì pótay !

    Bạn thử LISP này :

    (defun c:addLay (/ ent i j layname objci objpl pt_lst ss ssc)
     ;| By : Gia Bach, gia_bach @  www.CadViet.com             |;  
     (vl-load-com)
    
    (defun GetPtLst (obj / anginc arcparam blg delta eparam inc pt ptlst sparam)
     (setq sparam (vlax-curve-getStartParam obj)
    eparam (vlax-curve-getEndParam obj)
    anginc (* pi (/ 6 180.0)))
     (while (<= sparam eparam)
       (setq pt (vlax-curve-getPointAtParam obj sparam))
       (if (not (equal pt (car ptlst) 1e-12))
         (setq ptlst (cons pt ptlst)))
       (if (and (/= sparam eparam)
          (setq blg (abs (vlax-invoke obj 'GetBulge sparam)))
          (/= 0 blg))
         (progn
    (setq delta (* 4 (atan blg)) ;included angle
          inc (/ 1.0 (1+ (fix (/ delta anginc))))
          arcparam (+ sparam inc))
    (while (< arcparam (1+ sparam))
      (setq pt (vlax-curve-getPointAtParam obj arcparam)
    	ptlst (cons pt ptlst)
    	arcparam (+ inc arcparam))))      )
       (setq sparam (1+ sparam))    )
     ptlst)
    ;main 
     (princ "\nChon Pline : ")
     (if (setq ss (ssget  '((0 . "LWPOLYLINE"))))
       (progn
         (setq i -1)
         (while (setq ent (ssname ss (setq i (1+ i))))
    (setq objPL (vlax-ename->vla-object ent)
          pt_lst (GetPtLst objPL)
          ssC (ssget "_WP" pt_lst (list (cons 0 "CIRCLE"))) )
    (if ssC
      (progn
        (setq num (sslength ssC))
        (if (> num 255) (setq num (rem num 255)))
        (setq layname (strcat "Layer_" (itoa num) "_Circle") j -1)
        (or (tblsearch "Layer" layname) (vl-cmdf "-layer" "N" layname "c" num layname ""))
        (vla-put-Layer objPL layname)
        (while (setq ent (ssname ssC (setq j (1+ j))))
          (setq objCi (vlax-ename->vla-object ent) )
          (vla-put-Layer objCi layname) ) ) ))))
     (princ))

    Cám ơn bạn, nhưng sao mình thử trên file mình gởi lên cadviet nó lại ko có phản ứng gì hết vậy mong bạn giúp đỡ


  3. Mình nhờ các cao thủ 1 tí, vấn đề là mình vẽ bản vẽ qui hoạch, những cái qui hoạch lớn mình thống kê hiện trạng rất là mệt.

    mình có 1 file: http://www.cadviet.com/upfiles/2/goi_cadviet.rar

    trong đó có 5 polyline khép kín, trong mỗi polyline có từ 1 đến 5 hình tròn, mình muốn xin 1 cái lip khi ra lệnh nó sẽ tự dò trong mỗi polyline nếu có 1 hình tròn thì tạo ra 1 layer mới đặt tên là 1T chẳng hạn và đưa vòng tròn đó và polyline về layer 1T, tương tự cho polyline có 2 hình tròn thì 2T, polyline có 3 hình tròn thì 3T,...........

    Chú ý là file qui hoạch thường rất nặng và rất dễ bị treo, các hình chữ nhật có thể bị nổ ra thành line và có thể bị hở nhỏ nữa .Xin cám ơn


  4. Mình nhờ bạn 1 tí nữa, vấn đề là mình vẽ bản vẽ qui hoạch, những cái qui hoạch lớn mình thống kê hiện trạng rất là mệt.

    mình có 1 file:http://www.cadviet.com/upfiles/2/goi_cadviet.rar

    trong đó có 5 polyline khép kín, trong mỗi polyline có từ 1 đến 5 hình tròn, mình muốn xin 1 cái lip khi ra lệnh nó sẽ tự dò trong mỗi polyline nếu có 1 hình tròn thì tạo ra 1 layer mới đặt tên là 1T chẳng hạn và đưa vòng tròn đó và polyline về layer 1T, tương tự cho polyline có 2 hình tròn thì 2T, polyline có 3 hình tròn thì 3T,...........

    Chú ý là file qui hoạch thường rất nặng và rất dễ bị treo.Xin cám ơn

    Mong các cao thủ giúp đỡ sớm, cám ơn


  5. oh, lip rất hay, làm công việc của mình nhẹ đi phần nào, thật cám ơn.

    Mình nhờ bạn 1 tí nữa, vấn đề là mình vẽ bản vẽ qui hoạch, những cái qui hoạch lớn mình thống kê hiện trạng rất là mệt.

    mình có 1 file: http://www.mediafire.com/?nj1tmnvgneu.(xin lỗi cadviet ko hiểu vì sao mình ko upload được trên cadviet)

    trong đó có 5 polyline khép kín, trong mỗi polyline có từ 1 đến 5 hình tròn, mình muốn xin 1 cái lip khi ra lệnh nó sẽ tự dò trong mỗi polyline nếu có 1 hình tròn thì tạo ra 1 layer mới đặt tên là 1T chẳng hạn và đưa vòng tròn đó và polyline về layer 1T, tương tự cho polyline có 2 hình tròn thì 2T, polyline có 3 hình tròn thì 3T,...........

    Chú ý là file qui hoạch thường rất nặng và rất dễ bị treo.Xin cám ơn

    Mong các cao thủ giúp đỡ sớm ,cám ơn


  6. oh, lip rất hay, làm công việc của mình nhẹ đi phần nào, thật cám ơn.

    Mình nhờ bạn 1 tí nữa, vấn đề là mình vẽ bản vẽ qui hoạch, những cái qui hoạch lớn mình thống kê hiện trạng rất là mệt.

    mình có 1 file: http://www.mediafire.com/?nj1tmnvgneu.(xin lỗi cadviet ko hiểu vì sao mình ko upload được trên cadviet)

    trong đó có 5 polyline khép kín, trong mỗi polyline có từ 1 đến 5 hình tròn, mình muốn xin 1 cái lip khi ra lệnh nó sẽ tự dò trong mỗi polyline nếu có 1 hình tròn thì tạo ra 1 layer mới đặt tên là 1T chẳng hạn và đưa vòng tròn đó và polyline về layer 1T, tương tự cho polyline có 2 hình tròn thì 2T, polyline có 3 hình tròn thì 3T,...........

    Chú ý là file qui hoạch thường rất nặng và rất dễ bị treo.Xin cám ơn


  7. Cám ơn bạn để mình tét thử.

    Mình nhờ bạn 1 tí nữa, vấn đề là mình vẽ bản vẽ qui hoạch, những cái qui hoạch lớn mình thống kê hiện trạng rất là mệt.

    mình có 1 file: http://www.mediafire.com/?nj1tmnvgneu.(xin lỗi cadviet ko hiểu vì sao mình ko upload được trên cadviet)

    trong đó có 5 polyline khép kín, trong mỗi polyline có từ 1 đến 5 hình tròn, mình muốn xin 1 cái lip khi ra lệnh nó sẽ tự dò trong mỗi polyline nếu có 1 hình tròn thì tạo ra 1 layer mới đặt tên là 1T chẳng hạn và đưa vòng tròn đó và polyline về layer 1T, tương tự cho polyline có 2 hình tròn thì 2T, polyline có 3 hình tròn thì 3T,...........

    Chú ý là file qui hoạch thường rất nặng và rất dễ bị treo.Xin cám ơn


  8. @romeo1982

    1. Bạn không nên post 1 nội dung ở 3 topic khác nhau. Cái này là quy định của diễn đàn, bạn phải tuân thủ

    2. Hoàn toàn có thể viết được Lisp theo yêu cầu của bạn nhưng cuối cùng Không biết Lisp của bạn sử dụng để làm gì nữa vì khi hoàn thành có biết bao nhiêu là tên Layer trong khi người dùng muốn quản lý các đối tượng theo Layer cho thật tốt?

    Cám ơn bạn đã quan tâm đến mình, cái líp đó mình hiện rất là cần, mình dùng để chọn lọc thống kê trong các bản vẽ hiện trạng qui hoạch, rất mong tin của bạn


  9. Bác nào có file lip như vầy : khi ra lệnh thì trên bản vẽ có bao nhiêu tẽt khác nhau sẽ đưa về bao nhiêu layer khác nhau.

    Ví dụ: trên bản vẽ có các tẽt có tên là: 0,1,2,3,4,5,6.........,A,B,C,D,E..... MẶT CẮT 1-1, MẶT BẰNG MÁI,...... thì sẽ tạo ra các layer có trên là: 0,1,2,3,4,5,6.........,A,B,C,D,E..... MẶT CẮT 1-1, MẶT BẰNG MÁI,...... và ghép cho các tẽt có trùng tên đó. Xin cám ơn


  10. Bạn có thể post yêu cầu về autolisp ở topic này.

    Bác Hoành ơi cho em xin 1 cái lip : ví dụ trên bản vẽ của mình có 10 loại hatch khác nhau thì khi ra lệnh nó sẻ tạo ra 10 layẻ cùng tên hoặc khác tên với tên của hatch và gán cho mỗi loại hatch 1 layẻ đó được ko, cám ơn.


  11. Bạn có thể post yêu cầu về autolisp ở topic này.

    Bác Hoành ơi cho em xin 1 cái lip : ví dụ trên bản vẽ của mình có 10 loại hatch khác nhau thì khi ra lệnh nó sẻ tạo ra 10 layẻ cùng tên hoặc khác tên với tên của hatch và gán cho mỗi loại hatch 1 layẻ đó được ko, cám ơn.


  12. Nhất trí với ý kiến của bác Bình.

     

    Mong cán bộ lớp Solidworks chia sẻ thêm một số kinh nghiệm cho lớp Revit.

     

    Ra giêng chúng ta sẽ bắt đầu. Mọi người đăng ký ngay từ bây giờ. Mong những người có khả năng về tiếng Anh sẽ tham gia vào công tác dịch cùng để mọi người có thể học dễ dàng hơn.

    Cho mình đăng kí 1 chỗ trong lớp học với nhé, nick yahoo: tuvan_thietke_xaydung


  13. Bạn dùng đoạn code này nhé :

    (defun c:DLM () 
     (prompt "Doi cac doi tuong chon sang layer moi ")
    (princ "\n Change: Doi sang layer moi")
     (setq tue (ssget))
     (if (null tue)
    (progn 
    (princ "\nLoi : Khong co doi tuong nao duoc chon.")
    	 (exit)
    )
     )
    (command "layer" "m" "Newlayer" "c" "3" "" "" "")
     (command "_.change" tue "" "P" "la" "newlayer" "") 
    (princ)
    )

    Bạn xem giùm mình file này có vấn đề gì mà load vào cad xài ko được, thanks


  14. Mình mới học cách sử dụng AutoCad cho cong việc thiết kế bản đồ. Hiện tại kiến thức của mình về AutoCad là rất hạn chế. Các bạn giúp mình nha. Địa chỉ email của mình là amorous108@yahoo.com@

    Bạn chịu khó đọc hết các topic trên diễn đàn đi, đọc tới đâu vọc liền tới đó có gì ko hiểu thì lên đây mà hỏi chứ nói chung chung vậy ai biết đường đâu mà giúp, nếu là người mới bắt đầu thì xem cái này:

    http://www.cadviet.com/forum/index.php?showforum=97

×