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

engineer0405

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

    79
  • Đã tham gia

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

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


  1. Vào lúc 20/3/2019 tại 20:04, ngokiet đã nói:

    vấn đê của bạn là cad nối mạng ở phần nào thì firewall phần đó. Nếu Cad vào net qua edge hay chrome thì bạn lock nó luôn. 

    Bình thường cad ko có nối mạng mà ct bản quyền hay cad360 nối. cad chỉ thông qua pm đó để kết nối nên bạn phải biết mình cần cái gì.

    dạ do em có những phần mềm phụ trợ của cad mà mỗi lần có mạng là dùng lệnh khá chậm

    nên em muốn tắt kết nối của cad với internet

    em cảm ơn anh 


  2. Vào lúc 8/10/2009 tại 18:06, master_worse đã nói:

     

    bạn sử dụng thử lisp này xem

     

    
    (defun C:EDITTEXT (/ DCLEDITTEXT CURCMD ATT OLDVAL TEXT EDITEXT.DCL FILE_DCL LL)
    (setq *ERROR* (defun MY-ERR (MSG)
    	(cond ((= MSG "Function cancelled") (princ "\t\tUser abort"))
    	      (t (progn (princ MSG) (princ)))
    	) ;_ end cond
    	(setq *ERROR* NIL)
    	(princ)
           ) ;_ defun
    ) ;_ end setq
    (defun GET-GC (GROUP ENTITY) (cdr (assoc GROUP (entget ENTITY))))
    (defun	PUT-GC (VALUE GROUP ENTITY / PROPERTIES)
     (setq PROPERTIES (entget ENTITY))
     (setq PROPERTIES (subst (cons GROUP VALUE) (assoc GROUP PROPERTIES) PROPERTIES))
     (entmod PROPERTIES)
    ) ;_ end defun
    (vl-load-com)
    (setq DCLEDITTEXT
          (list "EDIT: dialog {label = \"Edit text\";initial_focus = \"text\";"
         ":edit_box {label = \"Text:\"; allow_accept = true; edit_width = 60; key = \"text\";}"
         "spacer_1;"
         "ok_cancel;}"
          ) ;_ end list
    ) ;_ end setq
    (setq CURCMD (getvar "CMDECHO"))
    (setvar "CMDECHO" 0)
    (while	(/= (setq ATT (car (nentselp "\nSelect Attribute for edit: "))) NIL)
     (if (or (= (GET-GC 0 ATT) "ATTRIB")
      (= (GET-GC 0 ATT) "TEXT")
      (= (GET-GC 0 ATT) "MTEXT")
      (= (GET-GC 0 ATT) "DIMENSION")
         ) ;_ end or
      (progn
       (setq OLDVAL (GET-GC 1 ATT))
       (setq EDITEXT.DCL (vl-filename-mktemp "EditText.dcl")
      FILE_DCL    (open EDITEXT.DCL "w")
       ) ;_ end setq
       (foreach LL DCLEDITTEXT (write-line LL FILE_DCL))
       (close FILE_DCL)
       (if	(> 0 (setq DCL_ID (load_dialog EDITEXT.DCL)))
        (progn (alert "not found file EditText.DCL") (exit))
       ) ;_ if
       (if	(not (new_dialog "EDIT" DCL_ID))
        (progn (alert "not found EDIT dialog") (exit))
       ) ;_ if
       (set_tile "text" OLDVAL)
       (action_tile "accept" "(setq TEXT (get_tile \"text\"))(done_dialog)")
       (action_tile "cancel" "(setq TEXT OLDVAL)")
       (start_dialog)
       (unload_dialog DCL_ID)
       (PUT-GC TEXT 1 ATT)
      ) ;_ end progn
      (princ "Select ATTRIB/TEXT/MTEXT/DIMENSION")
     ) ;_ end if
    ) ;_ end while
    (setvar "CMDECHO" CURCMD)
    (vl-file-delete EDITEXT.DCL)
    (setq *ERROR* NIL)
    (princ)
    ) ;_ end defun
    
     

     

     

    sữa đựơc ATTRIB/TEXT/MTEXT/DIMENSION

     

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

    P/S:

    Cái vụ tạo hộp thoại này em học trong file lisp vẽ đồ thị của tiều bối Nguyen Hoanh

    Ai xem giúp em cái chữ ký

    dạ anh ơi cho em hỏi tý ạ

    lisp này mà muốn không hiện bảng

    chỉnh trực tiếp như ed cho text thì đc không ạ

    em cảm ơn anh


  3. Em chào các anh ạ

    Các anh cho em hỏi tý vấn đề ạ

    Em đang dùng Cad 2018, em đã thử trên nhiều máy mà vẫn bị lỗi thế này ạ

    1. Lisp không tự load khi mở bản vẽ (mặc dù đã để vào startup)

    2.Khi dùng menuload cũng bị vậy

    Mỗi lần mở cad phải load lại toàn bộ, mất thời gian

    Các anh cho em hỏi lỗi trên do lỗi của bản cad 2018 hay là thiết lập ở đâu ạ

    Em cảm ơn các anh


  4. Lisp thêm tiền tố và/hoặc hậu tố cho DIMENSION, TEXT, MTEXT, ATTDEF.

    
    
    ;----- Add/Change Prefix and/or Suffix for DIMENSION, TEXT, MTEXT, ATTDEF. De tim hieu code >> nen mo trong Notepad++.
    ;----- Doan Van Ha - CadMagic - Ver.1: 15/9/2013
    (vl-load-com)
    (defun C:APS ( / dial flag lstobj lstkey lstvar fn Add_Prefix_Suffix SelectObj Ss->Lst Old_APS New_APS HA:SetVal Make_File_Dcl)
    ;----- Sub Functions
     (defun Add_Prefix_Suffix (lst pre suf add) ;Add Prefix vµ/hoÆc Suffix cho lstobj.
      (command "undo" "be")
      (if (and lst pre suf)
       (mapcar
       '(lambda (obj / typ txt pre1 suf1)
         (setq typ (cdr (assoc 0 (entget (vlax-vla-object->ename obj)))))
         (cond
          ((wcmatch typ "MTEXT,TEXT") (vla-put-TextString obj (strcat pre (vla-get-TextString obj) suf))) ;MultiLeader ???
          ((wcmatch typ "ATTDEF") (vla-put-TagString obj (strcat pre (vla-get-TagString obj) suf)))
          ((wcmatch typ "DIMENSION")
      (setq txt (cdr (assoc 1 (entget (vlax-vla-object->ename obj)))) pre1 (vla-get-TextPrefix obj) suf1 (vla-get-TextSuffix obj))
           (cond
            ((and (= txt "") (= add "0")) ; Nguyen thuy hoac da add pre/suf: Change
    (vla-put-TextPrefix obj pre) (vla-put-TextSuffix obj suf))
    ((and (= txt "") (= add "1")) ; Nguyen thuy hoac da add pre/suf: Add
    (vla-put-TextPrefix obj (strcat pre pre1)) (vla-put-TextSuffix obj (strcat suf1 suf)))
         (T ; Override: Add (not Change)
    (vla-put-TextOverride obj (strcat pre txt suf))))))
         (vlax-release-object obj))
        lst))
      (command "undo" "e"))
     (defun SelectObj (lstvar lstkey / txt lst) ;Chän ®èi t­îng.
      (setq txt (apply 'strcat (mapcar '(lambda(var key) (if (= var "1") (strcat key ",") "")) (mapcar 'eval lstvar) lstkey)))
      (setq lst (Ss->Lst (ssget (list (cons 0 txt))) T)))
     (defun Ss->Lst (ss flag / lst) ;Convert selection set to list vla-object
      (and ss (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
       (if flag (setq lst (mapcar 'vlax-ename->vla-object lst))))
      lst)
     (defun Old_APS() ;®Æt chƠ ®é nh­ c̣.
      (setq text_old text mtext_old mtext attdef_old attdef dimension_old dimension pre_old pre suf_old suf add_old add change_old change))
     (defun New_APS() ;®Æt chƠ ®é míi nh­ c̣".
      (setq text text_old mtext mtext_old attdef attdef_old dimension dimension_old pre pre_old suf suf_old add add_old change change_ols))
     (defun HA:SetVal (lstkey lstvar lstval) ;Set value_default or set value_old for var + Set_tile for key. EX: (HA:SetVal '("key1" "key2" "key3") '(var1 var2 var3) '("0" "1" "a"))
      (mapcar '(lambda (var val) (if (not (eval var)) (set var val))) lstvar lstval)
      (mapcar '(lambda (key val) (set_tile key (set (read key) val))) lstkey (mapcar 'eval lstvar)))
     (defun Make_File_Dcl ( / fn ow dial) 
      (setq fn (vl-filename-mktemp "APS" nil ".dcl"))
      (setq ow (open fn "w"))
      (mapcar
      '(lambda (x) (write-line x ow))
       (list
    "APS : dialog { label = \"CadMagic - Add prefix and suffix for objects\";"
    " : boxed_column { label = \"Set variable\";"
    "    : row {"
    "      : boxed_column { label = \"Dimension\";"
    "        : toggle { label = \"Dimension\"; key = \"dimension\"; }"
    "        : radio_row {"
    "          : radio_button { label = \"Add\";  key = \"add\"; }"
    "          : radio_button { label = \"Change\";  key = \"change\"; }"
    "        }"
    "      }"
    "      : boxed_row { label = \"Text/Mtext/Attdef\";"
    "        : toggle { label = \"Text\"; key = \"text\"; }"
    "        : toggle { label = \"Mtext\"; key = \"mtext\"; }"
    "        : toggle { label = \"Attdef\"; key = \"attdef\"; }"
    "      }"
    "    }"
    "    : column {"
    "      : edit_box { label = \"Prefix:\"; key = \"pre\"; edit_width = 45; }"
    "      : edit_box { label = \"Suffix:\"; key = \"suf\"; edit_width = 45; }"
    "    }"
    " : button { label = \"Select objects\"; key = \"chon\"; fixed_width = true; alignment = centered; }"
    "  }"
    "  ok_cancel;"
    "}"))
      (close ow)
      fn)
    ;----- Main Function.
     (setq dial (load_dialog (setq fn (Make_File_Dcl))) flag 3)
     (while (> flag 1)
      (if (not (new_dialog "APS" dial)) (exit))
      (Old_APS)
      (HA:SetVal (setq lstkey '("text" "mtext" "attdef" "dimension" "pre" "suf" "add" "change"))
                (setq lstvar '(text mtext attdef dimension pre suf add change)) '("0" "0" "0" "0" "Prefix" "Suffix" "1" "0"))
      (action_tile "text" "(setq text $value)")
      (action_tile "mtext" "(setq mtext $value)")
      (action_tile "attdef" "(setq attdef $value)")
      (action_tile "dimension" "(setq dimension $value)")
      (action_tile "pre" "(setq pre $value)")
      (action_tile "suf" "(setq suf $value)")
      (action_tile "add" "(setq add $value change \"0\")")
      (action_tile "change" "(setq change $value add \"0\")")
      (action_tile "Cancel" "(done_dialog 0)")
      (action_tile "Accept" "(done_dialog 1)")
      (action_tile "chon" "(done_dialog 2)")
      (setq flag (start_dialog))
      (cond ((= 0 flag) (New_APS))
            ((= 2 flag) (setq lstobj (SelectObj lstvar lstkey)))
            ((= 1 flag) (Add_Prefix_Suffix lstobj pre suf add))))
     (unload_dialog dial) (vl-file-delete fn) (princ))
    ;--------------------------------------------------------------------------------------------------------------------------------------
     

     

    Anh Hà ơi cho em hỏi tý ạ

    Nếu ATT đã đc block thì lisp không chọn được đối tượng 

    Anh có thể cải tiến lisp giúp em với 

    Anh Hà ơi cho em hỏi tý ạ
    Nếu ATT mà đã đc Block thì lisp không chọn được đối tượng
    Anh có thể cải tiến lisp giúp em với không a
    Anh Hà ơi cho em hỏi tý ạ
    Nếu ATT mà đã đc Block thì lisp không chọn được đối tượng
    Anh có thể cải tiến lisp giúp em với không a
    Anh Hà ơi cho em hỏi tý ạ
    Nếu ATT mà đã đc Block thì lisp không chọn được đối tượng
    Anh có thể cải tiến lisp giúp em với không a
    Anh Hà ơi cho em hỏi tý ạ
    Nếu ATT mà đã đc Block thì lisp không chọn được đối tượng
    Anh có thể cải tiến lisp giúp em với không a

  5. Thêm cái này nữa xem sao? Nếu không được nữa thì tôi chịu.

    REGENMODE >> 0

    Em cảm ơn anh Ha nhiều ạ

    Chính là biến này ạ

    Anh cho em hỏi thêm tý nữa ạ

    giờ trong layout của em có nhiều view

    em muốn chọn nhiều view để bật hoặc tắt hiển thị đối tượng trong view

    anh có thể giúp em với không ạ

    em cảm ơn anh


  6. Em chào các anh ạ

    Các anh cho em xin hỏi câu này với ạ:

    Khi mỗi lần sử dụng bên layout em dùng các lệnh thì cad tự REGEN lại làm bản vẽ mỗi lần thực hiện lệnh phải đợi khá lâu

    Không biết có cách nào tắt tự động cập nhật regen không ạ

    Hoặc có lisp nào có thể làm đc như vậy không ạ

    Em cảm ơn các anh nhiều


  7. Không có cách sửa.

    Chỉ có 1 điều mình hay làm như thế này: Các file sld được tạo từ hình vẽ trong CAD qua lệnh MSLIDE

    mình lưu file CAD có chứa các đối tượng tạo ra các slide đó. Khi cần thì đem file CAD ra sửa và tạo lại file sld qua lệnh Mslide

    Em cảm ơn anh Tuệ ạ

    nhưng mà vậy thì sau khi dùng lệnh MSLIDE thì làm sao biết đc ảnh mình tạo ra nó như thế nào vậy anh


  8.  

    Tra thì lâu lắm bạn àh, nếu hiểu sơ sơ lisp bạn có thể làm theo cách này

    Tự tạo một kiểu Dim phù hợp với mình, dùng cú pháp sau

    (tblsearch "dimstyle" "d100")
    
    để có mã DXF của DimStyle đó, sau đó chỉ cần sửa lại 2 giá trị quan trọng nhất là biến DimScale (mã DXF là 40) và biến DimLfac(Mã DXF là 144)

    sau đó dùng hàm (entmake) như của bác Hà, bằng cách thay các thông số của bác ấy là thông số của mình và bỏ đi thông tin về entity,

     

     

    thêm vào hai dòng

    (100 . "AcDbSymbolTableRecord")

    (100 . "AcDbDimStyleTableRecord")

     

    ở phía dưới Mã DXF 0

     

     

    chúc bạn thành công

    còn đây là một số mã DXF mình khai thác được ý nghĩa

    ((0 . "DIMSTYLE")  ;la thiet lap danh cho DimStyle
      (2 . "D100")   ;Ten Dimstyle
      (70 . 0)  
      (3 . "")
      (4 . "")
      (5 . "ArchTick")  ;Mui ten chung (2 dau kich thuoc)
      (6   .   ""  )  ;Mui ten cho dau KT 1
      (7 . "")   ;Mui ten cho dau KT 2
      (40 . 100.0)   ;Gia tri cua bien DimScale
      (41 . 1.2)   ;Gia tri cua mui ten (bien DimAsz)
      (42 . 0.0)  
      (43 . 6.0)   ;;gia tri khoang cach dim do bang lenh DimBase
      (44 . 1.0)   ;gia tri giong nho ra duong ghi.KT
      (45  .  0.0 )   ;;gia tri duong giong lay cach diem bat chan dim
      (46 . 1.0)   ;bien DImDle gia tri D.ghi.KT nho ra duong giong
      (47 . 0.0)
      (48 . 0.0)
      (140 . 2.0)   ;Kich thuoc Dimtext (bien Dimtxt)
      (141 . 2.0)   ;Bien DimCen (gia tri cua duong tam)
      (142 . 0.0)  
      (143  .  0.0393701 )  ;;Kha nang la Unit
      (144 . 1.0)   ;GIA TRI BIEN DIMLFAC , quan trong
      (145 . 0.0)
      (146 . 1.0)
      (147 . 0.5)   ;Gia tri text Offset duong giong(bien DimGap)
      (71 . 0)
      (72 . 0)
      (73 . 0)
      (74 . 0)
      (75 . 0)
      (76 . 0)
      (77 . 1)
      (78 . 8)
      (170 . 0)
      (171 . 3)
      (172 . 1)
      (173 . 0)
      (174 . 1)
      (175 . 0)
      (176 . 19)
      (177 . 250)
      (178 . 4)
      (270 . 2)
      (271 . 2)   ;;So chu so sau dau "," phan thap phan cua DIM
      (272 . 2)
      (273 . 2)
      (274 . 3)
      (340 . <Entity name: 7ef03490>)
      (275 . 0)
      (280 . 0)
      (281 . 0)
      (282 . 0)
      (283 . 0)
      (284 . 8)
      (285 . 0)
      (286 . 0)
      (287 . 3)
      (288 . 0)
    )
    

    Anh ơi cho em hỏi làm sao để đổi style chữ và chiều cao chữ khi tạo bằng entmake vậy ạ

    em cảm ơn ạ


  9.  

    Tôi viết Lisp này xuất phát từ ý tưởng của bạn ThuyLinh313 trong Topic

    http://www.cadviet.com/forum/topic/71059-da-xong-lisp-calculator-thay-the-cho-may-tinh-cua-cad/

    Sau khi đọc xong bài viết của ThuyLinh, thấy ý tưởng hay và ứng dụng tốt nên đã viết code để phục vụ cho công việc của mình. Nay code đã xong, thêm màu mè vào tí và chia sẻ cho anh em CadViet. Ai có nhu cầu thì down về sử dụng. Lisp đang trong quá trình thử nghiệm nên có thể phát sinh lỗi. Ai gặp lỗi xin vui lòng phản hồi để sửa lại code cho hoàn thiện hơn.

    Trong Lisp có sử dụng hàm con chuyển số nguyên thành số thực. Bác Hà và bác TueNV test thử xem có lỗi gì không. Thanks các bác.

    Đây là giao diện của chương trình + Lisp và hướng dẫn sử dụng.

     

    Giao diện chương trình:

    71162_muca.jpg

     

    Download Lisp tại đây: 

    Update ngày 15/05/2013 (xem nội dung Update tại #8) http://www.cadviet.com/upfiles/3/71162_multipurpose_calculator2.zip

    Update ngày 16/05/2013 (xem nội dung Update tại #14) http://www.cadviet.com/upfiles/3/71162_mcalculator_1.zip

    Và hướng dẫn sử dụng Lisp:

    http://www.cadviet.com/upfiles/3/71162_manual.pdf

    Similar topics from web:

    Anh ơi lisp này sao chạy trên cad 2013 binhg thường mà qua cad 2014 là bị đứng miết anh à

    Ah xem lại em với


  10.  

    3 #7 :

    ((lambda(x)
     (princ x)
        (setvar 'nomutt 1)
        (setq sel (vl-catch-all-apply 'ssget (list (list (cons 0 "LINE")))))
        (setvar 'nomutt 0)
        (if (not (vl-catch-all-error-p sel))
            sel
    		(exit)
        )
    	)
    	"Chon Lines"
    )
    

    Em cảm ơn anh Ketxu nhiều ạ

    1.nhưng mà với đoạn code này thì ghép với đoạn code của anh phamthanhbinh thì mình làm sao vậy ạ

    em mới mò lisp nên chưa hiểu rõ ạ

    2.Anh cho em hỏi thêm tý với ạ

    trong lisp khi mình dùng (command "gi đó")

    thì làm sao khi thục hiện lệnh trên dòng command không hiện dòng lệnh đó anh nhỉ(chỉ hiện lệnh đầu tiên của lisp)

    Em cảm ơn anh

×