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

VUVUZELA

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

    210
  • Đã tham gia

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

  • Ngày trúng

    4

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


  1. Đây bạn ơi

     

    (defun c:TL ()
    
     (setvar "CMDECHO" 0)
    ;;;Nhap so lieu ty le ban ve
     (if (= scale nil)
       (setq *scale 100.00)
       (setq *scale scale)
     )
     (setq
       scale (getreal
        (strcat "\nTi le ban ve: <" (rtos *scale 2 2) ">")
      )
     )
     (if (= scale nil)
       (setq scale *scale)
     )
    ;;;Nhap so lieu chieu cao TEXT
     (if (= chu nil)
       (setq chu1 2.00)
       (setq chu1 chu)
     )
     (setq	chu (getreal
          (strcat "\nChieu cao cua TEXT: <" (rtos chu1 2 2) ">")
        )
     )
     (if (= chu nil)
       (setq chu chu1)
     )
    
     (setvar "dimzin" 0)
     (setvar "dimfit" 0)
     (setvar "dimjust" 0)
     (setvar "dimfit" 2)
     (setvar "dimtad" 1)
     (setvar "dimtih" 0)
     (setvar "dimtix" 0)
     (setvar "dimtoh" 0)
     (setvar "dimtofl" 1)
     (setvar "dimdec" 0)
     (setvar "DIMTOFL" 0)
     (setvar "dimsd1" 0)
     (setvar "dimsd2" 0)
     (setvar "dimse1" 0)
     (setvar "dimse2" 0)
    ;;;gan color
     (setvar "dimclrd" 6)
     (setvar "dimclre" 6)
     (setvar "dimclrt" 3)
    
     (setvar "dimdli" (/ chu 2))
     (setvar "dimexe" (/ chu 2))
     (setvar "dimexo" (/ chu 2))
     (setvar "dimasz" (/ chu 2))
     (setvar "dimlfac" (/ scale 10))
    
     (setvar "dimtxt" chu)
     (setvar "dimgap" (/ chu 2))
    
     (if (not (tblsearch "Style" "VNI-HELVE"))
       (command "style" "VNI-HELVE" "Vni-Helve" ""	"1.00" "" "" ""	"")
       (command "style" "VNI-HELVE" "" "" "" "" "" "" "")
     )
    ;;;GAN BIEN CHO Text STYLE
     (if (not (tblsearch "Style" "DIMTEXT"))
       (command "style" "DIMTEXT" "VN_vni.SHX" "" "0.8" ""	"" "" "")
       (command "style" "DIMTEXT" "" "" "" "" "" "" "")
     )
     (setvar "DIMTXSTY" "DIMTEXT")
     (setq tendim (strcat "TL " (rtos scale 2 0)))
     (if (not (tblsearch "dimstyle" tendim))
       (command "-dimstyle" "save" tendim)
       (command "-dimstyle" "save" tendim "Y")
     )
    )


  2. Tội cho thành viên này quá ! Lâu quá rồi không thấy cao thủ CADVIET nào giúp cả

    Cũng như mình post bài "Tại sao không cập nhật dữ liệu mở rộng" mà cũng không thấy xuất hiện Cao Thủ

     

    Vì vậy, sau thời gian nghiên cứu mình sẽ giúp cho bạn đoạn mã này nhé

    Mong rằng bạn sẽ thích nó. Có gì pm cho mình

     

    (defun c:WIPE (/)
     (setvar "cmdecho" 0)
     (command "_.undo" "be")
     (setvar "regenmode" 1)
     (setq osmode (getvar "osmode"))
    
     (setq colo (getvar "clayer"))
     (if (not (tblsearch "layer" "WIPE-TAM"))
       (command "layer" "n" "WIPE-TAM" "color" "3"	"WIPE-TAM" "s"
         "WIPE-TAM"	\n)
       (command "layer" "s" "WIPE-TAM" \n)
     )
     (setvar "osmode" 0)
     (command "ucs" "")
    
     (setq abc (entsel "\nChon doi tuong :"))
     (setq KC (getreal "\nNhap khoang cach de chia cung : "))
    
     (COMMAND "MEASURE" ABC KC)
     (setq	ss (ssget "X"
    	  '(
    	    (-4 . "		    (0 . "POINT")
    	    (8 . "WIPE-TAM")
    	    (-4 . "AND>")
    	   )
       )
     )
     (command "pline")
     (setq x 0)
     (repeat (SSlength ss)
       (setq ent (ssname ss x))
       (setq ents (entget ent))
       (setq pt (cdr (assoc 10 ents)))
       (command pt)
       (setq x (+ x 1))
     )
     (command "")
    
     (COMMAND "erase" ss "")
    
     (setvar "clayer" colo)
     (setvar "osmode" osmode)
     (command "_.undo" "e")
    )


  3. Bó tay, hiểu chết liền

    Chắc là bạn mới tập tành viết lisp phải ko? Copy ở đâu thì phải

    Cú pháp viết của bạn chưa chuẩn nên lỗi tùm lum

    Vả lại nếu bạn mới viết lisp thì nên viết dialog bằng Tiếng Việt không có dấu để anh em CADVIET có thể sửa lỗi giúp

    Chứ kiểu này thì chịu à.

    KInh nghiệm của tôi thì mới vô viết lisp thì khoan viết hộp thoại đã. Khi nào viết câu cú lệnh líp chuẩn thì mới viết DIALOG


  4. Đây nè bạn ơi. Dễ òm à. Lệnh tắt là TOALOA

     

    (DEFUN EXCUTE (/ n P TX TY)

    (setq str (strcat "\nPhan so le muon lay ["

    (itoa sl)

    "] (press Enter or Space for get default): "

    )

    )

    (setq n (getint str))

    (if (/= n Nil)

    (setq sl n)

    )

    (While T

    (setq P Null)

    (setq caochu 2.00)

    (princ "\nPick a point or press ESC for exit:")

    (setq P (getpoint))

    (if (/= P Nil)

    (progn

    (setq TX (strcat "X=" (rtos (Car P) 2 sl)))

    (setq TY (strcat "X=" (rtos (Cadr P) 2 sl)))

     

    (command "text" "J" "BC" p caochu "0" Tx "")

    (command "text" "J" "TC" p caochu "0" Ty "")

     

    ;;;(command "-INSERT" "TD" P "1" "1" "0" TX TY)

    )

    )

    ) ;End While

    )

    (DEFUN INIT ()

    (if (= sl Nil)

    (setq sl 2)

    )

    )

    (DEFUN C:TOALOA ()

    (INIT)

    (EXCUTE)

    )

    • Vote tăng 1

  5. (defun c:bg (/)

    (setvar "cmdecho" 1)

    (setvar "cmdecho" 0)

    (command "undo" "be")

    (setq osmode (getvar "osmode"))

    (setvar "edgemode" 0)

     

    (setvar "osmode" 32)

    (setq ss (entsel))

    (setq diem (cadr ss))

    (setq pt (getPoint "\nChon diem be gay:"))

    (command "break" ss "f" pt pt)

     

    (setvar "osmode" osmode)

    (command "undo" "e")

    )


  6. Em không hiểu ở đây file descriptor là cái gì ạ , thấy trong ví dụ của AutoCAD có cái đại loại như :

    Thế cái này có giống như address của file kô ạ ?

    I/O functions có phải là Input/Output files không ạ ?

     

    E còn một câu hỏi nữa là làm sao khi dùng ssget để select a line, thì sau đó ta sẽ biết được start point và end point của line được chọn ạ ?

    khi dùng ssget để chọn line thì bạn dùng cú pháp này

    (setq ss (ssget '(

    (-4 . "

    (0 . "LINE")

    (-4 . "AND>")

    )

    )

    )

    sau đó dùng lệnh repeat để tách ra từng line

    (setq x 0)

    (setq caochu 5.00)

     

    (repeat (sslength ss)

    (setq ent (ssname ss x))

    (setq ents (entget ent))

    (setq pt1 (cdr (assoc 10 ents)))

    (setq pt2 (cdr (assoc 11 ents)))

    ;;;từ đây bạn có thể viết tiếp để in ra điểm đầu, cuối của line

    (setq x (+ x 1))

    )

    Keke

×