Đến nội dung


Hình ảnh
- - - - -

các pro giúp mình sửa lisp này với


  • Please log in to reply
9 replies to this topic

#1 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 20 March 2013 - 04:51 PM

mình có lisp xuất tọa độ này,nhưng tọa độ xuất ra là ở 1 block hơi xấu. mình muốn sửa việc xuất các thông số X, Y, tên nút ra block này, Cảm ơn mọi người http://www.cadviet.c...117742_cm_1.dwg


;************************* Ch­¬ng tr×nh chÝnh
(DEFUN C:TOADO()
    (setq os (getvar "OSMODE"))
    (command "UNDO" "G")
    ; T¹o kiÓu ch÷ míi
    (setq cst (getvar "TEXTSTYLE"))
    (command "STYLE" "VNARIALNARROW" ".VNARIAL NARROW" "" "" "" "" "")
    ; ThiÕt lËp kiÓu ghi kÝch th­íc
    (setvar "DIMASZ" 4);kÝch th­íc mòi tªn
    (setvar "DIMTXT" 4); kichs th­íc ch÷
    (setvar "DIMTAD" 0); ch÷ c©n gi÷a
    ; T×m khèi BANGTOADO (nÕu ch­a cã th× t¹o ra)
    (if (not (tblsearch "BLOCK" "BANGTOADO"))
       (progn
        (setvar "OSMODE" 0)
        (setq cla (getvar "CLAYER") cec (getvar "CECOLOR"))
        (setvar "CLAYER" "0")
        (setvar "CECOLOR" "BYBLOCK")
        (setq ssline (ssadd))
        (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 0) '(7.5 13.5) "")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 6.75) '(30.5 6.75) "")
        (ssadd (entlast) ssline)
        (command "CIRCLE" '(3.75 6.75) 3.5)
        (ssadd (entlast) ssline)
        (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0)
        (setq ssatt_sh (ssadd))(ssadd (entlast) ssatt_sh)
        (command "ATTDEF" "" "XXXXXX.XXXX" "To¹ ®é X" "" '(8.1 8.1) 4 0)
        (setq ssatt_xx (ssadd))(ssadd (entlast) ssatt_xx)
        (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0)
        (setq ssatt_yy (ssadd))(ssadd (entlast) ssatt_yy)
        (command "BLOCK" "BANGTOADO" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "")
        (setvar "CLAYER" cla)(setvar "CECOLOR" cec)
       );progn
    );if
    (if (not tenmocChinh)
        (setq tenmocChinh "1")
    );if
    (if (not tenmocPhu)
        (setq tenmocPhu "")
    );if
    (if (not tenmoc)
        (setq tenmoc (strcat tenmocChinh tenmocPhu))
    )
    (if (not sle)
        (setq sle 2)
    );if
    (if (not ShowMode)(setq ShowMode "X"))
    (setq loop T)
    (while loop
        (setvar "OSMODE" os)
        (initget "M T X L"); Mèc - Th­êng - XÞn - Sè lÎ
        (setq mark (getpoint (strcat "\nsè LÎ <" (itoa sle) ">/H×nh thøc (Th­êng/XÞn) <" ShowMode ">/tªn Mèc <" tenmoc ">/<ChØ ®iÓm>: ")))
        (cond
            ((= mark "M")
                (setq tenmoc0 (getstring (strcat "\nTªn Mèc míi (theo d¹ng : 1, 1a, A, A1...) <" tenmoc ">: ")))
                (if (/= tenmoc0 "")
                   (progn
                    ; ph©n tÝch tªn mèc ®Ó nhËn biÕt chÝnh-phô
                    (tachMoc tenmoc0)
                    (if (or (>= (ascii tenmocChinh) 57)(<= (ascii tenmocChinh) 48)); mèc chÝnh lµ ch÷
                        (setq tenmocChinh (strcase tenmocChinh))
                    );if
                    (setq tenmoc (strcat tenmocChinh tenmocPhu))
                   );progn
                );if
            )
            ((= mark "T")
                (setq ShowMode "T")
            )
            ((= mark "X")
                (setq ShowMode "X")
            )
            ((= mark "L")
                (setq sle0 (getint (strcat "\nSè ch÷ sè thËp ph©n (Tèi ®a=2; tèi thiÓu=0) <" (itoa sle) ">: ")))
                (if sle0
                   (progn
                    (if (< sle0 0)(setq sle0 0))
                    (if (> sle0 2)(setq sle0 2))
                    (setq sle sle0)
                   );progn
                );if
            )
            (T
                (if mark
                   (progn
                    (cond
                        ((= ShowMode "T");th­êng
                            (setq toadoX (cadr (trans mark 1 0)))
                            (setq toadoY (car (trans mark 1 0)))
                            (setq p (getpoint mark "\nVÞ trÝ: "))
                            (setvar "OSMODE" 0)
                            (command "LEADER" mark p "" (rtos toadoX 2 sle) (rtos toadoY 2 sle) "")
                            ;(command "PLINE" mark p "@11,0" "")
                            ;(command "TEXT" (list (+ (car p) 0.5) (+ (cadr p) 0.5)) "" "0" (rtos toadoX 2 4))
                            ;(command "TEXT" "TL" (list (+ (car p) 0.5) (- (cadr p) 0.5)) "" "0" (rtos toadoY 2 4))
                        )
                        ((= ShowMode "X");XÞn
                            (setq toadoX (cadr (trans mark 1 0)))
                            (setq toadoY (car (trans mark 1 0)))
                            (setq p (getpoint mark "\nVÞ trÝ: "))
                            (setvar "OSMODE" 0)
                            (command "LEADER" mark p "" "" "Block" "BANGTOADO" p 1 1 0 tenmoc (rtos toadoX 2 sle) (rtos toadoY 2 sle))
                            ; t¨ng gi¸ trÞ mèc
                            (tachmoc tenmoc)
                            (if (= tenmocPhu ""); kh«ng cã mèc phô
                                (if (and (<= (ascii tenmocChinh) 57)(>= (ascii tenmocChinh) 48)); mèc chÝnh lµ sè
                                    (setq tenmoc (itoa (+ (atoi tenmocChinh) 1)))
                                   (progn; else mèc chÝnh lµ ch÷
                                    (setq tenmocASCII (+ (ascii tenmocChinh) 1))
                                    (while (or (= (strcase (chr tenmocASCII)) "I")(= (strcase (chr tenmocASCII)) "O")
                                            (= (strcase (chr tenmocASCII)) "V")(= (strcase (chr tenmocASCII)) "X")
                                            (= (strcase (chr tenmocASCII)) "J"))
                                        (setq tenmocASCII (+ tenmocASCII 1))
                                    );while
                                    (setq tenmoc (chr tenmocASCII))
                                   );progn else
                                );if
                                ;else cã mèc phô
                                (if (and (<= (ascii tenmocChinh) 57)(>= (ascii tenmocChinh) 48)); mèc chÝnh lµ sè (mèc phô lµ ch÷)
                                   (progn
                                    (setq tenmocASCII (+ (ascii tenmocPhu) 1))
                                    (while (or (= (strcase (chr tenmocASCII)) "I")(= (strcase (chr tenmocASCII)) "O")
                                            (= (strcase (chr tenmocASCII)) "V")(= (strcase (chr tenmocASCII)) "X")
                                            (= (strcase (chr tenmocASCII)) "J"))
                                        (setq tenmocASCII (+ tenmocASCII 1))
                                    );while
                                    (setq tenmocPhu (chr tenmocASCII))
                                    (setq tenmoc (strcat tenmocChinh tenmocPhu))
                                   );progn
                                   (progn; else mèc chÝnh lµ ch÷ (mèc phô lµ sè)
                                    (setq tenmocPhu (itoa (+ (atoi tenmocPhu) 1)))
                                    (setq tenmoc (strcat tenmocChinh tenmocPhu))
                                   );progn
                                );if
                            );if
                        )
                    );cond
                    (setvar "OSMODE" os)
                   );progn
                    (setq loop nil);else
                );if
            )
        )    ; end of cond
    )    ; end of while
    (setvar "TEXTSTYLE" cst)
)    ; end of program
 
(Defun C:TD()
    (c:toado)
)
 
;******************************* Thèng kª *****************************************
 
(defun C:TK()
    (command "UNDO" "G")
    (setq tableStatus "")
    (setq btk (ssget "X" '((2 . "BANGTHONGKE"))))
    (if btk
        (setq TableStatus "On Board")
       (progn;else
        (if (tblsearch "BLOCK" "BANGTHONGKE")
            (setq TableStatus "Hiding Block")
            (setq TableStatus "Doesn't Exist")
        );if
       );progn else
    );if
    (if (or (= TableStatus "Doesn't Exist") (= TableStatus "Hiding Block"))
        (setq sp (getpoint "\nX¸c ®Þnh vÞ trÝ gãc trªn-tr¸i cña b¶ng: "))
       (progn ;else (On Board)
        (setq btk_name (ssname btk 0))
        (setq btk_ent (entget btk_name))
        (setq sp (cdr(assoc 10 btk_ent)))
       );progn else
    );if
    (setq luuChu '() luuSo '())
    (setq bang (ssget "X" '((2 . "BANGTOADO"))))
    (if bang
       (progn
        (setq i 1 chu_i 1 so_i 1)
        (repeat (sslength bang)
            (setq b_i (ssname bang (- i 1)))
                ; doc doi tuong thuoc tinh SH
            (setq bi_sh (entnext b_i))
            (setq bi_sh_ent (entget bi_sh))
            (setq sh (cdr(assoc 1 bi_sh_ent)))
                ; ®äc gi¸ trÞ toa ®é X
            (setq bi_X (entnext bi_sh))
            (setq bi_X_ent (entget bi_X))
            (setq X (cdr(assoc 1 bi_X_ent)))    
                ; ®äc gi¸ trÞ toa ®é Y
            (setq bi_Y (entnext bi_X))
            (setq bi_Y_ent (entget bi_Y))
            (setq Y (cdr(assoc 1 bi_Y_ent)))    
                ; cap nhat vao bang luu
            (tachMoc sh)
            (if (and (<= (ascii tenmocChinh) 57)(>= (ascii tenmocChinh) 48)); mèc chÝnh lµ sè
               (progn
                (setq luuSo (cons (list so_i sh X Y) luuSo))
                (setq so_i (+ so_i 1))
               );progn
               (progn ; else mèc chÝnh lµ ch÷
                (setq luuChu (cons (list chu_i sh X Y) luuChu))
                (setq chu_i (+ chu_i 1))
               )
            );if
            (setq i (+ i 1))
        );repeat
        ; s¾p xÕp theo thø tù t¨ng dÇn cña sè hiÖu (SH) trong danh s¸ch luuChu
        (setq i 1)
        (while (<= i (- (length luuChu) 1))
            (setq j (+ i 1))
            (while (<= j (length luuChu))
                (setq SH_tmpi (cadr (assoc i luuChu)))
                (tachMoc SH_tmpi)
                (setq SHi (ascii tenmocChinh))
                (setq SH_tmpj (cadr (assoc j luuChu)))
                (tachMoc SH_tmpj)
                (setq SHj (ascii tenmocChinh))
                (cond
                    ((< SHj SHi); ch÷ sau cã m·  ascii nhá h¬n sè tr­íc th× ®æi chç
                        (setq Xi (caddr (assoc i luuChu)))
                        (setq Yi (cadddr (assoc i luuChu)))
                        (setq Xj (caddr (assoc j luuChu)))
                        (setq Yj (cadddr (assoc j luuChu)))
                        (setq luuChu (subst (list i SH_tmpj Xj Yj) (assoc i luuChu) luuChu))
                        (setq luuChu (subst (list j SH_tmpi Xi Yi) (assoc j luuChu) luuChu))
                    )
                    ((= SHj SHi); cïng tªn mèc - > kiÓm tra mèc phô
                        (tachMoc SH_tmpi)
                        (setq ChisoPhu_i tenmocPhu)
                        (tachMoc SH_tmpj)
                        (setq ChisoPhu_j tenmocPhu)
                        (if (< ChisoPhu_j ChisoPhu_i);sè sau nhá h¬n sè tr­íc th× ®æi chç
                           (progn
                            (setq Xi (caddr (assoc i luuChu)))
                            (setq Yi (cadddr (assoc i luuChu)))
                            (setq Xj (caddr (assoc j luuChu)))
                            (setq Yj (cadddr (assoc j luuChu)))
                            (setq luuChu (subst (list i SH_tmpj Xj Yj) (assoc i luuChu) luuChu))
                            (setq luuChu (subst (list j SH_tmpi Xi Yi) (assoc j luuChu) luuChu))
                           );progn
                        );if
                    )
                );cond
                (setq j (+ j 1))
            );while j
            (setq i (+ i 1))
        );while i
        ; s¾p xÕp theo thø tù t¨ng dÇn cña sè hiÖu (SH) trong danh s¸ch luuSo
        (setq i 1)
        (while (<= i (- (length luuSo) 1))
            (setq j (+ i 1))
            (while (<= j (length luuSo))
                (setq SH_tmpi (cadr (assoc i luuSo)))
                (tachMoc SH_tmpi)
                (setq SHi (atoi tenmocChinh))
                (setq SH_tmpj (cadr (assoc j luuSo)))
                (tachMoc SH_tmpj)
                (setq SHj (atoi tenmocChinh))
                (cond
                    ((< SHj SHi); sè sau nhá h¬n sè tr­íc th× ®æi chç
                        (setq Xi (caddr (assoc i luuSo)))
                        (setq Yi (cadddr (assoc i luuSo)))
                        (setq Xj (caddr (assoc j luuSo)))
                        (setq Yj (cadddr (assoc j luuSo)))
                        (setq luuSo (subst (list i SH_tmpj Xj Yj) (assoc i luuSo) luuSo))
                        (setq luuSo (subst (list j SH_tmpi Xi Yi) (assoc j luuSo) luuSo))
                    )
                    ((= SHj SHi); cïng tªn mèc - > kiÓm tra mèc phô
                        (tachMoc SH_tmpi)
                        (setq ChisoPhu_i (ascii tenmocPhu))
                        (tachMoc SH_tmpj)
                        (setq ChisoPhu_j (ascii tenmocPhu))
                        (if (< ChisoPhu_j ChisoPhu_i);ký tù sau cã m·  ascii nhá h¬n sè tr­íc th× ®æi chç
                           (progn
                            (setq Xi (caddr (assoc i luuSo)))
                            (setq Yi (cadddr (assoc i luuSo)))
                            (setq Xj (caddr (assoc j luuSo)))
                            (setq Yj (cadddr (assoc j luuSo)))
                            (setq luuSo (subst (list i SH_tmpj Xj Yj) (assoc i luuSo) luuSo))
                            (setq luuSo (subst (list j SH_tmpi Xi Yi) (assoc j luuSo) luuSo))
                           );progn
                        );if
                    )
                );cond
                (setq j (+ j 1))
            );while j
            (setq i (+ i 1))
        );while i
        ; bæ sung tiªu ®Ò vµo danh s¸ch
        (setq luuChu (cons (list 0 "Mèc" "X" "Y") luuChu))
 
        ; KÎ b¶ng
        (setq os (getvar "OSMODE"))
        (setvar "OSMODE" 0)
        (setq n (length luuChu) m (length luuSo))
        (setq i 0 dem 0 test nil kc 15 objs (ssadd))
        (repeat (+ n m)
            (if (and (< dem n) (not test))
                (setq luu luuChu test nil)
               (progn
                (setq luu luuSo)
                (if (not test)
                    (setq test T dem 1)
                );if
               );progn
            );if
            ; ghi so hieu
            (setq start (list (car sp) (- (cadr sp) (* (getvar "TEXTSIZE") i 1.8))))
            (command "TEXT" "M" start "" "" (cadr (assoc dem luu)))
            (ssadd (entlast) objs)
            ; ghi X
            (setq start (list (+ (car start) (/ kc 1.5)) (cadr start)))
            (command "TEXT" "M" start "" "" (caddr (assoc dem luu)))
            (ssadd (entlast) objs)
            ; ghi Y
            (setq start (list (+ (car start) kc) (cadr start)))
            (command "TEXT" "M" start "" "" (cadddr (assoc dem luu)))
            (ssadd (entlast) objs)
            ; KÎ ®­êng n»m ngang phÝa trªn
            (command "LINE" (list (- (car sp) (/ kc 5)) (+ (cadr start) (* (getvar "TEXTSIZE") 0.9)))
                    "@35,0" "")
            (ssadd (entlast) objs)
            (setq i (+ i 1) dem (+ dem 1))
        );repeat
        ;vex ddwowngf ker cuoois cungf
        (command "LINE" (list (- (car sp) (/ kc 5)) (- (cadr start) (* (getvar "TEXTSIZE") 0.9)))
                    "@35,0" "")
        (ssadd (entlast) objs)
        ;VÏ ®­êng däc
        (command "LINE" (list (- (car sp) (/ kc 5)) (+ (cadr sp) (* (getvar "TEXTSIZE") 0.9)))
                (list (- (car sp) (/ kc 5)) (- (cadr start) (* (getvar "TEXTSIZE") 0.9)))  "")
        (ssadd (entlast) objs)
        (command "LINE" (list (- (car sp) (/ kc 5) -35) (+ (cadr sp) (* (getvar "TEXTSIZE") 0.9)))
                (list (- (car sp) (/ kc 5) -35) (- (cadr start) (* (getvar "TEXTSIZE") 0.9)))  "")
        (ssadd (entlast) objs)
        (cond
            ((= TableStatus "On Board")
                (COMMAND "BLOCK" "BANGTHONGKE" "Y" sp objs "")
            )
            ((= TableStatus "Hiding Block")
                (COMMAND "BLOCK" "BANGTHONGKE" "Y" sp objs "")
                (command "INSERT" "BANGTHONGKE" sp "1" "1" "0")
            )
            ((= TableStatus "Doesn't Exist")
                (COMMAND "BLOCK" "BANGTHONGKE" sp objs "")
                (command "INSERT" "BANGTHONGKE" sp "1" "1" "0")
            )
        );cond
        (setvar "OSMODE" os)
       );progn
    );if
    (command "UNDO" "E")
)

Bài viết đã được chỉnh sửa nội dung bởi luiz: 21 March 2013 - 05:02 PM

  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 20 March 2013 - 04:59 PM

Những bài như thế này liệu có nên khóa/ xóa/ gửi vô thùng rác k ?? Bạn hời hợt với yêu cầu của bạn quá, đương nhiên chẳng ai mặn mà đâu. Mà tạo nick chỉ để gửi request ngắn ngủi vậy thôi thì buồn lắm ^^


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 20 March 2013 - 07:35 PM

xin lỗi bác ketxu và mọi người nhé, ko phải em có ý request gì cả. em rất thích diễn đàn cadviet nhưng mà hôm nay mới tạo nick để tham gia ( cũng kiếm đc kha khá cái lisp hay trên này rồi ^^). e vừa lập nick hôm nay nên chưa biết cách post bài các bác thông cảm nhé. hjc. mà em đính kèm cái block em nói ở trên rùi mà chả thấy nó đâu nhỉ :(http://www.cadviet.c...3/117742_cm.dwg


  • 0

#4 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 20 March 2013 - 08:41 PM

hic, ko ai giúp à? :(


  • 0

#5 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 20 March 2013 - 09:24 PM

Nếu block bạn dùng lệnh eattext
  • 0

#6 hoandtm

hoandtm

    biết pan

  • Members
  • Pip
  • 6 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 20 March 2013 - 09:40 PM

Chào các bạn. Rất vui khi được tham gia vào Diễn đàn. Mình mới bước chân vào việc Vẽ Mặt Cắt và Bình Đồ. Anh chị nào có phần mềm nào hay Autolisp nào (Có kèm theo hướng dẫn sử dụng) thì giúp em với nhé. PM em theo địa chỉ: Hoanghoan1986@gmail.com. Em xin chân thành cảm ơn các Bác.


  • 0

#7 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 21 March 2013 - 12:14 AM

Những bài như thế này liệu có nên khóa/ xóa/ gửi vô thùng rác k ?? Bạn hời hợt với yêu cầu của bạn quá, đương nhiên chẳng ai mặn mà đâu. Mà tạo nick chỉ để gửi request ngắn ngủi vậy thôi thì buồn lắm ^^

em chỉnh sửa bài viết rùi bác ơi.em mới tham gia nên ko biết post bài,lần sau sẽ khá hơn ^^ .bác ketxu có thể giúp được em vụ này không?


  • 0

#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 21 March 2013 - 10:44 AM

em chỉnh sửa bài viết rùi bác ơi.em mới tham gia nên ko biết post bài,lần sau sẽ khá hơn ^^ .bác ketxu có thể giúp được em vụ này không?

Hề hề hề,

Bạn nói rằng block Toado do lisp tạo ra xấu??? Vậy đẹp là như thế nào?? bạn hãy tự định nghĩa cái đẹp theo quan điểm của bạn và sửa nó vào trong lisp, chứ còn người khác không ai hiểu cái đẹp của bạn đâu.

Đây là đoạn code để tạo ra cái block Toado:

 

 

(if (not (tblsearch "BLOCK" "Toado"))
       (progn
        (setvar "OSMODE" 0)
        (setq cla (getvar "CLAYER") cec (getvar "CECOLOR"))
        (setvar "CLAYER" "0")
        (setvar "CECOLOR" "BYBLOCK")
        (setq ssline (ssadd))
        (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 0) '(7.5 13.5) "")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 6.75) '(30.5 6.75) "")
        (ssadd (entlast) ssline)
        (command "CIRCLE" '(3.75 6.75) 3.5)
        (ssadd (entlast) ssline)
        (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0)
        (setq ssatt_sh (ssadd))(ssadd (entlast) ssatt_sh)
        (command "ATTDEF" "" "XXXXXX.XXXX" "To¹ ®é X" "" '(8.1 8.1) 4 0)
        (setq ssatt_xx (ssadd))(ssadd (entlast) ssatt_xx)
        (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0)
        (setq ssatt_yy (ssadd))(ssadd (entlast) ssatt_yy)
        (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "")
        (setvar "CLAYER" cla)(setvar "CECOLOR" cec)
       );progn
    );if
Trong đó: 
1/- Dòng code  (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c") để tạo khung bao
2/- Dòng code  (command "LINE" '(7.5 0) '(7.5 13.5) "") để tạo nét phân chia ô đứng
3/- Dòng code  (command "LINE" '(7.5 6.75) '(30.5 6.75) "") để tạo nét phân chia dòng ngang.
4/- Dòng code  (command "CIRCLE" '(3.75 6.75) 3.5) để vẽ vòng tròn
5/- Dòng code  (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0) để tạo thuộc tinh thứ nhất là sồ hiệu điểm
6/- Dòng code  (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0) để tạo thuộc tính thứ hai là Tọa độ X
7/- Dòng code  (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "") để tạo thuộc tính thứ ba là tọa độ y
 
Căn cứ vào cái chuẩn đẹp của bạn để hiệu chỉnh các dòng code này cho phù hợp là Ok. 
Bạn hãy thử xem nhé. Chúc thành công

  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 21 March 2013 - 05:05 PM

Hề hề hề,

Bạn nói rằng block Toado do lisp tạo ra xấu??? Vậy đẹp là như thế nào?? bạn hãy tự định nghĩa cái đẹp theo quan điểm của bạn và sửa nó vào trong lisp, chứ còn người khác không ai hiểu cái đẹp của bạn đâu.

Đây là đoạn code để tạo ra cái block Toado:

 

 

(if (not (tblsearch "BLOCK" "Toado"))
       (progn
        (setvar "OSMODE" 0)
        (setq cla (getvar "CLAYER") cec (getvar "CECOLOR"))
        (setvar "CLAYER" "0")
        (setvar "CECOLOR" "BYBLOCK")
        (setq ssline (ssadd))
        (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 0) '(7.5 13.5) "")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 6.75) '(30.5 6.75) "")
        (ssadd (entlast) ssline)
        (command "CIRCLE" '(3.75 6.75) 3.5)
        (ssadd (entlast) ssline)
        (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0)
        (setq ssatt_sh (ssadd))(ssadd (entlast) ssatt_sh)
        (command "ATTDEF" "" "XXXXXX.XXXX" "To¹ ®é X" "" '(8.1 8.1) 4 0)
        (setq ssatt_xx (ssadd))(ssadd (entlast) ssatt_xx)
        (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0)
        (setq ssatt_yy (ssadd))(ssadd (entlast) ssatt_yy)
        (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "")
        (setvar "CLAYER" cla)(setvar "CECOLOR" cec)
       );progn
    );if
Trong đó: 
1/- Dòng code  (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c") để tạo khung bao
2/- Dòng code  (command "LINE" '(7.5 0) '(7.5 13.5) "") để tạo nét phân chia ô đứng
3/- Dòng code  (command "LINE" '(7.5 6.75) '(30.5 6.75) "") để tạo nét phân chia dòng ngang.
4/- Dòng code  (command "CIRCLE" '(3.75 6.75) 3.5) để vẽ vòng tròn
5/- Dòng code  (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0) để tạo thuộc tinh thứ nhất là sồ hiệu điểm
6/- Dòng code  (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0) để tạo thuộc tính thứ hai là Tọa độ X
7/- Dòng code  (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "") để tạo thuộc tính thứ ba là tọa độ y
 
Căn cứ vào cái chuẩn đẹp của bạn để hiệu chỉnh các dòng code này cho phù hợp là Ok. 
Bạn hãy thử xem nhé. Chúc thành công

cảm ơn bác nha.em mới tham gia diễn đàn nên mù mờ về phần lisp này lắm. em làm thử rồi nhưng mà cái mốc tọa độ nó nhảy lung tung bác ạ (gà quá hjx), nghĩa là tọa độ X thì nó lại nhảy vào ô nút, tọa độ Y thì nó lại xuống ô X   Em muốn nó vào đúng thứ tự như trong cái block em gửi kèm nè bác xem có cách nào khắc phục đc ko.em chưa đủ khả năng + tgian nghiên cứu về lisp nên gà mờ quá . có thể là cái block thuộc tính này em làm sai thì phải. khi nào rảnh tay bác xem lại giùm em với nha. Nhân tiện em hơi tham lam tí bác xem giúp em cái đoạn code thống kê luôn (em edit ở trên kia rùi hihi).tks bác đã quan tâm


  • 0

#10 luiz

luiz

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 23 March 2013 - 09:53 PM

Hề hề hề,

Bạn nói rằng block Toado do lisp tạo ra xấu??? Vậy đẹp là như thế nào?? bạn hãy tự định nghĩa cái đẹp theo quan điểm của bạn và sửa nó vào trong lisp, chứ còn người khác không ai hiểu cái đẹp của bạn đâu.

Đây là đoạn code để tạo ra cái block Toado:

 

 

(if (not (tblsearch "BLOCK" "Toado"))
       (progn
        (setvar "OSMODE" 0)
        (setq cla (getvar "CLAYER") cec (getvar "CECOLOR"))
        (setvar "CLAYER" "0")
        (setvar "CECOLOR" "BYBLOCK")
        (setq ssline (ssadd))
        (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 0) '(7.5 13.5) "")
        (ssadd (entlast) ssline)
        (command "LINE" '(7.5 6.75) '(30.5 6.75) "")
        (ssadd (entlast) ssline)
        (command "CIRCLE" '(3.75 6.75) 3.5)
        (ssadd (entlast) ssline)
        (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0)
        (setq ssatt_sh (ssadd))(ssadd (entlast) ssatt_sh)
        (command "ATTDEF" "" "XXXXXX.XXXX" "To¹ ®é X" "" '(8.1 8.1) 4 0)
        (setq ssatt_xx (ssadd))(ssadd (entlast) ssatt_xx)
        (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0)
        (setq ssatt_yy (ssadd))(ssadd (entlast) ssatt_yy)
        (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "")
        (setvar "CLAYER" cla)(setvar "CECOLOR" cec)
       );progn
    );if
Trong đó: 
1/- Dòng code  (command "PLINE" '(0 0) '(30.5 0) '(30.5 13.5) '(0 13.5) "c") để tạo khung bao
2/- Dòng code  (command "LINE" '(7.5 0) '(7.5 13.5) "") để tạo nét phân chia ô đứng
3/- Dòng code  (command "LINE" '(7.5 6.75) '(30.5 6.75) "") để tạo nét phân chia dòng ngang.
4/- Dòng code  (command "CIRCLE" '(3.75 6.75) 3.5) để vẽ vòng tròn
5/- Dòng code  (command "ATTDEF" "" "SH" "Sè hiÖu" "" "Middle" '(3.75 6.75) 4 0) để tạo thuộc tinh thứ nhất là sồ hiệu điểm
6/- Dòng code  (command "ATTDEF" "" "YYYYYY.YYYY" "To¹ ®é Y" "" '(8.1 1.1) 4 0) để tạo thuộc tính thứ hai là Tọa độ X
7/- Dòng code  (command "BLOCK" "Toado" '(0 0) ssline ssatt_sh ssatt_xx ssatt_yy "") để tạo thuộc tính thứ ba là tọa độ y
 
Căn cứ vào cái chuẩn đẹp của bạn để hiệu chỉnh các dòng code này cho phù hợp là Ok. 
Bạn hãy thử xem nhé. Chúc thành công

Hjx, ko được ah bác phamthanhbinh ơi


  • 0