Thứ Hai, 17 tháng 8, 2009

Khắc phục việc DIM nhảy lung tung

Có đôi khi bạn MOVE các đối tượng mà DIM bị nhảy lung tung thì cứ bình tỉnh:

Các đối tượng kích thước trên bản vẽ bị chi phối bởi biến DIMASSOC.
+DIMASSOC = 0 -> Tạo kích thước ở dạng bị Exploded (Cái này mà bị thì bể mặt)
+DIMASSOC = 1 -> Tạo kích thước nhưng không liên kết với đối tượng được chọn
+DIMASSOC = 2 -> Tạo kích thước liên kết với đối tượng được chọn
-Muốn MOVE các đối tượng mà DIM không bị nhảy lung tung :
+1. Vào Option và bỏ chọn hộp kiểm Make new dimention (tương đương với gỏ lệnh DIMASSOC và nhập giá trị = 2) => Cái này tác dụng với các DIM mới tạo.
+2. Gỏ lệnh DDA và chọn tất cả các đối tượng kích thước có trong bản vẽ rồi Enter => Cái này tác dụng với DIM có sẳn.

13 nhận xét:

  1. Rất hay, đã thử xong
    cám ơn anh

    Trả lờiXóa
  2. thanks very much

    Trả lờiXóa
  3. chào anh duy.em có một bản vẽ biên tập xong xuôi rồi khi kiểm tra lại thấy tọa độ bị nhảy lung tung.bản vẽ bi sai tọa độ.em không mu khi nào cả.đây là lần thứ 2 em gặp trương hợp này rồi.co phải do virut không anh??

    Trả lờiXóa
  4. Thứ nhất bạn kiểm tra lại hệ trục tọa độ UCS xem có bị quay đi không. (Gỏ UCS enter gỏ W enter để qay về bình thường). Nếu vẩn sai thì bạn xem có csale, move gì không chứ thường virut cad chỉ thay biến hệ thống gây khó khăn khi sử ụng thôi chứ ít move bản vẽ lắm.

    Trả lờiXóa
  5. anh Duy ơi giúp em thêm cái biến DIMASSOC = 2 vào cái lisp do kích thước này để khi code kích thước mà khi muve hoặc copy dim nó không bị nhảy lung tung với.
    cảm ơn anh nhiều
    CODE:
    ===================================
    ---GHI KICH THUOC DUONG POLINE:
    (defun c:KT(/ chon lenlist i ename tdx tdy)
    (princ "\Go lenh: KT, DE CODE KICH THUOC LINE HANG LOAT")
    (setq chon (ssget))
    (if (/= chon nil)
    (progn (setq lenlist (sslength chon))
    (COMMAND "-LAYER" "m" "DIM" "color" 7 "" "")(PRINC)
    (princ "SO CANH CAN CODE KICH THUOC LA: ")(princ lenlist)
    (princ "\n")
    (setq i 0)
    (while (< i lenlist)
    (setq ename (ssname chon i))
    (setq ename (entget ename))
    (setq tdx (cdr (assoc 10 ename)))
    (setq tdy (cdr (assoc 11 ename)))
    (command "dimaligned" tdx tdy tdy "")
    (setq i (+ 1 i))))) (command "-osnap" "End,Mid,Int,Perp")
    (prompt "\nDA CODE KICH THUOC XONG!")(Princ)
    )
    -----------------------------------
    -- GHI KICH THUOC DUONG LINE:
    (defun c:KTT (/ ssn Pt j LstPt Pt0 Pt1 Pt2 Pt3)
    (princ "\Go lenh: KTT, DE CODE KICH THUOC DUONG POLINE HANG LOAT")
    (setvar "osmode" 0)
    (setq ssn (car (entsel "\nCHON DOI TUONG LA POLINE: ")))
    (setq j 0 LstTmp nil) (repeat (fix (1+ (vlax-curve-getendparam Ssn)))
    (setq Pt (vlax-curve-getpointatparam Ssn j) LstTmp (append (list Pt) LstTmp))
    (COMMAND "-LAYER" "m" "DIM" "color" 7 "" "")(PRINC)
    (setq j (1+ j))
    );end repeat
    (setq j 0) (repeat (1- (length LstTmp))
    (setq Pt0 (nth j LstTmp) Pt1 (nth (1+ j) LstTmp))
    (setq Pt2 (list (/ (+ (car Pt0) (car Pt1)) 2) (/ (+ (cadr Pt0) (cadr Pt1)) 2)))
    (setq Pt3 (polar Pt2 (+ (/ pi 2) (angle Pt0 Pt1)) 0)) (vl-cmdf ".DIMALIGNED" Pt0 Pt1 Pt3)
    (setq j (1+ j))) (command "-osnap" "End,Mid,Int,Perp")
    (prompt "\nDA CODE KICH THUOC XONG!")(Princ))

    Trả lờiXóa
  6. dimassoc bằng 1 chứ bạn. Nếu bằng 2 thì nó bị liên kết rồi.

    Lip thì sửa như sau:
    1. Thêm đoạn này vào đầu lisp.
    (setq luulkdim (getvar "DIMASSOC"))
    (setvar "DIMASSOC" 1)

    2. Thêm đoạn này cuối lisp
    (setvar "DIMASSOC" luulkdim)

    Trả lờiXóa
  7. tình hình là em sửa như anh bày mà đôi khi vẫn bị nhảy dim khi copy, cùng 1 đối tượng đó copy và paste nhiều lần thì có đối tượng nhảy có đối tượng không nhảy anh ạ!
    em không gửi được file BVe ở đây để anh tes thử nhỉ?

    Trả lờiXóa
  8. Up đâu đó rồi copy link sang đây.

    Trả lờiXóa
  9. em tim cách up mà không up lên mang được, anh có địa chỉ mail không cho em xin để gửi vào đó được không a?

    Trả lờiXóa
  10. em up file được rồi:
    http://www.2shared.com/photo/0MyX_lU_/Dim_nhay.html
    anh kiểm tra giúp em nhe!

    Trả lờiXóa

Khi viết nhận xét mong bạn không đứng vai trò nặc danh! Bạn có thể chọn Name/Url trong đó Url là http://duy782006.blogspot.com/ như vậy hay hơn nặc danh bạn nhé.