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

hoquangvinh

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

    215
  • Đã tham gia

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

  • Ngày trúng

    3

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


  1. Mình đã tìm trên diễn đàn và Google rồi nhưng hoặc là chưa thấy hoặc là chưa đúng với ý đồ của mình

    Nếu ai biết nội dung đã có thì chỉ hộ mình với còn không thì mình nhờ viết hộ lisp copy giá trị text này sang text khác đã có như sau:

    1. Tên lệnh.

    2. Chọn đối tượng text cần copy.

    3. Chọn đối tượng text cần paste (có thể 1 hoặc nhiều đối tượng).

    4. Kết thúc lệnh.

    Nếu đc thì có thể đổi màu cho text đã gán giá trị mới thì tốt.

    Cảm ơn cả nhà!


  2. bác có video nào không bác HOÀNH hướng dẫn vụ xref khung tên với block att mà vẫn sửa đc ko em làm hoài ko đcj

    cái này mình nhớ trên diễn đàn đã có đề cập rồi đó

    mình làm theo cách này:

    b1: xrep khung tên bình thường

    b2: bổ sung đối tượng att vào khung tên đã xrep

    b3: block khung tên xrep đã có đối tượng att

    vậy là ta đã xrep được block att rồi


  3. e tìm trên các blog ko thấy a dùng một thời gian rồi

    hiện e có dùng cái lispdd của a nhưng ko hiểu sao vẫn chưa chạy ngon hoàn toàn được

    nó chỉ chạy được có 2 lisp e thêm vào còn các lisp khác thì ko chạy được

    e cũng hỏi thêm các định dạng .arx và .fas thì có load được như thế ko a và cái file lispdd.mns e có sửa rồi nhưng load nó ko lên và mất luôn menu "lispdd"

    file của e đây có thời gian nhờ a check hộ với ạ

     

    Expand ▼

    http://www.cadviet.c...0811_lispdd.rar

    thanks a

    • Like 1

  4. Đá nhầm sân rồi bạn. Qua đây nhé!

    http://duy782006.blogspot.com/search/label...g%20h%E1%BB%A3p

    e tìm trên các blog ko thấy a dùng một thời gian rồi

    hiện e có dùng cái lispdd của a nhưng ko hiểu sao vẫn chưa chạy ngon hoàn toàn được

    nó chỉ chạy được có 2 lisp e thêm vào còn các lisp khác thì ko chạy được

    e cũng hỏi thêm các định dạng .arx và .fas thì có load được như thế ko a và cái file lispdd.mns e có sửa rồi nhưng load nó ko lên và mất luôn menu "lispdd"

    file của e đây có thời gian nhờ a check hộ với ạ

     

    http://www.cadviet.com/upfiles/5/50811_lispdd.rar

    thanks a


  5. -Bạn nên viết các dữ liệu và menu (nói chung là mọi thứ) trong 1 thư mục nhất định nào đó không cần đưa vào thư mục support, như vậy giải quyết được vấn đề chép dữ liệu.

    -Chỉ cần viết 1 file acaddoc.lsp để load các thứ của bạn. File này copy vào thư mục cài đặt cad là được rồi (gần như các máy thư mục này như nhau), giải quyết luôn được phần load tự động các lisp của bạn.

    -Bạn tham khảo file acaddoc.lsp của mình về việc load menu, lisp và tạo đường dẩn cho tiện ích của bạn:

     

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

    (Defun C:run ( )

    (setq OD (GETENV "ACAD"))

    (setq NEW (strcat OD ";E:\\tienich\\dcl;E:\\tienich\\dwg;E:\\tienich\\hdt;E:\\tienich\\tvnd;E:\\tienich\\tvct"))

    (setenv "ACAD" NEW)

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

     

    Tạo đường dẩn đến các thư mục cố định của bạn.

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

    (load"e:/tienich/lenh/thuvienndung")

    (load"e:/tienich/lenh/thuvienchitiet")

    (load"e:/tienich/lenh/tienichchonht")

    (load"e:/tienich/lenh/thongke")

    (load"e:/tienich/lenh/tienichdimht")

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

     

    Load các lisp của bạn.

     

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

    (defun S::STARTUP ()

    (setq tinhtrangmenutienich (menugroup "tienich"))

    (Cond

    ((= tinhtrangmenutienich nil)

    (setq duongdanmenutienich (strcat odiachay "\\tienich\\filehethong\\tienich.mns"))

    (command "_menuload" duongdanmenutienich)

    (menucmd "P13=+tienich.pop1")

    )

    ((/= tinhtrangmenutienich nil)

    )

    )

     

    (Princ)

    )

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

     

    Load menu của bạn.

     

    e muốn hỏi lại các bước này.

    e chỉ muốn load 1 folder có chưa các file lisp thôi, cũng sửa lại giống như bác đã trình bày nhưng chưa có file .mns và .pop1 nữa thì lisp load các lệnh có chạy được ko

    e sửa như sau các bác check hộ với

    Paste các dòng lisp vào ko hiển thị được nên phải up file lên, nhờ các bác xem giúp

    [ code];----------------------------

    (Defun C:run ( )
    (setq OD (GETENV "ACAD"))
    (setq NEW (strcat OD ";E:\\Lisp_cad"))
    (setenv "ACAD" NEW)
    ;--------------------------
     
    T?o du?ng d?n d?n các thu m?c c? d?nh c?a b?n.
    ;---------------------------
    (load"e:/Lisp_cad")
     
    ;---------------------------
     
    Load các lisp c?a b?n.
     
    ;--------------
    (defun S::STARTUP ()
    (setq tinhtrangmenutienich (menugroup "Lisp_cad"))
    (Cond
    ((= tinhtrangmenutienich nil)
    (setq duongdanmenutienich (strcat odiachay "\\Lisp_cad\\Lisp_cad.mns"))
    (command "_menuload" duongdanmenutienich)
    (menucmd "P13=+Lisp_cad.pop1")
    )
    ((/= tinhtrangmenutienich nil)
    )
    )
     
    (Princ)
    )
    ;-------------------
     
    Load menu c?a b?n.[ /code]
     
     

    http://www.cadviet.com/upfiles/5/50811_load_lisp.lsp


  6. 122369_untitled.jpg

    xin lỗi anh em cadviet có lisp nào load dươc đường dẫn như trên hình không ạ

    thay cho thao tac: Lệnh Options> chọn Files> chọn + Support File Search Path> Add> Browse> chọn folder chứa các "đồ nghề"> OK> 

    sao cách này mình đã làm rồi cũng ko được nhỉ

    dù bên tab system mình cũng đã chọn "load acad.lsp with every drawing" rồi

    muốn load 1 folder lisp mà làm mãi vẫn chưa được, mong các cao thủ chỉ giáo thêm với


  7. Hiện tại mình đã tạo được cho mình 1 bộ Tool Lisp tương đối hoàn chỉnh và cho vào trong 1 thư mục đặt ở ổ C:\\.

    Vướng mắc cuối cùng của mình là viết ra một hàm lisp load cái menu của mình lên khi mình gọi lệnh.

    Ví dụ cho rõ ràng chút:

    -- Mình tạo một hàm lisp có chức năng thực hiện 3 việc sau:

    1. Bước đầu, load 1 lisp tổng có chứa tất cả các lệnh cần thiết. (để lấy đường dẫn cho bước 2).

     

    2. Add vào trong Support File Search Path đường dẫn đến thư mục chứa những thứ kèm theo khi dùng lisp (như: file dwg, dialog...).

     

    3. Load menu đã tạo sẵn lên thanh công cụ của CAD.

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

    Ý 1 và 2 đã giải quyết xong, còn ý 3 nữa là xong mà mò mẫm hoài không ra được. Mọi người giúp giùm nhá.

    Àh!!! Nhớ là cả 3 bước này được thực hiện trong 1 lần gọi lệnh nhá. Ví như ta gõ trên command: RUN [enter] ----> Lisp sẽ thực hiện cả 3 bước trên.

    ---- Đợi comment thôi ...... :)

     

    bạn có thể nói rõ hơn ý 1 của bạn ko mình cũng đang muốn tập hợp lại một số lisp hay dùng

    mình cũng có ý định giống bạn nhưng bước 3 thì mình muốn dùng file CUI thôi

    search mãi mà chưa thấy bước 1 ở đâu cả


  8. Em cũng mới học autocad và đang làm đồ án môn học mong Anh chị giúp đỡ em ạ.

    Em dùng lệnh ctrl + C  coppy hình vẽ từ bản cad này sang bản cad em làm thì kích thước không đúng ạ. lúc thì to quá, lúc thì nhỏ quá

    khi em chuyển sang cad 2015 thì nó coppy cả bản vẽ :(http://www.cadviet.com/upfiles/5/148333_drawing2.dwg. 

    em không biết chỉnh sửa như thế nào. ai chỉ giúp em với.

    không biết trên cad 2015 thì thế nào vì a không có test, a test trên cad 2008 thì ok hết.

    copy: khoanh chọn đối tượng cần copy xong mới Ctrl+C khi đó Ctrl+V là được bình thường

    cả 2 cách đều được nhưng a hay dùng cách trên

    paste của e lại bị biến thành block (giống như dùng Ctrl+Shift+V)

    block của e không hiểu sao nó bị scale lên nhiều lần và bị xoay góc

    http://www.cadviet.com/upfiles/5/50811_sua_copydwg.dwg


  9. Viết nhanh cho bạn đây.

     
    ;Doan Van Ha - CADViet.com - Ngay 13/10/2012
    ;Muc dich: Tinh tong chieu dai cac doi tuong, ghi len text, ghi ra file.
    (defun C:HA ( / tl lst ss entlst cdai a z)
    (vl-load-com)
    (setq tl (getreal "\nHe so ti le: "))
    (while
      (and
       (princ "\nChon cac doi tuong can tinh chieu dai...")
       (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))))
      (setq entlst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
      (setq cdai 0)
      (foreach ent entlst
       (setq cdai (+ cdai (/ (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)) tl))))
      (setq a (assoc 1 (entget (setq ent (car (entsel "Chon Text de nhap chieu dai..."))))))
      (entmod (subst (cons 1 (rtos cdai 2 2)) a (entget ent)))
      (setq lst (cons cdai lst)))
    (if (not ss)
      (progn
       (initget "Y N")
       (setq ghi (getkword "\nBan muon luu file khong?[Y/N] <Y>: "))
       (if (or (= ghi "Y") (= ghi nil))
        (progn
     	(setq fn (getfiled "Chon file de xuat ket qua" "" "txt" 1))
     	(setq pw (open fn "w"))
     	(setq z 0 lst (reverse lst))
     	(repeat (length lst)
          (princ (strcat "Tong " (itoa (1+ z)) " = " (rtos (nth z lst) 2 2) "\n") pw)
          (setq z (1+ z)))
     	(close pw)))))
    (princ))
    
    P/S: bổ sung 17h-13/10/2012

     

    e muốn thêm một tí bổ sung vào lisp nay của bác Ha

    sau khi chọn text và điền giá trị vào e muốn đổi màu của text đó

    VD màu 6: (command "_change" en "" "p" "c" "6" "") nhưng e ko biết để nó vào đâu

    mong mọi người hỗ trợ

    • Vote giảm 1

  10. Hiện nay mình đang dùng 1 lisp đo diện tích rồi và điền giá trị vào text có sẵn bây giờ mình muốn đổi màu các text vừa đổi giá trị mới đó để biết cái nào làm rồi

    Mình có 2 đoạn lisp đó rồi nhưng ko biết nối vào thế nào cả, tìm trên diễn đàn cũng chỉ thấy lisp đổi màu riêng rẽ chứ chưa có cái nào ghép lisp với nhau. Mong các cao thủ giúp đỡ với.

     

    1. Lisp đo diện tích: của một bác trên diễn đàn mà mình ko nhớ tên có chỉnh sửa 1 tí để dùng cho tiện hơn

     

    (defun c:N() ;
      (setvar "MODEMACRO" "------ Edit by HoQuangVinh_TVNA ------")
    (setvar "cmdecho" 0)
    (setvar "DIMZIN" 0)
    (if (= Ty_le nil)
    (progn
    (setq Ty_le (getreal "\nNhap Ti Le <1000>:"))
    (if (= Ty_le nil)(setq Ty_le 1000.00))
    )
    (progn
    (setq khaibaoTy_le (getstring (strcat "\nTi Le = " (rtos Ty_le 2 0) " Co Muon Thay doi Khong ,C:")))
    (if (= (strlen khaibaoTy_le) 0) (setq khaibaoTy_le "K"))
    (if (or (= khaibaoTy_le "k") (= khaibaoTy_le "K"))
    (progn
    (princ (strcat "\nTi Le = " (rtos Ty_le 2 0)))
    )
    (if (or (= khaibaoTy_le "c") (= khaibaoTy_le "C"))
    (progn
    (setq Ty_le (getreal "\nNhap Ti Le <1000>:"))
    (if (= Ty_le nil)(setq Ty_le 1000.00))
    )
    )
    )
    )
    )
        ;;;(if (= So_Le nil)
        ;;;(progn
        ;;;(setq So_Le (getint "\\nNhap So Le Dien Tich <2>:"))
        ;;;(if (= So_Le nil)(setq So_Le 2))
        ;; ;)
        ;;;(progn
        ;;;(setq khaibaoSo_Le (getstring (strcat "\\nSo Le Dien Tich = " (rtos So_Le 2 0) " Co Muon Thay doi Khong ,C:")))
        ;;;(if (= (strlen khaibaoSo_Le) 0) (setq khaibaoSo_Le "K"))
        ;;;(if (or (= khaibaoSo_Le "k") (= khaibaoSo_Le "K"))
        ;;;(progn
        ;;;(princ (strcat "\\nSo Le Dien Tich = " (rtos So_Le 2 0)))
        ;; ;)
        ;;;(if (or (= khaibaoSo_Le "c") (= khaibaoSo_Le "C"))
        ;;;(progn
        ;;;(setq So_Le (getint "\\nNhËap So Le Dien Tich <2>:"))
        ;;;(if (= So_Le nil)(setq So_Le 2))
        ;; ;)
        ;; ;)
        ;; ;)
        ;; ;)
        ;; ;)
    (setq He_so (/ 1000 Ty_le))
    (setq He_so2 (* He_so He_so))
    (setq dtl 0)
    (setq ss (ssadd))
    (setq oslast (getvar "OSMODE"))
    (command "osnap" "")
    (print)
    (print)
    (setq pt1 (getpoint "\nChon Vung Kin Tinh Dien Tich : "))
    (while (/= pt1 nil)
    (command "-boundary" pt1 "")
    (setq et (entlast))
    (ssadd et ss)
    (command "area" "e" "last")
    (setq vsize ( /(getvar "VIEWSIZE") 50 ))
    (command "hatch" "ANSI31" vsize "0" "last" "")
    (setq et (entlast))
    (ssadd et ss)
    (setq dtcon (getvar "AREA"))
    (setq dtl (+ dtcon dtl))
    (print)
    (print)
    (setq pt1 (getpoint "\nChon Vung Kin Tinh Dien Tich : "))
    )
    (command "setvar" "OSMODE" oslast)
    (command "erase" ss "")
    (setq ss nil)
    (command "redraw")
    (setq dtl (/ (/ dtl He_so2) 1))
      (print dtl)
    (setq en (car (entsel "Thay cho so : ")))
    (while (= en nil)
    (setq en (car (entsel "Thay cho so : ")))
    )
    (setq elst (entget en))
    (setq elstold (assoc 1 elst))
      ;(setq elstnew (cons 1 (rtos dtl 2 So_Le)))
      (setq elstnew (cons 1 (rtos dtl 2 2)))
    (setq elst (subst elstnew elstold elst))
    (entmod elst)
    (setq elst nil)
    (setq dtl nil)
    ;(command "_change" en "" "p" "c" "1" "")
    (print " Edit by Hoquangvinh-TVNA" )
    )

    2. Lisp đổi màu text của bác Nguyen Hoanh

    (defun c:CTE()

    (setq ent (car (entsel "\nVao doi tuong text can sua: ")))

    (command ".ddedit" ent "")

    (command ".chprop" ent "" "c" "1" "")

    (princ)

    )

     
     
    • Vote giảm 1
×