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

thuphong

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

    33
  • Đã tham gia

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

  • Ngày trúng

    3

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


  1. Trúớc đây mình hay sử dụng phím shift trái kết hợp với chuột để vẽ các đường vuông góc (thay vì nhấn F8, F3 gì đó). Nhưng từ lúc sử dụng Cad trên nền win 8 (64 bit) thì chế độ này không sử dụng được nữa (win XP bàn 32bit  thì không bị). Cad trong win XP là Cad 2014 bản 32 bit, còn Cad trong win 8 là Cad 2014 bản 64bit.

    Các bạn nào biết cách khắc phục xin chỉ giúp giùm mình. Cảm ơn cả nhà

    • Vote tăng 1

  2. Các ace cho mình hỏi với: Trong lisp có hàm nào cho phép thay thế phần tử này bằng phần tử khác tại vị trí được chỉ định không. (Nếu không có xin nhờ các mode viết giúp giùm mình với).

    VD

    - List ban đầu : ((-1 . <Entities:...>) (10 . 2) (11 . 2) .....(11 . "3") (301 . 5)..))

    - Muốn thay (11 . "3") bằng (11 . "4") tại vị trí của "em" (11 . "3") .List sau khi thay là: ((-1 . <Entities:...>) (10 . 2) (11 . 2) .....(11 . "4") (301 . 5)..))

    - Lưu ý: trong list ban đầu có thể có nhiều phần tử giống mã nhau (VD trên là mã 11)

    Ứng dụng : mình muốn tạo ra một multileader khác từ một multileader đã có.

    Chân thành cảm ơn mọi người


  3. .....

    (defun Cv:ss-drag-move (ss p / el)
     (setq el (entlast))
     (if (and (vl-cmdf "copy" ss "" p pause) (null (equal (getvar "lastpoint") p)))
      (progn
    (while (setq el (entnext el)) (entdel el)) (getvar "lastpoint") ) nil)
     )
    

     

    Bác Tuệ cho mình hỏi : Trong trường hợp khi mình nhấn ESC, hàm trên tại sao không xóa được đối tượng phát sinh (hàm ACET-SS-DRAG-MOVE có xét đến trường hợp này Bác à). Nhờ Bác fix hộ lại đoạn code trên. Cảm ơn Bác nhiều

     

    Mình test bằng đoạn code sau:

     

    (defun c:t1 ()

     

    (defun Cv:ss-drag-move (s p / el)

    (setq el (entlast))

    (if (and (vl-cmdf "copy" s "" p pause) (null (equal (getvar "lastpoint") p)))

    (progn

    (while (setq el (entnext el)) (entdel el)) (getvar "lastpoint") ) nil)

    )

     

    (setq s (ssget "_:L"))

    (setq p1 (getpoint "\nSpecify base point:"))

    (Cv:ss-drag-move s p1)

    )

     

    - Lần test 1: khi nhấn L_mouse thì OK, có giá trị trả về tọa độ điểm chọn

    - Lần test 2: khi nhấn R_mouse thì OK có giá trị trả về "nil", nhưng lại phát sinh đối tượng "s" (xin lỗi Bác ,chỗ này mình nhầm)

    - Lần test 3: khi nhấn ESC thì OK có giá trị trả về "nil"

     

    CAD mình dùng là Acad 2012. Cảm ơn Bác đã quan tâm


  4. Đã thử nhưng không được ?

    Không biết CAD của Bạn có trục trặc gì không, chứ mình thử thay đoạn CODE trong bài 40 của Bác Tue_NV vào CODE trong bài 25, mình vẫn thấy Lisp vẫn chạy và nhớ phép tính trong lần chạy trước đó mà :mellow: . Còn không, bạn thử thêm cách này nữa xem sao: bỏ (xóa) biến "ctnc" trong khai báo biến cục bộ của Code bài số 25

    (defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnc ctnch shang oldlu)

    ;Copy right by Tue_NV......

    sửa lại thành

    (defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnch shang oldlu)

    ;Copy right by Tue_NV......


  5. Gửi bạn Lisp đổi tên Block.blkre.jpg

    .............

    Trước hết xin cảm ơn Gia Bách đã chia sẻ, giúp đỡ cho mình và mọi người một Lisp rất thiết thực. :D Nhân đây nhờ Bạn xem lại giúp giùm mình Lisp trên, không hiểu sao khi mình load lên để chạy, sau khi rename block, ok, nó lại không thấy thay đổi tên. Lần nữa xin cảm ơn Bạn


  6. cách 3 : Đề phòng cúp điện không sử dụng được cách 2 như của "mũnxinh" ,mình đề xuất :làm một giá phơi đồ trên ter nước, mang quần áo, chăn mền vừa giặt xong lên phơi -> kết quả quần áo mau khô, nước trong ter được mát, tha hồ tắm, vừa không sợ mất điện, lại không phải tốn nhiều tiền như phương án 1 :cheers: :s_big:

    • Vote tăng 1

  7. Chào các bác. Em co down trên diễn đàn 1 số file lisp có dạng .vlx nhưng lệnh mặc định của nó hơi dài, ví dụ như SUPERIRON để đưa các đối tượng có cao độ khác nhau về 0. Mong các bác chỉ giúp làm thế nào để đặt lệnh tắt ngắn gọn hơn. Cám ơn nhiều!

    Bạn không can thiệp được vào File biên dịch *.vlx được đâu. Mình biết 1 cách đi vòng như sau (nông dân í mà):

    - Tạo 1 lisp khác, trong lisp này gọi lisp có tên lệnh dài.

    Ví dụ : (defun C:*** ()

    (c:SUPERIRON)

    (princ)

    )

    - ***là tên lệnh bạn muốn đặt, SUPERIRON là lệnh dài. Sau đó load lisp bạn tạo , gõ lệnh mới.

    Các Bác còn cách nào khác hơn, chỉ cho đệ biết với nhé. Thanks. :rolleyes: :s_big:

    • Vote tăng 1

  8. em da noi la cung một lay ơ mà ( layiso la mất hết)

    cao độ cung một lay ơ ma chỉ khác màu thui ( xanh, đỏ, tím, vàng) em chỉ muốn xuất cao độ màu vang thu, mong mất pro chỉ jùm

    Bạn chịu khó tìm trong phần dowload ,mình nhớ đã đọc trong "viết lisp phần I" có 1 chương trình phù hợp với yêu cầu của Bạn, chương trình đó cho phép ẩn đi các màu mình lựa, bất kể đối tượng đó thuộc lớp nào


  9. Xin hỏi về lệnh "ddedit" trong cad 2009

    Khi để biến dtexted=1 thì cad không báo lỗi

    Nhưng nếu đặt dtexted=0 hoặc =2 thi cad báo "Unable to find main dictionary. Cuold not start speller". Sau đó ấn OK thi vẫn sử dụng bình thường

    Như vậy luôn phải ấn enter 2 lần, rất bất tiện.

    Ai biết cách sử lý giúp.

    Rất xin cảm ơn!

    Trường hợp của Bạn có thể là bạn đã không cài phần tự điển đi kèm trong đĩa CD, cách kiểm tra như sau: vào Tool ->options ->File tìm thẻ Text Editor,Dictinoary and Font file names nhấn vào main dictionary, nếu thấy dòng chữ None available thì bạn phải cài thêm vào, khi đó sử dụng mới không hiện thông báo trên, còn không bạn vào Mtedit, click chuột phải bỏ tùy chọn check spelling

    • Vote tăng 1

  10. Bạn dùng lệnh SBTD, chọn các block rồi nhập vào tỷ lệ 1.

    (defun c:sbtd()
     (defun s1(ent)
       (setq tt (entget ent)
      ctl (cdr (assoc 41 tt))
      ctl (abs (/ tl ctl))
      p (cdr (assoc 10 tt))
       )
       (command ".scale" ent "" p ctl)
     )  
     (setq ss (ssget '((0 . "INSERT")))
    tl (getreal "\nTy le: "))
     (luuos)
     (setvar "osmode" 0)
     (sudung s1 ss)
     (traos)  
    )
    (defun luuos ()
     (setq
       HOANH_OSMODE   (getvar "OSMODE")
       HOANH_AUTOSNAP (getvar "AUTOSNAP")
     )
    )
    (defun traos ()
     (if HOANH_OSMODE
       (setvar "OSMODE" HOANH_OSMODE)
     )
     (if HOANH_AUTOSNAP
       (setvar "AUTOSNAP" HOANH_AUTOSNAP)
     )
    )
    

     

     

    Bác Hoành ơi , đoạn Code này sao khi chạy nó báo thiếu hàm SUDUNG, Bác giúp giùm Em với. Thanks Bác nhiều


  11. 1. Lấy đường dẩn chứa các file nét vẽ : (strcat (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder") "\\Plot Styles\\")))

    2. Hàm lấy tất cả các file .ctb trong cad ra

    (defun GetPlotStyleTableNames (ad)

    (vla-RefreshPlotDeviceInfo

    (vla-get-activelayout ad))

    (vlax-safearray->list

    (vlax-variant-value

    (vla-getplotstyletablenames

    (vla-item (vla-get-layouts ad) "Model"))))

    )

    3. Tạo lisp chứa tất cả các nét vẽ

    (setq lispnetve (GetPlotStyleTableNames (vla-get-activedocument (vlax-get-acad-object))))

    4. Có đường dẩn và lisp chứa các file nét vẽ thì bạn chạy file này lên là ok rồi, chỉ việc tạo các button và nhúng code vào là xong.

    tham khảo ở đây nhé http://www.cadviet.com/forum/Ho-tro-in-an-t4330.html

    Rất rất cảm ơn Bạn "doanduyhung"! , dạo này CadViet để nút Thanks chỗ nào không biết, để bấm cảm ơn Bạn. Thật sự, mình rất bất ngờ khi Topic của mình từ năm 2007, nay vẫn được trợ giúp, mấy ngày hôm nay không hiểu sao vào mạng khó quá ,giờ mới Online được. Nhưng bạn ơi, cái đoạn Bạn hướng dẫn, do mình dốt quá nên không vận dụng được ,thôi phải phiền Bạn giúp mình thôi. Mình muốn bạn tạo giúp cho mình 1 cái Control + 1Button giống như Form " Chọn File định dạng nét vẽ" trong chương trình INAN.VLX của bạn ; Mình muốn đưa Control + Button "sửa" này vào thanh ToolBar để tiện bấm chuột đó mà >Xin cảm ơn Bạn trước


  12. Đây là bản dùng thử ấo tôi không dùng được vậy

    Phần khai báo Layer.. nó chỉ nháy một cái rồi mất tiêu luôn

    Các data đều không có ???

    Mìinh đang dùng Cad 2009, hiện nay thử nghiệm NoCad thấy cũng tốt , trường hợp Khai báo Layer, tỷ lệ ban đầu ... đầu tiên mình củng bị như các bạn, nhưng sau đó mình dùng cách sau (các bạn thử xem nhé) thì không bị vướng nữa :

    - Vào Tools -> Options...-> Files -> Support File search path...->khai báo thêm đường dẫn tới thư mục NoCad -> O.K

    - Đóng Cad và chạy lại Cad để đường dẫn được cập nhật , sau đó sử dụng NoCad bình thường.

    Thử xem nhé, Chúc các Bác thành công.

    P/S: Cảm ơn Bác NoThien đã tạo cho anh em một chương trình hữu ích ,mong rằng CT sớm hoàn thiện, (ý tưởng đưa Block sau này để thống kê thép quả là tuyệt vời, rất khâm phục)

    • Vote tăng 1

  13. Bác Hoành nói đúng đấy , mình cũng đã đụng trường hợp này vài lần rồi. Uninstall lại thôi.

    Để đỡ mất công cài lại, mình có kinh nghiệm này để bạn tham khảo:

    - Sau khi cài ,thiết lập các Option mà mình thích, ưng ý rối thì thoát khỏi Cad

    - Vào Program -> Autodesk -> Autocad 200x -> Migrate Custom setting -> Export Autocad Setting

    Khi có trục trặc sau này, mình lại thực hiện công việc tương tự trên nhưng ngược lại , thay vì Export...., mình dùng Import Autocad setting


  14. Bác ơi cho em hỏi : em đánh lệnh CO mà sao nó cũng giống như lệnh copy th6ng thường trong cad àh (command:CO -->select objects <_< thiếu dòng chữ copy inteligent ) . Bác giúp em với ! em mới biết sử dụng lisp àh !

    Nếu vậy, bạn có thể dùng 1 trong 2 cách sau để chạy lệnh:

    1/ Vào menu Express -> Tools -> Command Alias Editor..; sửa phím tắt CO được gán cho copy thông thường bằng 1 phím tắt nào đó bạn thích (Các phím tắt bạn qui định nằm trong tập tin acad.pgp)

    2/ Trong đoạn code của Lisp trên bạn thay từ CO bằng 1 từ nào đó. Sau đó load lên chạy lại lệnh

×