Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
pirates0511

Nhờ Các Bác Sửa Lại Cái Lips Ghi Độ Dài Cho Em Với

Các bài được khuyến nghị

pirates0511    4

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

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.123

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

Hề hề hề,

Chưa hiểu rõ yêu cầu của bạn lắm. Có phải tất cả các text mà bạn muốn thay thế đều có chữ L hay không??? Trong trường hợp bạn chọn điểm để ghi text chứ không phải thay thế text mới thì sao??? 

Mình sửa thử như vầy không biết có trúng ý bạn không????

 

(defun C:TL( / ss L e #h)
 
(vl-load-com)
 
(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
 
(or ans (setq ans 1))
 
(setq
 
    #h 3
 
    L (strcat ;;;"D00 HDPE - L";;;
 
    ;;; (vl-princ-to-string 
 
   (rtos (+ (* (getvar "dimlfac") (apply '+
 
     (mapcar 'Length1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))))))
 
    )) 2) 2 0)" m"
 
    )
 
    ans (cond ((getint (strcat "\nPhuong an nhap ket qua < " (itoa ans) " > :")))(ans))
 
    txtObj (cond     ((= ans 1) (vlax-ename->vla-object (car (entsel "\nChon text ghi ket qua :"))))
 
     (T (vla-addtext (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) L (vlax-3d-point (getpoint "\n Chon diem nhap ket qua" )) #h ))
 
     )
 
)
 
(setq nd (vlax-get-property txtobj 'TextString)
 
       k (vl-string-position (ascii "L") nd)
 
       txt1 (cond 
                 ( k (substr nd 1 (1+ k )))
                 (T "")     )
) 
 
(setq L (strcat txt1 L))
 
(vla-put-TextString txtObj L)
 
(vla-put-Height txtObj #h)
 
(princ)
 
)
 
  • Vote tăng 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
pirates0511    4

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

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.123

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

Hề hề hề, 

Đã test cái lisp mình gửi chưa??? Theo mình nếu chỉ có như trên thì cái lisp mình sửa là OK rồi.

  • Vote tăng 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
pirates0511    4

Lips bạn gửi sẽ thaY  đổi "D32 HDPE - L100M" thành "L120M". Mình muốn  nó thành "D32 HDPE - L120M". Chỉ thay đổi số trong "L(..)M thôi. Các thành phần còn lại giữ nguyê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
phamthanhbinh    3.123

Lips bạn gửi sẽ thaY  đổi "D32 HDPE - L100M" thành "L120M". Mình muốn  nó thành "D32 HDPE - L120M". Chỉ thay đổi số trong "L(..)M thôi. Các thành phần còn lại giữ nguyên

Hề hề hề,

bạn đã dùng chưa?? Nếu đã dùng thì hãy gửi bản vẽ bạn test đó lên để mình kiểm tra lại.

  • Vote tăng 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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×