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

quansla

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

    672
  • Đã tham gia

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

  • Ngày trúng

    18

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


  1. 1. Các lệnh cần dùng: Line, Array, Mirro.
    2. Cách dùng
    B1. Vẽ vòng tròn lớn R1=112/2
    B2. Vẽ vòng tròn nhỏ R2=24/2
    B3. Vẽ Line từ Tâm vòng tròn nhỏ đến vòng tròn lớn
    B4. Vẽ ẢRC (theo chế độ điểm đầu + điểm cuối + radius
    B5: Array ARC theo POLAR (tạo 12 đối tượng)
    B6: Mirro toàn bộ ARC
    B7: xóa đường phụ + thêm tròn cuối D=87





    101306_ccccd.png



    FILE CAD

     

    http://www.cadviet.com/upfiles/6/101306_cc.dwg


  2. Câu 1 ý 1 để đặt trỏ vào 1 key: is_default = true;

    Câu 1 ý 2 để trỏ vào edit_box: dùng hàm mode_tile

    Câu 2 chưa hiểu

    Cảm ơn bác, em đã thử,

    1. với is_deafault đã từng dùng, không thích lắm

    2. em đọc Help thì mode_tile dùng với cấu trúc (mode_tile key flag)

    flag nhận giá trị interger 0->4, giá trị 1,0 em thường dùng, giá trị 2->4 không dùng bao giờ đang tìm hiểu, có vẻ nó thoả mãn được nhu cầu của e.

    3. Nếu 2 làm được, 3 em làm được, cảm ơn bác


  3. [Hỏi về DCL dialog] em muốn hỏi một số vấn đề về dialog

    Xin hỏi các bác trong Dialog của Cad em muốn làm một số điều sau đây, thì dùng lệnh/ từ khoá gì để làm được điều đó.

    1. Mặc định khi Hộp thoại hiện lên sẽ đặt con trỏ chuột, (active key của Dialog) vào một key mà mình muốn, có áp dụng điều đó với key của edit_box { key .....} không?

    2. Thay vì mặc định khi hiện H.Thoại là 1 key nào đó, giờ muốn khi chọn trong danh sách PopUp List1 thì mặc định của active key sau đó thay đổi do người lập trình quyết đinh?

    Cảm ơn các bác


  4. vẫn bị vậy bác ạ, tìm nhiều cách rồi mà vẫn thế. mình làm việc trên nhiều máy, cũng chỉ cài đặt mặc định cad là ok, nhưng với máy này thì không làm cách nào sửa được

    Nếu chỉ dùng để in ấn, có thể là do file của bac copy của người khác, mà người này sử dụng in của họ là mono... luôn mà không đổi tên, bác có thể

    1. Tạo mono chủan (hoặc COPY của em ở trên) đổi tên nó thành ABC.ctb gì đó

    2. Cop lại vào Cad

    3. CHọn lại nét in là ABC.ctb và Apply cho Layout thế là xong

    4. Lưu lại


  5. Nếu muốn sửa bản vẽ này, bạn chỉ cần copy một DIM bị như vậy ra chỗ khác (thoáng tý), "X" (ẽxplore) đối tượng DIM đó ra/ chọn vào BLOCK mũi tên (đường chéo DIM) sau đó chuột phải / Block Editor/ trong cửa sổ EDDIT Block này thì chọn tất cả các đối tượng trong đó chuyển về layer 0 là xong

    chúc thành công

    • Vote tăng 1

  6. Nói chung là tôi vẫn không hiểu, nhất là khái niệm "phát triển để hoàn thiện". Sao bạn không liệt kê những ra những điều bạn muốn nhưng chưa làm được? Ví dụ:

    - a là...

    - b là...

    - c là...

    Đừng nhắc lại mấy cái # làm gì!

    # là thứ tự bài viết, đúng quy định diễn đàn mà bác

    Nếu ghi chi tiết thì như thế này:

    * Yêu cầu: Vẽ mũi tên (giống dạng Leader) bằng LWPolyline (không dùng Leader vì Leader không bẻ cong được một số vị trí))

    ví dụ như ảnh sau:

    QaoaTdo.png

     

    Trong đó mũi tên có các đặc điểm sau: đầu mũi tên: phân đoạn đầu của LWPolyline (dài 150, rộng - WIDTH: điểm đầu = 0, điểm cuối =50) các phân đoạn sau do tùy chọn của người dùng khi vẽ/ nhập Polyline bằng Lệnh PLINE của Cad, mũi tên có Layer "0"

    Các bước thực hiện lệnh: gõ LL2 (enter) Cad cho phép thực hiện lệnh PLINE với ĐẦY ĐÙ TÙY CHỌN CỦA LỆNH PLINE THEO MẶC ĐỊNH, sau đó LISP sẽ entmod (hoặc entmakex) đối tượng mới (vẫn là LWPOlyline) trong đó đã chèn thêm một điểm mới vào đầu của Polyline (tức tạo thêm 1 phân đoạn đầu ở đầu của LWPolyline đã vẽ), rồi gán cho phân đoạn đó chiều dày 50, chiều dài 150 tạo dáng mũi tên.; kết thúc lệnh

    Mô tả, em gửi kèm file bên dưới.

    * Hướng giải quyết bản thân:

    Ngôn ngữ: Dùng LISP

    Cú pháp : c:LL2, cho phép ngừoi dùng thực hiện lệnh PLINE (đã sửa đổi cho phù hợp với Code bên dưới- nhưng đồng thời, việc sửa này cũng mất các tùy chọn LWPOLYLINE của Cad- vì thế cần hoàn thiện là đây)

    Công việc LISP làm:

    1. Lưu đối tượng entlast.

    2. Vẽ đối tượng Polyline lưu lại (setq ent_luu (entget..)) của nó

    3. Lọc các mã dxf 10 40 41 42 91 của ent_luu (giả sử có 3 phân đoạn A-B;B-C;C-D (tức 4 điểm)

    4. Chèn thêm một phân đoạn A-A1 vào đầu ent_luu để có 4 phân đoạn A-A1; A1-B; B-C; C-D (tức 5 điểm) đồng thời gán dxf 10 40 41 42 91 cho phân đoạn này

    5. Xóa các đối tượng đã vẽ (kể từ lần (entlast) ở bước 1 đến nay. Sau đó Entmakex lại đối tượng mới theo (entget) có được ở bước 4

    6. Kết thúc lệnh

    Khó khăn gặp phải.

    - Tại cú pháp (CODE) của LISP tự tạo, nếu để mặc định (command ".PLINE") thì LISP không chạy, nếu sửa lại (dùng hàm con như ở bài viết #3 thì Lisp chạy nhưng mất tùy chọn của CAD)

    - Yêu cầu: khôi phục tùy chọn của CAD (khi dùng lệnh "PLINE" mà LISP vẫn hoạt động bình thường.

    https://mail.google.com/mail/u/1/?ui=2&ik=ab405e2b36&view=att&th=154b2ff07e595231&attid=0.1&disp=safe&realattid=f_io8687gc0&zw


  7. #1. Đưa ra vấn đề muốn nhờ giúp đỡ.

    #2. Một phương án em tìm được rồi phát triển nó ra 3 cách, tối ưu dần dần

    #3. Áp dụng #2 vào LISP , nhưng LISP chưa thực sự hoàn thiện, vẫn khó dùng, Đến đây thì em chỉ còn muốn nhờ các bác xem giúp đề: 1. Phát trriển nó để hoàn thiện hoặc 2 Dùng cách khác để kết quả tương đương

    Xin lỗi bác,em sẽ rút kinh nghiệm lận sau. hìi


  8. Bạn update liên tục nên cuối cùng không biết bạn muốn nhờ những gì? Những gì chưa làm được?

    Hì, xin lỗi bác Hà, vì mới đầu em tìm hiểu không ra, upload lên cadviet xong thi lại có ý tưởng giải quyết, nhưng cuối cùng chỉ dừng lại ở mưc dộ tạm dùng được thôi.

    #1. Đưa ra vấn đề: có viết 1 LISP, nhưng không chạy được, do lỗi khi thực hiện lệnh (Command "PLINE") + Yêu cầu 2: giữ lại lựa chọn mặc định của Cad khi thực hiện lệnh PLINE.

    #2. Tìm ra 3 cách giải quyết (thực ra là phát triển từ 1 ý tưởng ban đầu),

    cách 1: cho phép dongf PLINE hoạt động trả đến kết quả cuối cùng (entlast = LWPolyline đã vẽ) nhưng cách này mới chỉ chấp nhận việc USER nhập giữ liệu đầu vào cho PLINE là Pick điểm

    cách 2: giải quyết vấn đề của cách 1 bằng cách thêm vào mở rộng giữ liệu nhập vào của USER (dùng hàm INITGET) nhưng cách nay chưa tối ưu do nó cho phép USERS lựa chọn chữ cái ("A" "L" "C" ...) hoặc PICK nhưng lại không đưa ra gợi ý gì, rất khó cho người sử dụng

    cách 3: giải quyết vấn đề của cách 2 bằng cách dùng hàm (cdr(assco p0 lst_str)) trong đó lst_str là một LIST chứa string gợi ý đi kèm khi lựa chọn của PLINE (copy của Cad) cách này tương đối ổn nhưng do yêu cầu rẽ nhãnh của Cad theo mặc định là tương đối lằng nhằng, cần dùng nhiều biến hơn + đầu tư thời gian lớn quá ,nên chỉ dừng lại ở mức độ vài lựa chọn hay dùng của PLINE. Cách này chưa tối ưu vì còn thiếu sót rất nhiều mặc định của Cad, thiếu hiển thị "trước" như CAd làm dươcd,lỗi khi lựa chọn một số lựa chọn OPTION, ....

    #3. Tạm chấp nhận #2, đưa vào hàm con và hoàn thiện LISP vẽ LEader bằng PLINE


  9. Thành quả cuối cùng, tạm sửa như vầy, mong mọi người tối ưu giùm vì nó còn khá nhiều bất tiện

    (defun ve_PLine_q(/ lst_str p0 str)
    (setq lst_str
    (list
    (cons "A" "Specify endpoint of arc or\n[Angle/CEnter/Direction/Halfwidth/Line/Radius/Second pt/Undo/Width]:")
    (cons "L" "Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:")
    (cons "H" "Specify starting/ending half-width ")
    ))
    (setq p0 (getpoint "\nChon diem thu nhat"))
    (setq str "Chon diem tiep theo")
    (command "PLINE" p0
    (while (> (getvar "cmdactive") 0)
    (progn
    (initget "A H L U W CE LC D C L R S")
    (setq p0 (getpoint (getvar "lastpoint") (strcat "\n" str)))
    (cond
    ((= (type p0) 'LIST) (command p0))
    ((= (type p0) 'STR)
    (command p0)
    (setq str (cdr (assoc p0 lst_str)))
    )
    ((not p0) (command ""))
    )
    )
    ))
    )



    (defun c:ll2 (/ arr_leng arr_size el en_luu ls_10 ls_10_x1 ls_10_x2 ls_not10 r2)
    (vl-load-com)
    (setq arr_size 50.0 arr_leng 150.0 el (entlast))

    (ve_PLine_q)
    (if (and (/= el (entlast))
    (setq en_luu (entget (entlast)))
    (= (cdr(assoc 0 en_luu)) "LWPOLYLINE"))
    (progn
    ;(alert "\nThuc hien chuyen doi")
    (setq ls_10 (vl-remove-if '(lambda(x) (not(member (car x) '(10 40 41 42 91)))) en_luu)
    ls_10_x1 (list (car ls_10) (cadr ls_10) (caddr ls_10) (cadddr ls_10) (car(cddddr ls_10)))
    ls_10_x2 (cdr(cddddr ls_10))
    ls_not10 (vl-remove-if '(lambda(x) (member (car x) '(5 330 -1 8 90 43 10 40 41 42 91))) en_luu))
    (setq r2 (append
    (subst (cons 41 arr_size) (assoc 41 ls_10_x1)ls_10_x1)
    (list
    (cons 10 (polar (cdr(car ls_10_x1)) (angle (cdr(car ls_10_x1)) (cdr(car ls_10_x2))) arr_leng))
    (cons 40 0.0) (cons 41 0.0) (cons 42 0.0) (cons 91 0))
    ls_10_x2))
    (while (entnext el) (entdel (setq el (entnext el))))
    (entmakex
    (append
    ls_not10
    (list (cons 8 "0"))
    (list (cons 90 (1+ (length ls_10))))
    r2))
    )
    (princ "nothing do")
    ))

  10. Em mới tìm ra một cách nhưng lại không đảm bảo được việc dùng như nguyen bản của Cad trong khi thực hiện lệnh LWPolyline (yêu cầu 2 ở #1)

    (progn
    (setq p0 (getpoint))
    (command "PLINE" p0
    (while (> (getvar "cmdactive") 0)
    (progn
    (if (setq p0 (getpoint p0 "\nChon diem tiep theo"))
    (command p0)
    (command "")
    )))))

     
     
     
    Cách thứ 2 dù chưa hoàn toàn giống nhưng đủ dùng (yêu cầu kiên quyết USER phải nhớ rõ tuỳ chọn của LWPOLYLINE)
    (defun c:ttttt()
    (setq p0 (getpoint))
    (command "PLINE" p0
    (while (> (getvar "cmdactive") 0)
    (progn
    (initget "A H L U W CE LC D C L R S")
    (setq p0 (getpoint "\nChon diem tiep theo"))
    (cond
    ((member (type p0) '(LIST STR)) (command p0))
    ((not p0) (command ""))
    )
    )
    ))
    )



    Cách cuối cùng có thể nghĩ được, ek toàn mình tự hỏi, tự trả lời

     

     

    (defun c:ttttt()
    (setq lst_str
    (list
    (cons "A" "Specify endpoint of arc or\n[Angle/CEnter/Direction/Halfwidth/Line/Radius/Second pt/Undo/Width]:")
    (cons "L" "Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:")
    (cons "H" "Specify starting/ending half-width ")
    ))
    (setq p0 (getpoint "\nChon diem thu nhat"))
    (setq str "Chon diem tiep theo")
    (command "PLINE" p0
    (while (> (getvar "cmdactive") 0)
    (progn
    (initget "A H L U W CE LC D C L R S")
    (setq p0 (getpoint (strcat "\n" str)))
    (cond
    ((= (type p0) 'LIST) (command p0))
    ((= (type p0) 'STR)
    (command p0)
    (setq str (cdr (assoc p0 lst_str)))
    )
    ((not p0) (command ""))
    )
    )
    ))
    )

  11. Chào các bác, em có biết một chút về LISP nên có tự viết 1 lisp sau (mục tiêu của Lisp là vẽ mũi tên ghi chú bằng LWPolyline (không phải Leader của Cad, bởi vì Leader nhiều khi không tạo được hình dáng đẹp như LWPolyline)) có điều LISP đang KHỒNG HOẠT ĐỘNG

    xin các bác sửa giúp em để có thể chạy được

    (vấn đề gặp phải trong CODE Dòng (command "PLINE") và dòng (alert "Thuc hien chuyen doi") nhẽ ra như mong muốn là phải thực hiện xong lệnh PLINE có đội tượng LWPolyline xong hết rồi, mới làm đến các lệnh kể từ (alert "Thuc hien chuyen doi") đổ đi, nhưng hiện tại dòng (command "PLINE") không chịu hoàn thành trả kết quả trước)

    Đây là file, mong các bác giúp em

    (defun c:qqtt (/ arr_leng arr_size el en_luu ls ls_10 ls_not10 r2 x)

    (vl-load-com)

    (setq arr_size 50.0 arr_leng 150.0 el (entlast))

     

    (command "Pline")

    ;(while (> (getvar "cmdactive" ) 0) )

    (if (and (/= el (entlast))

    (setq en_luu (entget (entlast)))

    (= (cdr(assoc 0 en_luu)) "LWPOLYLINE"))

    (progn

    (alert "\nThuc hien chuyen doi")

    (setq ls_10 (vl-remove-if '(lambda(x) (not(member (car x) '(10)))) en_luu)

    ls_not10 (vl-remove-if '(lambda(x) (member (car x) '(5 330 -1 8 90 43 10 40 41 42 91))) en_luu))

    (setq r2 (append

    (list (car ls_10) (cons 40 0.0) (cons 41 arr_size) (cons 42 0.0) (cons 91 0))

    (list (cons 10 (polar (cdr(car ls_10)) (angle (cdr(car ls_10)) (cdr(cadr ls_10))) arr_leng))

    (cons 40 0.0) (cons 41 0.0) (cons 42 0.0) (cons 91 0))

    (apply 'append

    (mapcar '(lambda(x)

    (list x (cons 40 0.0) (cons 41 0.0) (cons 42 0.0) (cons 91 0)))

    (cdr ls_10)))

    ))

    (while (entnext el) (entdel (setq el (entnext el))))

    (entmakex

    (append

    ls_not10

    (list (cons 8 "0"))

    (list (cons 90 (1+ (length ls_10))))

    r2))

    ;(entmakex (append ls_not10 ls))

    )

    (princ "nothing do")

    ))

     

     

    Nếu có thể xin hãy giữ lại toàn bộ các lựa chọn vẽ của lệnh LWPOLyline như mặc định của CAD khi thực hiện lệnh vẽ LWpolyline (tức vẫn lựa chọn được "A;C;H;L;U;W;L" trong ([Arc/Close/Halfwidth/Length/Undo/Width] :)


  12. Lệnh Burst là chuyển block ATT về block thường

    Chứ nó k chuyển được text ATT thanh text

    Mình vẫn dùng cái này này

    (defun c:tta (/ en sset ostr str osty sty olay lay ospt

    spt ojpt jpt otxht txht otxwd txwd orot rot

    oaln1 aln1 olan2 aln2 angd stytbl cursty curht

    curwd curobl curupdn curlastht curfont just

    newattrib entjunk junkpoint origcol col ocol)

     

    (command "undo" "begin")

    (SETVAR "CMDECHO" 0)

    (graphscr)

     

     

    ;(prompt "\nSelect text object to change.")

    (setq sset (entsel "\nSelect text object to change."))

    (if (null sset)

    (progn

    (princ "\nNo objects selected.")

    (exit)

    )

    )

    (setq en (entget (car sset))

    ostr (assoc 1 en)

    str (cdr ostr)

    osty (assoc 7 en)

    sty (cdr osty)

    olay (assoc 8 en)

    lay (cdr olay)

    ospt (assoc 10 en)

    spt (cdr ospt)

    ojpt (assoc 11 en)

    jpt (cdr ojpt)

    otxht (assoc 40 en)

    txht (cdr otxht)

    otxwd (assoc 41 en)

    txwd (cdr otxwd)

    orot (assoc 50 en)

    rot (cdr orot)

    ocol (assoc 62 en)

    col (cdr ocol)

    oaln1 (assoc 72 en)

    aln1 (cdr oaln1)

    oaln2 (assoc 73 en)

    aln2 (cdr oaln2)

    angd (/ (* rot 180) pi)

    ) ;end_setq en

    (setq stytbl (tblsearch "style" sty)

    cursty (cdr (assoc 2 stytbl))

    curht (cdr (assoc 40 stytbl))

    curwd (cdr (assoc 41 stytbl))

    curobl (cdr (assoc 50 stytbl))

    curupdn (cdr (assoc 71 stytbl))

    curlastht (cdr (assoc 42 stytbl))

    curfont (cdr (assoc 3 stytbl))

    )

     

     

    (command "-style" sty curfont 0 txwd 0 "n" "n" (if (> (getvar "cmdactive") 0)(command "n")))

     

     

    (command "erase" sset "")

     

    (cond

    ((= aln1 5)(setq horiz-just "fit"))

    ((= aln1 3)(setq horiz-just "aligned"))

    ((= aln1 4)(setq horiz-just "M"))

    ((= aln1 2)(setq horiz-just "R"))

    ((= aln1 1)(setq horiz-just "C"))

    ((= aln1 0)(setq horiz-just "L"))

    )

     

    (cond

    ((= aln2 0)(setq vert-just ""))

    ((= aln2 1)(setq vert-just "B"))

    ((= aln2 2)(setq vert-just "M"))

    ((= aln2 3)(setq vert-just "T"))

    )

     

    (setq just (strcat vert-just horiz-just))

     

    (cond

    ((= just "aligned")(command "-attdef" "" str str str "S" sty "j" "aligned" spt jpt))

    ((= just "fit")(command "-attdef" "" str str str "S" sty "j" "fit" spt jpt txht))

    ((= just "L")(command "-attdef" "" str str str "S" sty spt txht (angtos rot)))

    ((or (/= just "aligned")(/= just "fit")(/= just "L"))(command "-attdef" "" str str str "S" sty "j" just spt txht (angtos rot)))

    )

     

     

    (setq newattrib (entlast))

    (setq entjunk (entget newattrib))

    (setq junkpoint (cdr (assoc 10 entjunk)))

    (command "move" newattrib "" junkpoint spt)

     

    (cond

    ((= col nil)(setq origcol "bylayer"))

    ((= col 0) (setq origcol "byblock"))

    ((or (/= col nil)(/= col 0))(setq origcol col))

    )

     

    (command "change" newattrib "" "p" "c" origcol "layer" lay "")

     

    (command "-style" sty curfont curht curwd curobl "n" "n" (if (> (getvar "cmdactive") 0)(command "n")))

     

     

    (command "undo" "end")

    )

    • Vote tăng 1

  13. Bạn thử cái này xem sao . chú ý trong LISP co đoạn cho phép chỉnh sửa dấu ngoặc bạn có thể thay đổi tuỳ ý (trong mặc định đang là 1) bạn thay số này bằng số 2,3,... sẽ thấy sự thay đổi khi chọn đối tượng

     

     

    
    (defun c:fg (/ ss checkstring SoluongNgoac obj)
    (defun checkstring (str N / loc_lst lst r l1 l2 str1 str2)
    (setq lst (vl-string->list str)
    l1 lst
    str1 "" str2 "")
    (defun loc_lst (i r / r2)
    (setq r2 r)
    (while (= (car(member i r2)) i) (setq r2 (cdr(member i r2))))
    r2)
    (setq r (loc_lst 40 l1)
    r (loc_lst 41 (reverse r))
    r (reverse r))
    (repeat N (setq str1 (strcat str1 "(" )))
    (repeat N (setq str2 (strcat str2 ")" )))
    (strcat str1 (vl-list->string r) str2)
    )
    
    ;;;Chinh sua so luong BO Dau Ngoac o day
    (setq SoluongNgoac 1)
    
    ; (setq obj (vlax-ename->vla-object (car(entsel))))
    (if (setq ss (ssget '((0 . "*DIM*,*TEXT"))))
    (progn
    (vlax-for obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
    (cond
    ((wcmatch (vla-get-objectname obj) "*Text*")
    (vla-put-textstring obj (checkstring (vla-get-textstring obj) SoluongNgoac)))
    ((wcmatch (vla-get-objectname obj) "*Dim*")
    (if (= (vla-get-textoverride obj) "")
    (vla-put-textoverride obj (checkstring(rtos (vla-get-measurement obj)) SoluongNgoac))
    (vla-put-textoverride obj (checkstring(vla-get-textoverride obj) SoluongNgoac))
    )
    )))
    )
    )
    (princ)
    )
    
    
    
    • Vote tăng 1

  14. 1. Bạn lên upload file lên đây.
    2. Đoán: tuy cùng kiểu Modify nhưng có thể có thiết lập khác nhau mà cho kiểu in khác nhau: ví dụ như thiết lập sẵn kiểu in cho hai đường đậm, mảnh khác nhau hoặc màu sắc khác nhau. Với ví dụ 1: bạn sẽ dễ dàng thấy ngay trong thiết lập Dim. Với ví dụ 2 thì sẽ ảnh hưởng khi bạn chon in theo màu sắc, vô tình màu của DIM trùng với màu được thiết lập in mảnh, đậm khác nhau.
    3. Chú ý hai khái niệm mảnh-đậm và nhạt-đậm là hoàn toàn khác nhau: 1 là chỉ độ dày, mỏng của nét vẽ (kiểu như béo mập và gầy còm) còn 1 là chỉ độ nhạt, đậm của màu sắc (kiểu như màu xanh đậm và màu xanh nhạt, hay màu đen bóng và màu ghi sáng,...) Như trong hình bạn đưa lên thì hình như màu của đường ghi kích thước là màu 9, còn màu của đường gióng là màu 250 thì phải

    • Vote tăng 1

  15. Chào Các Ban !

     

    1.Mình khi đánh text trong cad thì làm sao để kéo dãn chữ theo chiều x hoặc y được, mình thấy chỉ có 1 cách là chỉnh thông số pt trên menu của chữ thôi mà như vậy chữ nó co dãn đều ra theo 2 chiều, liệu có cách nào để co kéo chữ theo 1 chiều được không các bạn,

    2. mình là lính mới, mình khi vẽ 1 hình chữ nhật và extrude lên 3d rồi muốn kéo dài khối 3d này ra lam sao mình chưa biết cách nơi, các bạn chỉ mình với. cảm ơn nhìu nhiều....

     

     Bạn chuyển Text đó về định dạng Fit (bằng Ctrl+1/ Propites / hoặc dùng lệnh JU/chọn text enter/ F đều được)

    sau đó dùng 2 điểm ở 2 đầu TExt co kéo cho vừa ý

    chúc thành công

    • Vote tăng 1

  16. Em hiện tại đang dính cái lỗi trời đánh này, mò cả buổi sáng không ra, cài lại autocad cũng chẳng được .Em gõ l để vẽ đường thẳng trong autocad, khi em nhập kích thước ví dụ 230mm chẳng hạn, thì cái đường thẳng nó kéo dài che hết màn hình, cuộn chuột phóng to thu nhỏ cũng chẳng được, em không tài nào vẽ được. 

     

     

     

    Giaỉquyết tình thế: cứ enter cho nó hết lệnh đã, sau đó nhấn đúp chuột giữa (ấn xuống, không lăn)(hoặc gõ lệnh "z" enter "e" enter ..

    (nếu ở bước chuột giữa k0 có tác dụng thì vẽ trước một HCN kích thước to to vào (2500x2500 - to hơn 230) rồi làm lại bước 2.

    Giải quyết 1: gửi file nên, và chờ.

    Giải quyết 2: đoán mò: tìm hiểu lại về tọa độ tương đối, tuyệt đối trong CAd


  17.  Em thường phải làm việc tiếp từ file bản vẽ của người khác, tuy vậy bản thân em cũng đồng thời sử dụng một temperate riêng (mẫu riêng từ file .dwt) khi đó em gặp khó khăn khi Ctrl+V đối tượng từ bản vẽ của người đi trước sang file Cad chuyên dùng của em.

     Lúc này tỷ lệ hatch,LTS trên 2 bản vẽ rất khác xa nhau: xin đọc bên dưới và trong file Cad

     

    (tạm hiểu là: với file của người đi trước Tỷ lệ Hatch rất lớn 800 thì khi in A3 mới bình thường+đẹp, còn trên file của em tỷ lệ Hatch chỉ cần 5-20 là OK)

     

     Vậy Em muốn hỏi: vấn đề này là do nguyên nhân nào? biến hệ thống nào của Cad quy định điều này, có cách quy đổi tỷ lệ giữa chúng không, kết hợp nó vào LISP thì làm sao?xin cảm ơn các bác, mong hồi âm

     

     

     

     

       

    Bản Cad đi kèm:

    1. File "Ty le to.dwg" chứa đối tượng HATCH có tỷ lệ lớn 800

     

    2. File "Ty le nho.dwg" chứa đối tượng Hatch có tỷ lệ nhỏ 15, và bên cạnh nó là đối tượng được Ctrl+V từ bản vẽ "Ty le to.dwg", bên trong này còn có Thuyết minh vấn đề của em

     

    3. File PDF in ảo từ "Tỷ lệ nhỏ.dwg

    http://www.cadviet.com/upfiles/5/101306_ty_le_to.dwg

     

    http://www.cadviet.com/upfiles/5/101306_ty_le_nho.dwg

     

    http://www.cadviet.com/upfiles/5/101306_ty_le_nho_model_1_2.pdf


  18. Trim thì trim được có điều làm vậy mất thời gian lắm, vì Hatch của bạn là tổ hợp của nhiều Hatch chồng chéo nên nhau, mà hatch đó nếu chỉ dùng HCN màu đỏ làm bao cắt thì sau khi dùng nó, Khung Bao (boundary) của Hatch vẫn chưa kín, nên không Hatch được (hoặc kín thì thì chỉ đủ để Trim riêng phần được kín đó) không đạt được kết quả cuối cùng.

    Gặp trường hợp này có lẽ nên làm thế này:

    B1: Chuyển layer hiện hành sang 1 layer khác không trùng, ko dùng trong vùng đang chỉnh sửa. Chẳng hạn layer "0"

    B2: Dùng lệnh "HE" với lựa chọn ReCreate Boumdary - Tái tạo lại khung bao đối tượng) nhấn Ok, ... cho hết lệnh, kết quả được Các Line, Polyline bao quanh Hatch, ở Layer "0", đường bao trùng đường bao của Hatch,

    B3: Xóa Hatch cũ.

    B4: Hatch mới, với lựa chọn Pick điểm (trong trường hợp mà đầu bài đưa ra, chỉ cần pick 1 điểm trong vùng ), hatch bình thường.

    B5: tắt toàn bộ layer khác chỉ để lại layer "0", xóa bỏ toàn bộ đối tường được tạo từ B2.

    END

    • Vote tăng 1
×