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

Tr.CongSon

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

    181
  • Đã tham gia

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

  • Ngày trúng

    4

Bài đăng được đăng bởi Tr.CongSon


  1. Ý của mình là zầy nè tien2005. Khoảng cách theo phương ngang thì tinh theo tim (chỉ nhập 1 lần), còn phương dọc thì tính từ mép trên xuống (nhập nhiều lần)

     115759_ban_ma.png

     

     

    Chủ thớt cho em hỏi:

     

    Khoảng cách ngang (từ bolt->mép bản mã=65) và Khoảng cách dọc (từ bolt->mép bản mã=60)l à tính toán ra hay lấy theo cấu tạo ạ.Nếu lấy theo cấu tạo thì nên lấy >=1,5D và 2 k/c 2 mép này bằng nhau luôn cho dễ chế tạo?

    Khi đó,thì khoảng cách dọc cũng chỉ cần nhập các giá trị ở giữa thôi ạ (các giá trị này >=2.5D),hơn nữa các k/c này phải bằng nhau mới đúng chứ ạ?

     

    Còn trường hợp k/c ngang viết luôn cho trường hợp nếu có >2 hàng bulong cho tổng quát ^^ .


  2.  

    Có sẵn hàm tạo và xóa thư mục của ACET :) :

       Make :

    (acet-file-mkdir "C:\\...\\Desktop\\Tr.CongSon")
     Delete :
    (acet-file-rmdir "C:\\...\\Desktop\\Tr.CongSon")

     

    Em cảm ơn 2 a!

    Hàm acet này em biết a phung ạ, hàm này thuôc hàm của Express tool,nó chỉ xóa được folder trống thôi a^^

    Cái em muốn là nó xóa folder bất kỳ ak a.hi

     

    @ a ndtnv: Hàm delFolder a gởi dùng rất tốt ạ ^^ 


  3. Có mỗi lời cám ơn mà phải tốn 2 comment, thay bằng 2 like đơn giản hơn, mà cũng đỡ công người khác khỏi hớ hàng. :lol:

     

    @a Doan Van Ha :Em đọc bài xong like liền anh ơi ^^

    Ban đầu em cảm ơn 2 anh đã Reply + em post code em dùng bị lỗi (post lên cadviet lại che mất mấy dòng code  :( nên anh nghĩ chỉ có dòng cảm ơn thôi ^^ )

    Comment thứ 2 em post để biết em sửa được rồi ,chứ im im đôi lúc dễ làm người khác khó chịu lắm anh ạ,có khi lại nghĩ : không biết thằng này sửa được hay chưa mà chẳng thấy reply hay nó chỉ post lên chơi vậy thôi :v

     

    Em sẽ rút kinh nghiệm lần sau :v 

    Chúc anh luôn mạnh khỏe và thành công !


  4. Mình có thắc mắc :

    1. Đường line đứng đó chiều dài như trong hình luôn hay sao bạn??
    2. Trong Hình bạn để 2 điểm đều là point 1 -->vậy cái nào là p1 và cái nào là p2
    3. Chia theo thứ tự từ p1 trở đi hay từ trái sang phải?
    4. sao mình thấy khoảng chia của bạn không = 434 (có đoạn 433.7 trong đó nữa) ^^

    Nếu bạn cần đoạn code để học thì bạn có thể search trên diễn đàn có code lisp chia Line theo khoảng cách này rồi thì phải :v

     

    Chúc bạn thành công!


  5. Mọi người cho e hỏi e đang xài Cad ngon lành k biết nhấn nhầm cái gì mà chỉ chuột vào đối tượng k bị mờ đi, k bắt được điểm, k quét chọn được đối tượng luôn....Mong mọi người giúp đỡ !!! Tkanks all

     

    Chủ thớt làm theo thử xem sao nhé ^^

    1. Gõ Grips-->1
    2. Nhấn F3 nếu không được thì gõ Autosnap-->16 ,nếu chưa được nữa thì gõ OSMODE-->15359
    3. Chưa biết trả lời

    Chúc thành công!


  6. Có lẽ do yêu cầu trước hơi nhiều nên các bác ngại. Nên em xin đôi yêu cầu cho ngắn:

    + Viết thành lisp chương trình này để em có thể chỉnh sửa.

    + Tọa độ đối chiếu (gốc), là bất kỳ không phải là +0.00.

    + Tọa độ gốc lấy theo text của gốc. Nghĩa là mình chỉ cần thay đổi text của tọa độ gốc thì tọa độ con nhảy theo text đó.

     

    Lệnh chạy chương trình: CD1, update bằng RE

    http://www.cadviet.com/link/?f=upfiles/4/141736_cotcaodo_2.zip&w=152

     

    Hình chường trình:

    36182_untitled.gif

     

    Mong các bác giúp đỡ!

     

    Em nghĩ cái này không cần dùng Lisp đâu a ^^

     

    Trước tiên a tạo cái mà a gọi là Text gốc ^^

    Sau đó tạo cái ký hiệu Coste cao độ rồi cho nó field theo text gốc là được 

     

    Anh search cách tạo Field trong Cad rồi làm theo là có cái ký hiệu Coste cao độ như mong muốn liền ak ^^ Cái này trên diễn đàn có rồi a ạ.

     

    Chúc anh thành công !


  7.  

    Nhạc sĩ Tr.CongSon tham khảo code :D :

     

    Em cảm ơn a pphung183, a tien2005

    Em cũng dùng đoạn này để lấy a ạ

     

    (setq Elast (entlast)

    lstname nil)

    (setq ss (TS:SELOBJ_CONTINUOUS))

    (vl-cmdf "_.PEDIT" "M" ss "" "J" "J" "E" 1 "");;đoan nay lay cac line noi tiep nhau de Pedit

     

    (while (setq ELast (entnext ELast))

    (setq lstname (cons ELast lstname))

    )

     
    Nhưng không hiểu sao kết quả lstname -->nil chứ không phải là ename 
    Em ko Upload file được ,mong anh chị thông cảm ạ

  8. Em chào các anh chị,

     

    Em có 1 vấn đề như sau,mong anh chị giúp đỡ tí ạ :

     

      Em có 1 tập đối tượng,em nối chúng lại với nhau bằng lệnh PEDIT,sau khi thực hiện  nó sẽ tạo ra có thể nhiều hơn 1 Pline nhưng cái em cần là lấy cái Pline Kín mới được sinh ra bởi lệnh Pedit đó,Giờ em không biết cách nào để lấy được nó.

     

    Anh chị có thể Code cho em 1 đoạn hoặc cho em ý kiến để lấy được Pline này ko ạ

     

    Em xin cảm ơn.


  9. Cảm ơn mọi người rất nhiều.Tiện thể cho em hỏi trong quá trình insert Block thông số như hình em đính kèm  chỉnh ở chỗ nào.133575_hoi.png

     

     

    Cái này mình nghĩ bản vẻ chứa Block của bạn ở hệ Inches

    Bạn chuyển bản vẽ chứa Block sang hệ Milimeters là được !

     

    P/s: Cảm ơn bằng nút thanks có ý nghĩa hơn bạn ơi ^^


  10. Bạn thử mở file này,chèn block có tên TOADO vào các điểm trên màn hình,

    tọa độ X, Y của điểm sẽ được cập nhật vào TEXT trong block.

    Với block này, bạn không cần lisp.

     

    block_toado.dwg

     

    Tuyệt vời a Hoành ơi ..

    Anh dùng Field cập nhật tọa độ tự động hay thật.^^

     

    @chủ thớt: Sau khi copy block của a Hoành thì bạn nhớ Regen bản vẽ mới cập nhật tạo độ nhé !

    • Vote tăng 1

  11. Rất cảm ơn anh Tr.cong sơn. em đã text rất ok, anh cho em hỏi nếu em muốn thay đổi tọa độ X,Y thi thay đổi ở dòng lệnh nào.

    Bạn tìm dòng này nhé: (dòng 98 trong lisp):

     

    (setq TX (strcat "X=" (rtos (car D1) 2 3))

    TY (strcat "Y=" (rtos (cadr D1) 2 3))

    stt (append stt (list i))

    )

     
     
    Muốn đổi X thành Y (tức là X xuống dưới,Y lên trên) thì đổi  thành:

    (setq TX (strcat "Y=" (rtos (cadr D1) 2 3))

             TY (strcat "X=" (rtos (car D1) 2 3))

              stt (append stt (list i))

    )
    là được bạn ak
     
    Chúc thành công !

  12. dạ em gữi kèm file cad mong được các anh giúp.

    Mấy anh đặt tùy chỉnh luôn cho em cái này:(hình tròn và cỡ chữ có thể thay đổi được do người dùng chọn)

    http://www.cadviet.com/upfiles/5/133575_nho_viet_lisp.dwg

     

    Đã code lại cho bạn rồi đây ^^

    Bạn dùng thử xem sao nhé ^^

    Tên lệnh: GTD

    ;;-----------------------=={ Xuat toa do diem }==-----------------------;;

    ;; ;;

    ;; Command : MBN ;;

    ;; Date : 26-Nov-2015 ;;

    ;;----------------------------------------------------------------------;;

    ;; Author : @ Tran Cong Son - Detail SS ;;

    ;;----------------------------------------------------------------------;;

    (defun C:GTD (/ CAOTXT D1 DI DI1 DI2 DT DT1 DT2 DT3 I LST_VAR OLD_VAR STT TB1 TB2 TX TY)

    (setvar "MODEMACRO" "@ Tr\U+1EA7n C\U+00F4ng S\U+01A1n _ XDDD & CN")

    ;;-----------------=={ Make Text }==------------------;;

    (defun TS:MakeText (point string justify / Lst)

    (setq Lst

    (list '(0 . "TEXT")

    (cons 8 "gt-duong")

    (cons 10 point)

    (cons 40 caotxt)

    (cons 1 string)

    (cons 50 0.0)

    (cons 7 "VNI-CON")

    )

    justify (strcase justify)

    )

    (cond

    ((= justify "R")

    (setq Lst (append Lst (list (cons 72 2) (cons 11 point))))

    )

    ((= justify "TL")

    (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 3))))

    )

    ((= justify "TR")

    (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 3))))

    )

    )

    (entmakex Lst)

    )

    ;;-----------------=={ Make Pline }==------------------;;

    (defun TS:MakePline (listpoint / Lst)

    (setq Lst (list '(0

    .

    "LWPOLYLINE"

    )

    '(100 . "AcDbEntity")

    (cons 8 "gt-duong")

    (cons 6 "Continuous")

    '(100 . "AcDbPolyline")

    (cons 90 (length listpoint))

    (cons 70 0)

    )

    )

    (foreach PP listpoint

    (setq Lst (append Lst (list (cons 10 PP))))

    )

    (entmakex Lst)

    )

    ;;-----------------=={ Main Function }==------------------;;

    (setvar "cmdecho" 0)

    (command "Undo" "Begin")

    (setq lst_var '("osmode" "dimzin")

    old_var (mapcar 'getvar lst_var)

    )

    (mapcar 'setvar lst_var '(32 0))

    (or *h*

    (setq *h* 1)

    )

    (setq caotxt (getreal (strcat "\nCao text < " (rtos *h* 2 0) " >:")))

    (if caotxt

    (setq *h* caotxt)

    (setq caotxt *h*)

    )

    (if (not (tblsearch "layer" "gt-duong"))

    (vl-cmdf ".layer" "n" "gt-duong" "l" "Continuous" "gt-duong" "")

    )

    (if (not (tblsearch "Style" "VNI-CON"))

    (vl-cmdf "_.Style" "VNI-CON" "VNI-HELVE-CONDENSE" 0 1 "" "" "")

    )

    (setq i 1

    stt '()

    )

    (While

    (setq D1 (getpoint (strcat "\nPick \U+0111i\U+1EC3m th\U+1EE9 " (rtos i 2 0) " :")))

    (Progn

    (entmake

    (list (cons 0 "CIRCLE")

    (cons 8 "gt-duong")

    (cons 10 D1)

    (cons 40 (* 0.15 caotxt))

    )

    )

    (setq DT

    (getpoint

    D1

    (strcat "\n\U+0110i\U+1EC3m \U+0111\U+1EB7t Text c\U+1EE7a n\U+00FAt th\U+1EE9 "

    (rtos i 2 0)

    " :"

    )

    )

    )

    (setq TX (strcat "X=" (rtos (car D1) 2 3))

    TY (strcat "Y=" (rtos (cadr D1) 2 3))

    stt (append stt (list i))

    )

    (if (>= (car DT) (car D1))

    (progn

    (setq DT1 (list (+ (car DT) (* 0.5 caotxt)) (+ (cadr DT) (* 0.25 caotxt)) 0.0)

    DT2 (list (+ (car DT) (* 0.5 caotxt)) (- (cadr DT) (* 0.25 caotxt)) 0.0)

    )

    (TS:MakeText DT1 TX "L")

    (setq TB1 (textbox (entget (entlast)))

    di1 (distance (car TB1) (cadr TB1))

    )

    (TS:MakeText DT2 TY "TL")

    (setq TB2 (textbox (entget (entlast)))

    di2 (distance (car TB2) (cadr TB2))

    )

    (setq di (max di1 di2)

    DT3 (polar DT 0 (+ di (* 0.5 caotxt)))

    )

    (TS:MakePline (list D1 DT DT3))

    )

    (progn

    (setq DT1 (list (- (car DT) (* 0.5 caotxt)) (+ (cadr DT) (* 0.25 caotxt)) 0.0)

    DT2 (list (- (car DT) (* 0.5 caotxt)) (- (cadr DT) (* 0.25 caotxt)) 0.0)

    )

    (TS:MakeText DT1 TX "R")

    (setq TB1 (textbox (entget (entlast)))

    di1 (distance (car TB1) (cadr TB1))

    )

    (TS:MakeText DT2 TY "TR")

    (setq TB2 (textbox (entget (entlast)))

    di2 (distance (car TB2) (cadr TB2))

    )

    (setq di (max di1 di2)

    DT3 (polar DT pi (+ di (* 0.5 caotxt)))

    )

    (TS:MakePline (list D1 DT DT3))

    )

    )

    )

    (setq i (+ i 1))

    )

    (command "Undo" "End")

    (setvar "cmdecho" 1)

    (princ)

    )

     

    Chúc mọi người làm việc zui zẻ !

    • Vote tăng 1

  13. Bạn chỉnh dùm mình

    1. Lisp này toạ độ x, y bị đảo lôn ,không giống của mình

    2. Không có số thập phân phía sau

    3. Bạn thêm vòng tròn cho mình luôn với

     

    Bạn vẽ nét tròn, nét chéo, nét thẳng và text thành 1 cái block đi, mình sẽ giúp bạn phần còn lại!

     

    1.     Mình đã test thấy kết quả X,Y đâu có bị đảo lộn gì đâu bạn???

    2.     Bạn cứ làm theo a Hoành thì mọi người sẽ giúp bạn dễ hơn bạn ạ…

    3.     Muốn hoàn hảo thì bạn nên post file dwg để mọi người check code dễ dàng hơn,ví dụ:

    ·  hướng text của bạn luôn sang phải hay như thế nào?

    ·  Chiều cao Text,textstyle,bán kính đường tròn,layer ra sao???

    ......


  14.  

    (command "-layer" "m" "_mss.bao" "")
      (setq ss (ssadd))                    
      (command "line" pstart t1 "")         
      (ssadd (entlast) ss)                 
      (command "line" pstart t2 "")
      (command "in" "")
    "in" là lisp in nhiều bản vẽ, ở mình muốn vẽ ra 1 hình chữ nhật rồi dùng lệnh "in" để in luôn bản vẽ

     

     

    Nếu bạn đang học Lisp thì mình khuyên bạn nên viết hàm con cho tiện sử dụng và dùng được ở nhiều đoạn lísp khác nhau ^^

    ví dụ  của bạn: Viết hàm con (defun IN (tham số / biến cục bộ) nội_dung_hàm)

    Khi sử dụng thì chỉ cần code là: (IN tham số)

     

    Đoạn code của bạn thì muốn vẽ HCN rồi in theo khung HCN vừa vẽ thì bạn chỉ cần COde:

    (setq p1 (getpoint)
     p2 (getcorner p1))
    (command "_.rectangle" p1 p2)
    (In (entlast))
     
    Trong đó hàm IN có đối số là ename của HCN ^^
     
    P/s: Sao mình lại bị trừ điểm ở bài trước vậy nhỉ :(
    • Vote tăng 1

  15. 133575_td.png

    Pro nào có lisp pick tọa độ như hình cho emm xin với.

     

    Bạn dùng tạm cái này xem sao^^

    Cái này,lúc trước mình sửa lại cho 1 bạn trên cadviet ^^ 

    Lisp này không phải chính chủ nhé!

    (prompt "\n[cmd : TTD] - THONG KE TOA DO")

    (prompt "\nEdit : @ Tr\U+1EA7n C\U+00F4ng S\U+01A1n _ XDDD & CN\n")

    ;;;;;;----------------------------------------------

    (defun C:TTD (/ angd angr bit c caot1 d1 d2 di dt dx dy h i k kc

    l1 l11 l2 l22 lacol lc n om p1 p11 p2 p22 p3 p33 p4 pt

    pt3 pt4 pt5 ptb ptc ptd ptx pty rc stt tapx tapy tb tmp tstt tx ty

    x xx y yy

    )

    (setvar "cmdecho" 0)

    (command "Undo" "Begin")

    (setq osm (getvar "osmode"))

    (if (not *h*)

    (setq *h* 1)

    )

    (setq caot1 (getreal (strcat "\nCao text < " (rtos *h* 2 2) " >:")))

    (if caot1

    (setq *h* caot1)

    (setq caot1 *h*)

    )

    (setq tapx '()

    tapy '()

    stt '()

    )

    (setvar "osmode" 125)

    (setq lacol (getvar "CEColor")

    i 1

    )

    (While

    (setq D1 (getpoint (strcat "\nPick \U+0111i\U+1EC3m th\U+1EE9 " (rtos i 2 0) " :")))

    (Progn

    (setq DX (getpoint

    (strcat "\n\U+0110i\U+1EC3m \U+0111\U+1EB7t Text c\U+1EE7a n\U+00FAt th\U+1EE9 "

    (rtos i 2 0)

    " :"

    )

    D1

    )

    DY (getpoint "\H\U+01B0\U+1EDBng g\U+00F3c nghi\U+00EAng c\U+1EE7a Text :" Dx)

    angr (angle Dx Dy)

    )

    (setq angd (/ (* 180 angr) pi)

    x (rtos (car D1) 2 0)

    y (rtos (cadr D1) 2 0)

    TX (strcat "X:" (rtos (Car D1) 2 0))

    TY (strcat "Y:" (rtos (Cadr D1) 2 0))

    tapx (append tapx (list x))

    tapy (append tapy (list y))

    stt (append stt (list i))

    )

    (setvar "osmode" 0)

    (if (>= (car DY) (car DX))

    (progn

    (setq D2 (polar Dx angr (* 0.7 caot1)))

    (command "text" "BL" D2 caot1 angd tX)

    (setq TB (textbox (entget (entlast)))

    LC (car TB)

    RC (cadr TB)

    di (distance LC RC)

    PT3 (polar D2 angr (+ di (* 0.4 caot1)))

    pt4 (polar D2 (- angr (* pi 0.5)) (* 1.35 caot1))

    pt5 (polar pt4 angr di)

    C (polar PT3 0 (* 1.5 caot1))

    )

    ;;setq

    (command "text" "F" PT4 PT5 caot1 ty "pline" D1 DX PT3 "")

    ;;command

    (setvar "CECOLOR" lacol)

    )

    ;;progn

    )

    ;;if

    (if (< (car DY) (car DX))

    (progn

    (setq D2 (polar Dx angr (* 0.7 caot1)))

    (command "text" "BR" D2 caot1 (+ angd 180) tx)

    (setq TB (textbox (entget (entlast)))

    LC (car TB)

    RC (cadr TB)

    di (distance LC RC)

    PT3 (polar D2 angr (+ di (* 0.4 caot1)))

    pt4 (polar D2 (+ angr (* pi 0.5)) (* 1.35 caot1))

    pt5 (polar pt4 angr di)

    C (polar PT3 0 (* 1.5 caot1))

    )

    ;;setq

    (command "text" "F" PT5 PT4 caot1 TY "pline" D1 DX PT3 "")

    ;;command

    (setvar "CECOLOR" lacol)

    )

    ;;progn

    )

    (setvar "osmode" 125)

    ;;if

    )

    ;;progn

    (setq i (+ i 1))

    )

    ;;if

    (setq bit (cond (bit)

    ("Yes")

    )

    )

    (initget "Yes No")

    (setq Tmp (strcat "\nXuat b\U+1EA3ng th\U+1ED1ng k\U+00EA t\U+1ECDa \U+0111\U+1ED9 ? [Yes/No] <"

    bit

    ">: "

    )

    bit (cond ((getkword Tmp))

    (bit)

    )

    )

    (if (eq bit "Yes")

    (progn

    (setq di (- di (* 0.4 caot1))

    kc (* 2 di)

    PT (getpoint "\nCh\U+1ECDn v\U+1ECB tr\U+00ED \U+0111\U+1EB7t b\U+1EA3ng :")

    PTC (list (+ (* 2 kc) (- di caot1 caot1 caot1 caot1) (car PT)) (cadr PT))

    p1 (list (car PT) (+ (cadr PT) (* 2 caot1)))

    p2 (list (car PTC) (+ (cadr PTC) (* 2 caot1)))

    p3 (list (car p1) (+ (cadr p1) (* 2 caot1)))

    p4 (list (car p2) (+ (cadr p2) (* 2 caot1)))

    PTD (list (+ (/ di 2) (car PT)) (+ caot1 (cadr PT)))

    PTX (list (+ di (/ di 2) (- 0 caot1) (car PTD)) (cadr PTD))

    PTY (list (+ kc (- caot1 caot1 caot1 caot1) (car PTX)) (cadr PTX))

    p11 (list (+ (/ di 2) (car p1)) (+ (* 1.1 caot1) (cadr p1)))

    p22 (list (+ di (/ di 2) (- 0 caot1) (car p11)) (- (cadr p11) (* 0.1 caot1)))

    p33 (list (+ kc (- caot1 caot1 caot1 caot1) (car p22)) (cadr p22))

    L1 (list (+ di (car p3)) (cadr p3))

    L2 (list (+ kc (- 0 caot1 caot1) (car L1)) (cadr L1))

    PTB (list (+ (- (* 2 caot1)) (* 0.5 (+ (* 2 kc) di)) (car PT))

    (+ (cadr P3) (* 1.8 caot1))

    )

    n (length tapx)

    k 0

    )

    ;;setq

    (setvar "osmode" 0)

    (command "CECOLOR"

    3

    "line"

    p1

    p2

    ""

    "line"

    p3

    p4

    ""

    "CECOLOR"

    2

    "text"

    "m"

    p11

    caot1

    0

    "STT"

    "text"

    "m"

    p22

    caot1

    0

    "Toa do X"

    "text"

    "m"

    p33

    caot1

    0

    "Toa do Y"

    "text"

    "m"

    pTB

    (* 1.3 caot1)

    0

    "Bang thong ke toa do diem"

    )

    (while (< k n)

    (setq xx (nth k tapx)

    yy (nth k tapy)

    tstt (nth k stt)

    )

    (command "CECOLOR" 2 "text" "m" PTD caot1 0 tstt "text" "m"

    PTX caot1 0 xx "text" "m" PTY caot1 0 yy "CECOLOR"

    3 "line" PT PTC ""

    )

    (setq PT (list (car PT) (- (cadr PT) (* 2 caot1)))

    PTC (list (+ (* 2 kc) (- di caot1 caot1 caot1 caot1) (car PT)) (cadr PT))

    PTD (list (+ (/ di 2) (car PT)) (+ caot1 (cadr PT)))

    PTX (list (+ di (/ di 2) (- 0 caot1) (car PTD)) (cadr PTD))

    PTY (list (+ kc (- caot1 caot1 caot1 caot1) (car PTX)) (cadr PTX))

    k (+ 1 k)

    )

    ;;setq

    )

    ;;while

    (if (= k n)

    (setq PT (list (car PT) (+ (cadr PT) (* 2 caot1)))

    PTC (list (+ (* 2 kc) (- di caot1 caot1 caot1 caot1) (car PT)) (cadr PT))

    L11 (list (+ di (car PT)) (cadr PT))

    L22 (list (+ kc (- 0 caot1 caot1) (car L11)) (cadr L11))

    )

    ;;setq

    )

    ;;if

    (command "CECOLOR" 3 "line" p3 PT "" "line" p4 PTC "" "line" L1 L11 "" "line" L2 L22 "")

    )

    ;;progn

    )

    ;;if

    (setvar "CECOLOR" lacol)

    (setvar "osmode" om)

    (prompt "\n[TTD - THONG KE TOA DO]\n")

    (command "Undo" "End")

    (setvar "cmdecho" 1)

    (princ)

    )

    ;;DONG toa do

     

    Chúc thành công !


  16. Share code cho "Nhạc sỹ" và bạn nào nếu cần.

    + Hạn chế của lisp:

    * Như đã nói ở bài #13

    - Khung ten Block

    - Layout

    (vấn đề này có thể gải quyết bằng cách dùng hộp thoại để chọn Layout, và Block)

    - Nếu trong layout có nhiều viewport lồng vào nhau thì lisp chưa xử lý được.

    + Code chưa tối ưu, đang còn lộn xộn ... :D

     

    Em cảm ơn nhiều ^^

    "Nhạc sỹ" mới vào"sô bít" nên trình còn non kém lắm

    Mong anh chị chỉ bảo thêm !


  17. Ok bạn quocmanh04tt rất tuyệt vời, nhưng sao nó chạy được với khung tên thiết kế thôi, khi mình dùng khung tên shop thì nó lại không chạy được, với lại khi chạy xong lsp xóa các bv còn lại chỉ chừa mỗi bv trong khung tên thôi là ok rồi, bạn chỉnh sao cho khi xóa thì chừa lại hình chữ nhật bao quanh bản vẽ để mình kiểm soát sau này. Mong tin vui từ bạn.

    Chúc bạn buổi sáng vui vẻ.http://www.cadviet.com/upfiles/5/146653_ban_ve_shop.dwg

    Không đọc được Code của a quocmanh04tt nhưng cũng đoán mò tí ^^

    Code bác ấy viết để tách bve dựa vào  Block khung tên, tên của block là: "KHUNG TEN"

    *** Có bao nhiêu Block "KHUNG TEN" trong layout thì có bấy nhiêu bản vẽ được tách ra.

    Nếu bạn muốn chạy được với bản vẽ Shop thì đặt tên Block khung tên trong bản vẽ shop là "KHUNG TEN" là được ^^

     

    P/s:Anh quocmanh04tt có thể share code cho em tham khảo với được không ạ??.Em cũng mò mẫm mấy bữa nay viết mà ko được ^^ Em cảm ơn trước!


  18. Chào mọi người . Hiện mình đang tìm hiểu tập tành viết lisp , mình có học qua lập trình VB, C nên cũng có chút chút nền về lập trình. Mong các ae trong diễn đàn những người đi trước có thể hướng dẫn cách tiếp cận vs autolisp một cách nhanh và hiệu quả, mình cũng có đọc một vài tài liệu về các hàm trong autolisp nhưng chưa có phương pháp lập trình. Mong mọi người cho ý kiến giùm! :)

     

    Bạn tham khảo nhé!

     

    http://www.cadviet.com/forum/topic/2480-huong-dan-lap-trinh-lisp/

     

    http://www.cadviet.com/forum/topic/80-hoc-autolisp/

×