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

dovananh.xd

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

    185
  • Đã tham gia

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

Bài đăng được đăng bởi dovananh.xd


  1. Sau mấy ngày làm thử kết quả mình làm nó ra thế này. vẫn ko như ý muốn. Dovananhxd xem giúp mình lỗi chỗ nào nha

    file cad:

    http://www.cadviet.c...106444_test.dwg

    kết quả in được là thế này" mình đánh thứ tự nó in ra"

    http://www.cadviet.c...44_kqintest.zip

    các file trong file zip là những gì thế, mở thế nào? sao không xuất sang PDF ấy!


  2. OK, mình update giúp bạn đây, hy vọng bạn vừa ý

    ;; free lisp from cadviet.com : ketxu update from @Tue_NV(defun c:shbv(/ dau tong po po1 ent i pre sotong)(prompt "\n Danh so hieu ban ve dang n/m ")(setvar "cmdecho" 0)(setq pre "< KC, CN KT>: ")(wtxt pre '(0 0 0))(command "ddedit" (entlast) "") (setq pre (cdr(assoc 1 (entget(entlast)))));(setq pre (strcat pre ": "))(entdel (entlast))(setq dau (getint "\n Danh so bat dau (n):"))(setq tong (getint "\n Danh so tong (m):") i 1)(if (< tong 10) (setq sotong (strcat "0" (itoa tong))) (setq sotong (itoa tong))) (setq po (getpoint (strcat "\n Cho diem chen cua so: " (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong)))(wtxt (strcat (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong) po)(Repeat (- tong dau)(setq po1 (getpoint po (strcat "\n Cho diem chen cua so: " (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)))(command "copy" "L" "" po po1) (setq ent (entget(entlast)))(setq ent (subst (cons 1 (strcat (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)) (assoc 1 ent) ent))(entmod ent)(setq i (1+ i))(setq po po1))(princ));(defun wtxt(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p(setq    sty (getvar "textstyle")    d (tblsearch "style" sty)    h1 (cdr (assoc 40 d))    h2 (cdr (assoc 42 d))    wf (cdr (assoc 41 d)))(if (> h1 0) (setq h h1) (setq h h2))(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 4)(cons 11 p) (cons 1 txt) (cons 10 p))))

    Lisp này hay rồi nhưng nếu cách thức hoạt động dạng array như lisp dsbv của bác Tue_VN thì hay quá.

    Mong các pro thêm phần này vào nữa.

    P/S: phần số thì thay đổi theo cấp số cộng, còn phần chữ thì cố định, và tùy ý người sử dụng chọn. Vd: abc-01 hoặc xyz-01


  3. Bạn gom hết y/c làm 1 lần luôn thể. Đừng cứ 5-10 phút sinh ra 1 y/c thì người giúp bạn rất nản chí đó.

    Hãy test thử nhiều lần đi, rồi y/c lại lần chót, thật cụ thể. Bạn Thanhduan, hoặc tôi, hoặc ai đó sẽ giúp bạn nếu có thể.

    Yêu cầu của em thì em viết bên topic yêu cầu nhưng chưa ai trả lời, tiện thể bác thanhduan viết đây thì em xin luôn ở đây. Nhưng lisp bác thanhduan viết lại (mới post lên) thì cũng tương tự như đầu topic này, và gần đáp ứng được yêu cầu của em ở topic này:http://www.cadviet.com/forum/index.php?showtopic=62655&hl=&fromsearch=1.

    Còn trong topic này thì cái lisp mới đây chỉ cần sửa thêm một chút nữa đó là:

    1/ Chiều cao text có thể thay đổi (hình như ở dòng: (setq h 2) ;;;;Chieu cao chu (Ten so hieu ban ve)

    2/ Text ghi ra trung với style name của style hiện hành (Như lisp trên thì nó chỉ ghi ở style standard)

    3/ Text có căn lề là "MC"

    4/ Sau khi hoàn thành lệnh, đóng file CAD lại và không lưu.


  4. ai trả lời cũng được mà, quan trọng gì đâu ạ.

    Bây h em muốn thay đổi dòng: (setq h 2) ;;;;Chieu cao chu (Ten so hieu ban ve) bằng dòng lệnh "\n Chon chieu cao text:" và khi text in ra mặc định là "Middle Centre" bác chỉ luôn em, em sửa, vừa sửa vừa học luôn chắc là sửa ở dòng này: hoặc sau dòng này: (setq txt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau))))


  5. Sửa cụ thể thế nào hở bác? em chưa hiểu ngôn ngữ lập trình.

    Còn vấn đề này nữa, khi chèn text vào thì nó mặc định là Standard, bây h em muốn nó là font chữ đang hiện hành, ví dụ như: style name là: ".VnAvantH", font là ".VnAvantH" luôn và căn lề của text là "MC"

    Và đây nữa: bác thay chỗ dòng này nhé:

     

    (command "plan" "w")

    (command "PSPACE")

    (setvar "OSMODE" olmode)

    (command "undo" "end")

    bằng dòng lệnh sao cho nó close lại file cad và không lưu.

     

    Giúp em với, sắp được rồi. hihi;))


  6. Hàm alignspace nằm trong file "aspace.lsp" thuộc Tool Express. Bình thường nó chưa được load. Muốn đưa hàm này vào lisp cần phải thêm dòng này

    vào đầu lisp (load "aspace") để load nó, khi đó hàm alignspace mới có hiệu lực.

    Rất nhiều hàm trong Tool Express không thể sử dụng được ngay đâu!

    Thanks bác nhé, em làm được rồi.

    À này bác Doan Van Ha ơi, nếu mình muốn bỏ stt bản vẽ/ tổng bản vẽ thì sửa thế nào?


  7. (defun c:ikn (/ olmode pre D1 D2 ent i dsdinh) ;;;In khung nghieng
    (vl-load-com)
    (command "undo" "be")
    (setq olmode (getvar "OSMODE"))
    (setvar "OSMODE" 1)
    (setq h 2)   ;;;;Chieu cao chu (Ten so hieu ban ve)
    (setq pre "< KC, CN KT>: ")
    (entmake (list (cons 0 "TEXT") (cons 40 h) (cons 1 pre) (cons 10 '(0 0 0))))
    (command "ddedit" (entlast) "")
    (setq pre (cdr(assoc 1 (entget(entlast)))))
    (entdel (entlast))
    (setq dau (getint "\n Danh so bat dau (n):"))
    (command "PSPACE")
    (setq
      		po  (getpoint "\nChon vi tri dat so hieu ban ve :  ")
    D1 (getpoint "\nChon diem thu nhat: ")
    D2 (getpoint "\nChon diem thu hai: ")
    
    )
    (command "MSPACE")
    (setq ent (entsel "\nChon pline "))
    (setq i 0)
    (setq dsdinh (acet-geom-vertex-list (car ent)))
    (setq n (/ (length dsdinh) 2))
    (if ent
     (progn
      (repeat n
     	(alignspace (nth i dsdinh)(nth (1+ i) dsdinh) D1 D2)
     	(command "PSPACE")
     	(setq txt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" (if (< n 10) (strcat "0" (rtos n 2 0)) (rtos n 2 0))))
     	(entmake (list (cons 0 "TEXT") (cons 40 h) (cons 1 txt) (cons 10 pO)))
    	(setq Elast (entlast))
    	(command "_plot" "" "" "" "" "" "" "")
     	(command "erase" Elast "")
    	(command "MSPACE")
     	(setq dau (+ dau 1))
    	(setq i (+ i 2))
      )
      )
    )
    (command "plan" "w")
    (command "PSPACE")
    (setvar "OSMODE" olmode)
    (command "undo" "end")
    (princ)
    )
    
    

    Bạn vẽ Pline đi qua 2 góc dưới cùng của bản vẽ và khi kích chọn điểm thứ nhất và điểm thứ 2, bạn kích chọn 2 điểm bên dưới của Mview để nó sẽ lấy 2 điểm dưới cùng của bản vẽ vừa khít với cạnh dưới cùng của Mview. Bạn hiểu lisp thì bạn sẽ làm được thôi. Mình tranh thủ gửi cho bạn.

    P/s: Bạn nên tìm hiểu phần đánh số hiệu bản vẽ của bác Thaistress...gì gì đó. Lâu rồi ko vào nên quên. Sorry bác ý. Hii

    Nó báo lỗi thế này bác ạh:

    Chon pline ; error: no function definition: ALIGNSPACE


  8. Tình huống 2 này mình chưa rõ lắm, viewport 2 mình zoom tỉ lệ khác viewpost 1 nên cách trên của kj3mma ko làm dc.

    Bạn tạo dimstyle, và ghi chú toàn bộ bên layout thì nó đồng nhất thôi, tạo dimstyle bên lay out thì chỉ cần một style là đủ, không cần đặt nhiều tỷ lệ làm gì cả

    Còn nó không đồng nhất là do tỷ lệ mỗi khung MV khác nhau thì nó scale cũng khác nhau mà.


  9. 1). Tiếc là tôi không biết dịch (mà lỡ biết dịch thì cũng không dám dịch, bởi người ta đã chuyển qua fas là có ý định rồi).

    2). Tôi không rành lắm về khoản in ấn nên rất tiếc không giúp bạn được. Bác nào biết thì giúp bạn ấy với. Hy vọng tôi sẽ giúp được bạn ở công việc khác sau này.

    Thân thương!

    Hehe, cám ơn bác nhé!

×