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

nguyentuyen6

Nhà quảng cáo
  • Số lượng nội dung

    212
  • Đã tham gia

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

  • Ngày trúng

    3

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


  1. Được rồi bạn ah dowload nhầm ^^. mình sẽ thử có gì mình sẽ PM lai

    MÌnh tưởng nó bị trùng lệnh nên định nghĩa thêm vài cái lệnh cho bạn chọn, hì. bạn sửa đc rồi thôi thì mình Post lại lên #1 cho ai dùng thích đánh lệnh là gì thì đánh :lol:

     

    PS : Mình vừa sửa 1 số lỗi trong phần PLOT to File của Líp. Bạn nào down rồi thì down lại giúp mình nhé. Nếu không khi chọn đường dẫn là nó lưu sai chỗ.

    Và sửa phần SORT đối với lệnh in nhé. Nếu ko là nó ko sếp theo thứ tự đâu!!!

    MOng các bạn thông cảm :wacko: Úpdate ở #1 nhé


  2. em cũng ko biết. nhưng nếu bác nghiên cứu jùm cái đó thì nhất định em ko chỉ thanks bác 1 lần đâu.

    hehhe. em thì ko biết gì về VBA nhưng em thấy nó tương tác trên nhiều BV độc lập được thì in chắc cũng có cách chứ ah

    Ha!! MÌnh cũng ko biết gì VBA cả bạn ah. :wub:

    Tiện thể sửa thêm 1 chút là: sau khi PREVEW xong thì sẽ ko thoát khỏi Lisp luôn. :D. Đã úp ở #1

     

    -Mình nghĩ cái này cũng có thể làm đc in trong cùng 1 Folder

    Tạo 1 file .txt lưu: tên máy in, khổ giấy,tên block khung tên. 1 file lisp mà cứ load lên là in luôn (líp này lấy tên máy in + khổ giấy + tên block khung tên ở trong file .TXT). Rồi dùng cái ScriptPro của bác Hoành giới thiệu ở đây rồi chạy.

    http://www.cadviet.com/forum/index.php?showtopic=10618

    Nghĩ vậy nhưng chưa thử :lol:


  3. Mình mới thêm phần Plot to File để chọn đường dẫn lưu file khi in ra PDF :D

    Update ở #1 nhé!!!

     

    Bạn nghiên cứu thử cái method plotToFile xem.

    Thank bạn nhiều!!Mình mò được cái đấy rồi. Nhưng cái phải in mồi 1 phát đầu = lệnh Plot thì ko biết sửa cách nào cả

     

    Cái này in scale to fit hả bạn?

    mình muốn in đúng tỉ lệ 1:1 thì làm sao?

    muốn chuyển sang landscape làm thế nào?

    Có thể thêm plot stamp vào ko?

    - Líp Tự nhận landscape và Portrail

    - Mình đặt nó là Scale To Fit Bạn ạh!!!

    - Còn cái in theo tỷ lệ thì mình đang làm bạn ạ!

     

    Mình sử dụng với block thì bị lỗi này :)

    Mình cũng ko hiểu sao lại bị bạn ạ, hehe. Hay bạn thử với cái block khác hoặc Load lại líp xem dc ko :lol:. Nếu vẫn ko đc thì bạn gửi mình cái Block khung ý để mình thử Debug nó trong Vlide xem.

    Thank!!!

    • Vote tăng 2

  4. Mình thấy còn 1 số vấn đề:

    1. Chọn Prin method là Rec thì preview thêm các đối tượng không cần thiết của mỗi bản vẽ, rồi mới tới toàn bộ bản vẽ cần in.

    2. Mình chưa hiểu Prin method: Block

    Chủ topic giải đáp dùm nhé. Thanks.

    Mà hình như cách này nhanh hơn cách in thủ công 1 tí. Chưa in thử ra máy in, không biết có lỗi gì không?

     

    Cảm ơn bạn đã góp cho mình!

    1. Nếu bạn chọn Rectangle thì khi bạn chọn khung tên thì chỉ chọn cái Rectangle ở ngoài cùng của khung tên thôi thì sẽ ko bị in những cái thừa. Do mình để nhận biết cái Rec.... đó là LWPOLYLINE thôi. Có lẽ thêm cái là LWPOLYLINE đó phải có 4 vectex nữa thì chắc hơn nhỉ. :rolleyes:

    2. Còn cái lựa chọn là block: Thuờng thì khung tên được cho vào block cho dễ chỉnh sửa. Bạn chọn nút Pick để lấy tên của block khung tên mẫu rồi làm cũng như Rectangle thôi.

    Cái này nhanh hơn vì nó có thể in nhiều bản vẽ 1 lúc mà chỉ mất 1 lần chỉnh thôi bạn ạ.

     

    Mình cũng test thử trên máy cty mình rồi thì thấy chạy tốt. Nhưng có 1 cái là nếu chọn xuất ra PDF thì phải in mồi thủ công 1 phát đầu = lệnh PLOT rồi mới in được bằng Líp này ( Chỗ này mình chả hiểu tại sao ). Với lại mình cũng ko biết cách làm sao để chỉnh được chỗ để lưu File PDF đó. Toàn phải vào Options của Cad để chỉnh thủ công. Mình cũng đã thử sửa cái đường dẫn đó = cách vào Registry mà không được, :wub:


  5. Muốn tự viết cái Lisp in cho mình nên em mới viết cái Lisp này. Các bác cho em nhận xét.

    - Do chỉ dùng cad trên Model và không biết về LayOut nên bác nào dùng trong layout thấy không được cũng đừng hỏi nhé ( mình không biết để trả lời đâu ). sorry

    Sử dụng: Dùng để in nhiều bản vẽ trong 1 file cad (dwg) mà chỉ phải chỉnh 1 lần.

     

    Cập nhật:

    23/11/2014:

    http://www.mediafire.com/download/8ofyvcxpu7sfgu6/TPL-DNM.VLX

    Cho phép chọn cả khung tên dynamic ( bạn nào không dùng khung dynamic thì không cần phải down lại)

    Nếu bị lỗi thì dùng bản  10/7/2014 hoặc 11/3/2012

    10/7/2014: - Sửa lỗi in nhiều bản vẽ,

    - Thêm chọn nhiều block làm khung tên bằng cách ghi vào ô Name . VD: tenblock1,tenblock2,tenblock3 ( Tối đa 3 block, cách nhau bằng dấu , . Không chấp nhận khoảng trắng).

    5/7/2014: - Thêm lựa chọn in tất cả các đối tượng trong bản vẽ

    4/7/2014: - Thêm mục Load PlotStyle, Drawing Orientation ( Auto, Portrait, Landscape) ...bla...bla

    1/7/2014: - Thêm mục "Nums of Copy". Dùng để in bản vẽ thành nhiều bản.

    - Thêm lựa chọn in trong nút "Preview".

    ---------------------------------------------------------------------------

    11/3/2012: - Thêm lựa chọn "All" trong mục Print Method. Cho phép nhận nhiều đối tượng khác nhau làm khung in.
    Chú ý: Không chọn được các đối tượng là: Text, Mtext, Dim, Xline, Leader, Line, Ray.
    + Khi chọn All thì thứ tự sắp sếp bản vẽ trong mục Sort sẽ chạy không đúng trong một số trường hợp.( Nên để Normal rồi Pick chọn từng cái :P )
    10/3/2012: -Thêm chức năng "Plot scale". Có thể chọn in theo các tỷ lệ khác nhau.
    - Sửa vài chỗ linh tinh.
    8/3/2012: Thêm chức năng Pick layer. Thay thế các hàm Acet = lisp giúp không cần cài Express tools
    + 2011:
    - 20/4: Sửa lỗi
    - 18/4: Sửa lỗi+ thêm phần Plot offset
    - 16/4: Sửa lỗi trong phần PLOT to File, khi chọn đường dẫn bị lưu sai chỗ. Sửa phần SORT đối với lệnh in ko xếp theo thứ tự!!!


    Download: ( Tên Lệnh: TPL hoặc IN hoặc MP )

    TPL-IN-MP (New 10/7/2014)

    TPL-IN-MP (12/3/2012)

    Hướng dẫn:

    7377_7152014_111258_pm_1.jpg

    1: Chọn tên máy in, khổ giấy, plotstyle cần in

     // STYLESMANAGER Nút Add để tải PlotStyle có sẵn ( Tên không được trùng với PlotStyle đã có)
    2: Có 3 lựa chọn :
    ------Block: Khi chọn, vùng in sẽ nằm trong block chọn. Để lấy block mẫu ấn vào nút Pick
    ------Rectangle: Khi chọn, vùng in sẽ nằm trong rectangle( có layer ở khung layer).
    ------All: Cho phép nhận nhiều đối tượng khác nhau làm khung in.
    Chú ý: Không chọn được các đối tượng là: Text, Mtext, Dim, Xline, Leader, Line, Ray.
    3: Chức năng "Plot scale" . Chọn Custom in theo các tỷ lệ khác nhau. ( Numerator : Tử,  Denominator: Mẫu)
    4: Khi muốn xuất ra PDF thì chọn đường dẫn lưu File. Khi in ra, nếu không thấy file .pdf thì in "mồi" 1 lần = lệnh .plot rồi thử lại (chưa biết cách khắc phục)
    5: Sắp xếp in:
    ------ Normal: cái nào chọn trước in trước
    ------ Left->Right : in từ trái sang phải bất kể chọn cái nào trước
    ------ Top->Bottom : in từ trên xuống dưới bất kể chọn cái nào trước.
    6: Chỉnh Plot Offset
    Thank!!!. Các bác gặp lỗi gì thì thông báo giúp e nhé, e sẽ tìm cách khắc phục.
    P/s: Lisp bị lỗi khi trong bản vẽ có block anonymous (Các bạn search trên diễn đàn cách biến block anonymous thành block thường)

    • Like 3
    • Vote tăng 38
    • Vote giảm 2

  6. Mình có cái Lisp như thế này:

    (defun c:test ()
    (setq dcl_id (load_dialog "test1.dcl"))
     ;;;--- Load the dialog definition if it is not already loaded
     (if (not (new_dialog "TEST1" dcl_id ))
       (progn
    	(alert "The TEST1.DCL file could not be loaded!")
         (exit)
       )
     )
    	;;;--- If an action event occurs, do this function
     (action_tile "pick" "(setq ddiag 1)(done_dialog)")
     (action_tile "cancel" "(setq ddiag 2)(done_dialog)")
     (start_dialog)
     (unload_dialog dcl_id)
     ;;;--- If the user pressed the PICK button
     (if(= ddiag 1)
       (Pick)
     )
     ;;;--- If the user pressed the Cancel button
     (if(= ddiag 2)
       (princ "\nCancelled!")
     )
     (princ)
    )
    (defun Pick(); Pick chon blok
     (setq	maublk (car (entsel "\nChon Block khung ten: "))
     )
    )

     

    DCL:

     

    TEST1 : dialog {
             label = "TESS1";
               : boxed_row {
                 : button {
                   key = "pick";
                   label = " PICK ";
                   is_default = true;
                 }
                 : button {
                   key = "cancel";
                   label = " Cancel ";
                   is_default = false;
                   is_cancel = true;
                 }
    
             }
    }

     

    Cho e hỏi làm sao để sau khi chọn nút Pick thì nó lại hiện lên bảng chọn tiếp!!!


  7. Bạn thử cái này xem:

    Cái này là dùng phím 1 để chuyển đối tượng được chọn về layer: THAY

    Bạn muốn thêm các nét khác thì làm tương tự

     

    (defun c:1 (/ lyr i)
    (princ "\nChon doi tuong muon chuyen ve net: Thay")(princ)
    (Taolayer)
    (setq ss (ssget)
    	   i 0)
    (while (< i (sslength ss))
      (setq lyr (ssname ss i))
      (entmod (subst (cons 8 "thay") (assoc 8 (entget lyr)) (entget lyr)))
      (setq i (1+ i))
    );_ end while
    );_ end defun
    ;;;;;;;;;;;;;;;;;;
    (defun Taolayer() 
    (setq tbl (tblsearch "layer" "thay"))
    (if (= tbl nil) (command "-layer" "n" "thay" "c" "2" "thay" ""))
    )


  8. Tôi không biết cách đặt chiều cao text của dimension trực tiếp bằng lisp.Chi biết phải đặt trong dimstyle thôi. Anh nào biết chỉ dùm với.

    Làm thủ công thì dùng lênh DDEDIT hay vào property sửa. Nếu làm thủ công đc thì lisp phải làm được các anh nhỉ?

     

    Bạn thử cái này nhé:

     

    Với Dim có entname là Obj:

     (vlax-put-property (vlax-ename->vla-object Obj) 'textheight chieucaotext)

    • Vote tăng 2
×