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

pirates0511

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

    19
  • Đã tham gia

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

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


  1. nhờ các bác sửa giúp lại cái lips ghi độ dài trên em với. em muốn nó:

    1. ghi với cả nét Polyline (lips trên chỉ ghi với Line),

    2. chữ dạng text cao 3,5 (không phải dim)

    3. là 1 layer mới (ví dụ layer "ghi kích thước" và có màu đỏ) để tiện ẩn đi.

    http://www.cadviet.com/upfiles/7/135455_qdd_1.lsp

     

    ;; free lisp from cadviet.com
    (defun c:qdd(/ s sp 3d i dxf rAng rSup e obj) (vl-load-com)
    ;Quick dim Lines @ketxu 10/2016
    (cond
    ((setq s (ssget '((0 . "LINE")))) 
    (setq sp (vlax-get (setq ac (vla-get-activedocument (vlax-get-acad-object)))
    (if (> (vla-get-activespace  ac) 0) 'ModelSpace 'PaperSpace)) 
    3d vlax-3d-point
    i -1
    dxf (lambda(i e)(cdr (assoc i (entget e))))
    rAng (lambda(a)(if (and (> a (/ pi 2.)) (<= a (* pi 1.5)))(+ a pi) a))
    rSup (lambda(p)(vlax-put-property obj p 1))
     
    )
    (while (setq e (ssname s (setq i (1+ i))))
    (setq obj 
    (vla-adddimaligned sp 
    (3d (setq p1 (dxf 10 e))) 
                        (3d (setq p2 (dxf 11 e)))     
    (3d (polar p1 (+ (angle p1 p2) (/ pi 2.)) 0))
                    )
    )
    (vla-put-Textrotation obj (rAng (angle p1 p2)))
    (vla-put-TextOverride obj "<>\\P   ")
    (mapcar 'rSup '(DimLine1Suppress DimLine2Suppress ExtLine1Suppress ExtLine2Suppress))
    )
    )
    ))
    • Vote giảm 1

  2. text để chọn ghi kết quả của em sẽ có dạng D32 HDPE - L100m hoặc D40 HDPE - L120m. Khi chọn đoạn có chiều dài 120,345m thì nó sẽ ghi thành "D32 HDPE - L122m (hoặc D40 HDPE - L122m). Nghĩa là nó chỉ thay đổi số 100 thành 122 thôi. Còn các chữ hoặc số còn lại (D32(hoặc D40) HDPE - L m giữ nguyên).

    Hihi


  3. http://www.cadviet.com/upfiles/7/135455_new_text_document_1.txt

    Em có cái lips ghi độ dài của đoạn thẳng ở trên. Khi click vào 1 đoạn thẳng và 1 text có sẵn nó sẽ ghi ra ví dụ là "D00 HDPE - L40,354M". Trong đó D là đường kính, HDPE là vật liệu, L40.354m là chiều dài đoạn thẳng.

    Giờ em muốn các bác sửa lại cho em như sau:

    Khi click vào text để nó ghi ra sẽ là text nào đó có sẵn như D32 HDPE - L50M, hoặc D40 HDPE - L60M. Giờ em muốn nó chỉ thay đổi giá trị L60M thành giá trị của đoạn thẳng cần ghi. D32 HDPE hoặc D40 HDPE giữ nguyên. Bình thường nó sẽ có giá trị sau dấu phẩy, em muốn nó làm tròn và cộng thêm 2M nữa. Ví dụ 40,435m sẽ thành 42m, 40,624m sẽ thành 43m

    • Vote tăng 1
    • Vote giảm 1

  4. Đây là Code mình lấy của 1 bạn trên diễn đàn về lisp cộng tổng text 

    ;;;-----------------------------------------
    (defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
    ;;;-----------------------------------------
    (defun FilObj(ss1 MyType / ss2 i e)
    (setq ss2 (ssadd) i 0)
    (repeat (sslength ss1)
    (setq e (ssname ss1 i) i (1+ i))
    (if (CheckObj e MyType) (ssadd e ss2) )
    )
    (eval ss2)
    )
    ;;;-----------------------------------------
    (defun SelData( / OK)
    (setq OK nil)
    (while (not OK)
    (prompt "\tChon cac text can tinh:")
    (setq ss (FilObj (ssget) "TEXT"))
    (if (> (sslength ss) 0) (setq OK T) (princ "\nDoi tuong chon khong phai text"))
    )
    )
    ;;;-----------------------------------------
    (defun WriteRes(kq / OK e data)
    (setq OK nil)
    (while (not OK)
    (setq e (car (entsel "\tChon text ghi ket qua:")))
    (if (CheckObj e "TEXT") (setq OK T) (princ "\nDoi tuong chon khong phai text"))
    )
    (entmod (subst (cons 1 (rtos kq)) (assoc 1 (setq data (entget e))) data))
    (princ)
    )
    ;;;-----------------------------------------
    (defun C:MUL( / i m e ss)
    (SelData) (setq i 0 m 1.0)
    (repeat (sslength ss) (setq e (ssname ss i) i (1+ i) m (* m (atof (cdr (assoc 1 (entget e)))))))
    (WriteRes m)
    )
    ;;;-----------------------------------------
    (defun C:SUM( / i s e ss)
    (SelData) (setq i 0 s 0.0)
    (repeat (sslength ss) (setq e (ssname ss i) i (1+ i) s (+ s (atof (cdr (assoc 1 (entget e)))))))
    (WriteRes s)
    )
    ;;;-----------------------------------------

    Mình chuyên thiết kế về cấp nước, khi ghi chú trên đường ống thường ghi là :"D160PVC - L50m". chữ "D160 PVC" có thể thay đổi theo từng loại đường ống, nhưng cụm chữ "L50m thì không thay đổi, chỉ thay đổi chiều dài (50 hoặc 60). Nếu theo lisp trên nó sẽ không cộng được với dãy chữ và số của em. Giờ em muốn các bác sửa lại cho em là: nó chỉ cộng cái "L50m'' thôi, còn trước đó có cái gì thì nó không đụng đến, nghĩa là D160PVC - L50m + D90 HDPE - L60M = 110m ( 50+60=110)

     Em xin cám ơn các bác trước

    • Vote giảm 1

  5. có bác nào học giỏi thủy lực tính giúp em vận tốc dòng chảy trong ống có áp với.

    đường ống gang D400, áp lực nhà máy là 2 kg/cm2 ( nhà máy cách điểm xả khoảng 150m). em thau xả đường ống trên, nên cần biết vận tốc của điểm xả cuối nguồn để tính ra khối lượng nước cần thau xả trong thời gian nhất định. Tìm mãi mà ko có công thức nào tính, Bernoully thì lằng nhằng quá ko hiểu được.

     

×