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

bach1212

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

    193
  • Đã tham gia

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

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


  1. Mình đang dùng lisp này tính diện tích ổn định trên cad 2007.

    Nhưng khi sử dụng trên cad 2018 thì mỗi lần dùng lệnh lại bị hiện lên bảng osnap và bảng hatch rất bất tiện và sau đó cũng không cho được kết quả cuối cùng của lisp

     

    Xin hỏi làm cách nào để dùng lisp được trở lại bình thường trên cad 2018 ah?
    edt_doi mau text.lsp


  2. Lang thang trên youtube tìm thấy video này: https://www.youtube.com/watch?v=Qq3kwvgu5FA
    Tuy nhiên tải lisp của tác giả về thì ko dùng được lệnh DDM cuối cùng.
    Xin nhờ các bác chỉnh sửa giúp để sao cho chạy được kết quả như trong video vẽ được đường đồng mức trong nút giao ah.
    File đính kèm: lisp tải được từ tác giả video.
    MitaCtour Ver1.rar

    MitaCtour Update.rar


  3. Dải phân cách giữa thì khai báo bằng nova được.

    Còn 2 dải phân cách 2 bên thì bạn vẽ đường pline rồi định nghĩa thiết kế trắc ngang nó là đường mặt trái và mặt phải. Rồi dùng CTK copy thiết kế đó sang các trắc ngang khác.

    Tạo khuôn thì bằng chỉ điểm rồi copy khuôn.

     

    Tính diện tích thì bạn cần tự lập công thức và kiểm tra lại trên 1 mặt cắt ngang để đối chiếu cách tính của nova và thực tế để cân đối lại sao cho đúng.


  4. Việc vẽ  tấm đan BTCT tưởng chừng đơn giản nhưng cũng mất khá nhiều thời gian với nhiều loại có kích thước khác nhau và cả việc thống kê thép của nó.

     

    Xin nhờ các bạn giúp mình tạo 1 lisp vẽ được tấm đan 1 cách  nhanh nhất 

     

    Có thể có các dòng nhắc là

    1. Chiều dài

    2. Chiều rộng

    3. Chiều dày

    4. Thép chịu lực: số thanh, số lớp thép

    5. Thép cấu tạo: số thanh, số lớp thép

    6. Thép móc cẩu: số thanh

    • Vote giảm 1

  5. "Bạn cũng đã thử cài chung 1 bộ font duy nhất cho cả win lẫn cad chưa. Nếu đã thử rồi, 2 lúa chúc mừng bạn, đây ... chính là lỗi" 

    Mình đầu óc cũng nông dân nên hơi chậm hiểu. Có phải ý bạn là lỗi do mình cài chung 1 bộ font cho cả win và cad ko ah?

    Nếu mình đã lỡ cài bộ font cad cho win rồi thì làm thế nào để khôi phục lại bộ font gốc của win?

     Xin được sư huynh chỉ giáo.  :D


  6.  http://www.cadviet.com/upfiles/5/40304_hong_3.dwg

     

    Cad của mình đã có font .Vnarial Narrow. Tuy nhiên, mỗi khi tắt đi bật lại thì nó lại bị lỗi. Mặc dù trong Style của font đó vẫn là .Vnarial Narrow.

    Mỗi lần như vậy , mình lại phải chỉnh lại trong Style: Chọn sang 1 font khác-àOK. Sau đó lại bật Style lên chuyển về font .Vnarial Narrow thì mới được.
    Mình phải khắc phục như nào? Mặc dù đã cài đủ font trong cad và window.

     

    40304_loi_font_standard.jpg


  7. Bài viết này từ 2012 rồi nhưng ko thấy chủ thớt theo nhỉ.

    Trong bài này chủ thớt có yêu cầu thứ 2 là link tổng chiều dài pline, line, arc đến text.

    "các bác cho em hỏi có thể link tổng chiều dài các đối tượng đã chọn đến text được không, khi 1 đối tượng thay đổi thì tất nhiên tổng chiều dài thay đổi và text cũng tự thay đổi theo."????

    Mong các bác giúp chỉnh sửa theo yêu cầu này ah!


  8. Gà gô như mình lại phải nhờ các bạn chút. 

    Tương tự như trên, mình cũng thêm đoạn code như của bạn thanhduan2407 vào để đổi màu text kết quả của lisp tính chiều dài này. Nhưng ko đạt như ý.

    Lisp gốc: 

    ;; free lisp from cadviet.com
    ;;;--------------------------------------------------------------------
    (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
    ;;;--------------------------------------------------------------------
    ;; free lisp from cadviet.com
    ;;;--------------------------------------------------------------------
    (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
    ;;;--------------------------------------------------------------------
    (defun C:tgl( / ss L e)
    (setq
    ss (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
    L 0.0
    )
    (vl-load-com)
    (while (setq e (ssname ss 0))
    (setq L (+ L (length1 e)))
    (ssdel e ss)
    (princ (strcat "\nTong chieu dai la : " (rtos L)))
    )
    (setq te (entget(car(entsel"\n Chon Text de gan ket qua :")))
    te (subst (cons 1 (rtos L 2 2)) (assoc 1 te) te))
    (entmod te)
    )
    

    Lisp mình tự sửa:

    ;; free lisp from cadviet.com
    ;;;--------------------------------------------------------------------
    (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
    ;;;--------------------------------------------------------------------
    ;; free lisp from cadviet.com
    ;;;--------------------------------------------------------------------
    (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
    ;;;--------------------------------------------------------------------
    (defun C:ttgl( / ss L e ObjText te)
    (setq
    ss (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
    L 0.0
    )
    (vl-load-com)
    (while (setq e (ssname ss 0))
    (setq L (+ L (length1 e)))
    (ssdel e ss)
    (princ (strcat "\nTong chieu dai la : " (rtos L)))
    )
    (setq ObjText  (car (entsel"\n Chon Text de gan ket qua :")))
    (setq te (entget ObjText))
    setq te (subst (cons 1 (rtos L 2 2)) (assoc 1 te) te))
    (entmod te)
    (vla-put-color
          (vlax-ename->vla-object ObjText)
          6
    )
    

    Nhờ các bạn chỉ giáo!

    • Vote giảm 1

  9.  

    Của bạn đây.

    ;; free lisp from cadviet.com
    ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/141684-nha-cha-nh-sa-a-a-i-ma-u-text-ka-t-qua-ca-a-lisp-ta-nh-dia-n-ta-ch/
    (defun c:edt( / DTCON DTL ELST ET OSLAST PT1 SS VSIZE ObjText)
    (setvar "DIMZIN" 0)
      (if (= tl nil) (progn
        (setq tl (getreal "\nDrawing scale<1> : "))
        (setq ntl tl)
        (setq tl2 (* ntl ntl))
        )
      )
      (setq dtl 0)
      (setq ss (ssadd))
      (setq oslast (getvar "OSMODE"))
      (command "osnap" "")
      (print)
      (print)
      (setq pt1 (getpoint "\nChon mot diem trong vung dien tich can tinh: "))
      (while (/= pt1 nil)
        (command "-boundary" pt1 "")
        (setq et (entlast))
        (ssadd et ss)
        (command "area" "e" "last")
        (setq vsize ( /(getvar "VIEWSIZE") 3 ))
        (command "hatch" "ANSI31" vsize "0" "last" "")
        (setq et (entlast))
        (ssadd et ss)
        (setq dtcon (getvar "AREA"))
        (setq dtl (+ dtcon dtl))
        (print)
        (print)
        (setq pt1 (getpoint "\nChon mot diem trong vung dien tich tiep theo : "))
      )
      (command "setvar" "OSMODE" oslast)
      (command "erase" ss "")
      (setq ss nil)
      (command "redraw" )
      (setq dtl (* dtl tl2))
      (print dtl)
      (setq ObjText  (car (entsel "Thay cho so: ")))
      (setq elst (entget ObjText))
      (setq elst (subst (cons 1 (rtos dtl 2 2)) (assoc 1 elst) elst))
      (entmod elst)
      (vla-put-color
          (vlax-ename->vla-object ObjText)
          6
        )
    
      
      ;(print)
      (prompt (strcat "\nTong dien tich: " (rtos dtl 2 4)))
      (print)
    ;  (setq pt2 (getpoint "\nPoint to write: "))
    ;  (command "text" pt2 (/ vsize 6) "0" (rtos dtl 2 2))
    );defun
    ;(setq caodo (atof (assoc 1 ((entget (car (entsel "Thay cho so: ")))))))
    ;----------------------------------------------------------------------------
    (Defun c:vld( / PT PT1 PT2 S)
      (Setq pt1(getpoint"\nChon diem bat dau ve:"))
      ;(Setq s(getreal"\nCho chieu dai doan ve:"))
      ;(Setq pt(getreal"\nCho do doc cua duong thang<%>:"))
      (While
        (Setq s(getreal"\nCho chieu dai doan ve:"))
      (Setq pt(getreal"\nCho do doc cua duong thang<%>:"))
        (setq pt2(list ))))
    	
    
    

    Được rùi bạn ah. thanks all!  :)


  10. Mình chỉ sửa cái chọn Text để sửa kết quả để nó thành màu 6. Mình ko sửa gì khác. Yêu cầu của bạn lại đi xa nội dung rồi.

    Mình ko có yêu cầu gì khác. Chỉ muốn đổi màu của text kết quả. Nhưng mừ lisp bạn sửa cho mình vẫn chưa làm được điều đó mà. Chữ chưa chuyển được màu bạn ah. 

    Bạn thêm dòng này phải ko nhỉ? 

    (setq elst (subst (cons 62 6) (assoc 62 elst) elst))
      (entmod elst)
    
    • Vote giảm 1

  11.  

    Sửa cho bạn đây!

    ;; free lisp from cadviet.com
    ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/141684-nha-cha-nh-sa-a-a-i-ma-u-text-ka-t-qua-ca-a-lisp-ta-nh-dia-n-ta-ch/
    (defun c:edt( / DTCON DTL ELST ET NTL OSLAST PT1 SS TL TL2 VSIZE)
    (setvar "DIMZIN" 0)
      (if (= tl nil) (progn
        (setq tl (getreal "\nDrawing scale<1/> : "))
        (setq ntl tl)
        (setq tl2 (* ntl ntl))
        )
      )
      (setq dtl 0)
      (setq ss (ssadd))
      (setq oslast (getvar "OSMODE"))
      (command "osnap" "")
      (print)
      (print)
      (setq pt1 (getpoint "\nChon mot diem trong vung dien tich can tinh: "))
      (while (/= pt1 nil)
        (command "-boundary" pt1 "")
        (setq et (entlast))
        (ssadd et ss)
        (command "area" "e" "last")
        (setq vsize ( /(getvar "VIEWSIZE") 3 ))
        (command "hatch" "ANSI31" vsize "0" "last" "")
        (setq et (entlast))
        (ssadd et ss)
        (setq dtcon (getvar "AREA"))
        (setq dtl (+ dtcon dtl))
        (print)
        (print)
        (setq pt1 (getpoint "\nChon mot diem trong vung dien tich tiep theo : "))
      )
      (command "setvar" "OSMODE" oslast)
      (command "erase" ss "")
      (setq ss nil)
      (command "redraw" )
      (setq dtl (* dtl tl2))
      (print dtl)
      (setq elst (entget (car (entsel "Thay cho so: "))))
      (setq elst (subst (cons 1 (rtos dtl 2 2)) (assoc 1 elst) elst))
      (entmod elst)
      (setq elst (subst (cons 62 6) (assoc 62 elst) elst))
      (entmod elst)
      ;(print)
      (prompt (strcat "\nTong dien tich: " (rtos dtl 2 4)))
      (print)
    ;  (setq pt2 (getpoint "\nPoint to write: "))
    ;  (command "text" pt2 (/ vsize 6) "0" (rtos dtl 2 2))
    );defun
    ;(setq caodo (atof (assoc 1 ((entget (car (entsel "Thay cho so: ")))))))
    ;----------------------------------------------------------------------------
    (Defun c:vld( / PT PT1 PT2 S)
      (Setq pt1(getpoint"\nChon diem bat dau ve:"))
      ;(Setq s(getreal"\nCho chieu dai doan ve:"))
      ;(Setq pt(getreal"\nCho do doc cua duong thang<%>:"))
      (While
        (Setq s(getreal"\nCho chieu dai doan ve:"))
      (Setq pt(getreal"\nCho do doc cua duong thang<%>:"))
        (setq pt2(list ))))
    	
    
    

    Cám ơn bạn nhé. Tuy nhiên text kết quả cũng vẫn chưa tự chuyển sang màu hồng bạn ah. Mà giờ mỗi lần gọi lại lệnh nó lại bắt lựa chọn tỷ lệ. Trước đó tỷ lệ chỉ cần lựa chọn 1 lần thôi bạn.

×