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

shitty

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

    19
  • Đã tham gia

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

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


  1. chào bác Tú,e đã down vnplotv2.1 bản fix về dùng thử nhưng bác cho e hỏi 1 chút là bản này có dùng dc cho cad 2011 hok thế.Em chọn xref ,chọn đối tượng điển hình nhưng sao bản vẽ nó ko fit khung A3..bác cho e hỏi thế là bị làm sao thế..mong bác thông cảm e đag tìm hiểu nên có j bác bỏ wa cho...thanks bác


  2. Hàm SetHvar mình viết đi kèm luôn hàm chính, sao lại có khi load hàm chính lại k load hàm con ?Bạn có thay đổi j k?

    Mà bạn đã thử dùng cái lisp mình mới viết hqua k ?? Mình có phần hơi nản đó :)

     

     

    thành thật sory bác...tai e còn nhiều cái chưa biết và chưa hiểu nên nhiều câu hỏi khiến bác bực mình.những điều bác nói đối với e cũng như những người mới tham gia đều rất có ích.! :D thanks bác thêm lần nữa !!! chứ bác nản thì lấn sau e biết hỏi ai ...:P


  3. Lỗi này do máy bạn chưa cài bộ Express Tool.Bạn cài lại nó vào đi :)

    Nếu khó khăn trong việc cài bộ Express thì bạn dùng lại đoạn sau cho nó thuần :

    ;free lisp from cadviet.com @ ketxu
    (defun c:h2()
    (setq vList '("hpname" "hpscale" "hpang" "hpassoc" "hpgaptol" "clayer" "HPSEPARATE") ; Sys Var list
    vValue (mapcar 'getvar vList)) 	
    (initget 1 "0 WALL W GRASS GR GROUND G MARBLE M WC S SAND B BRICK")
    (setq s1 (getkword "\n0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK] "))
    	(cond
    	  ((= "0" (strcase s1)) (SetHvar "ansi37" 1 0 1 20 ))
    	  ((= "WC" (strcase s1)) (SetHvar "ansi31" 1 0 1 20))
    	  ((or (= "GR" (strcase s1)) (= "GRASS" (strcase s1)))(SetHvar "GRASS" 1 0 1 20))								   
    	  ((or (= "S" (strcase s1)) (= "SAND" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))			
    	  ((or (= "G" (strcase s1)) (= "GROUND" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "M" (strcase s1)) (= "MARBLE" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "B" (strcase s1)) (= "BRICK" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "W" (strcase s1)) (= "WALL" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))
    	);end cond
     	(command "-hatch")
    (while (< 0 (getvar "CMDACTIVE"))	(command pause))
    (mapcar 'setvar vList vValue)
    );END C:
    (defun SetHvar (hName hScale hAng hAssoc hGap) ;hLayer)
    (mapcar 'setvar vlist (list hname hScale hAng  hAssoc hgap "00-08Hatch" 1))
    )

    e cài xong cái express tool thì dùng dc nhưng khi tắt cad bật lại thi lisp lai ba'o lỗi :

    0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRIC

    K] w

    ; error: no function definition: SETHVAR


  4. Mình nhắc lại một lần nữa câu mình nói với bạn mấy bài trước.Hy vọng bạn hiểu và thông cảm. Những người tham gia trong mục này không thể lúc nào cũng ngồi bên cạnh người dùng lisp hoặc vò đầu "tại sao không thấy gì cả" được :)

    hi` mong bác mở tấm lòng từ bi hỉ xả mà bỏ quá cho đứa gà như e :P nên thỉnh thoảng hỏi những câu hơi thợ mộc ! bác thông cảm :P.cái lisp bác viết giúp e, e ấn F2 thi nó hiện dòng :

    Command: h1

     

    0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRIC

    K] gr

    ; error: no function definition: ACET-SYSVAR-SET

     

    Command: h1

     

    0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRIC

    K] 0

    ; error: no function definition: ACET-SYSVAR-SET


  5. Bạn edit cho phù hợp nhu cầu nhé. Nhớ là trong bản vẽ phải có layer 00-08Hatch rồi đó, vì mình k để code tạo layer vào

    (defun c:h1()	
    (initget 1 "0 WALL W GRASS GR GROUND G MARBLE M WC S SAND B BRICK")
    (setq s1 (getkword "\n0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK] "))
    	(cond
    	  ((= "0" (strcase s1)) (SetHvar "ansi37" 1 0 1 20 ))
    	  ((= "WC" (strcase s1)) (SetHvar "ansi31" 1 0 1 20))
    	  ((or (= "GR" (strcase s1)) (= "GRASS" (strcase s1)))(SetHvar "GRASS" 1 0 1 20))								   
    	  ((or (= "S" (strcase s1)) (= "SAND" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))			
    	  ((or (= "G" (strcase s1)) (= "GROUND" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "M" (strcase s1)) (= "MARBLE" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "B" (strcase s1)) (= "BRICK" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "W" (strcase s1)) (= "WALL" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))
    	);end cond
     	(command "-hatch")
    (while (< 0 (getvar "CMDACTIVE"))	(command pause))
    (acet-sysvar-restore)
    );END C:
    (defun SetHvar ( hName hScale hAng hAssoc hGap) ;hLayer)
    (acet-sysvar-set (list "hpname" hname "hpscale" hScale "hpang" hAng "hpassoc" hAssoc "hpgaptol" hgap "clayer" "00-08Hatch" "HPSEPARATE" 1))
    )

    báC ketxu cho e hỏi cái là sao e dùng lệnh h1 rồi ,cũng hiện lên bảng rồi nhưng đánh phím hay tick trực tiếp trong bảng thì nó ko thấy cái ji luôn..thế là bi làm sao nhỉ :(


  6. Bạn edit cho phù hợp nhu cầu nhé. Nhớ là trong bản vẽ phải có layer 00-08Hatch rồi đó, vì mình k để code tạo layer vào

    (defun c:h1()	
    (initget 1 "0 WALL W GRASS GR GROUND G MARBLE M WC S SAND B BRICK")
    (setq s1 (getkword "\n0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK[0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK] "))
    	(cond
    	  ((= "0" (strcase s1)) (SetHvar "ansi37" 1 0 1 20 ))
    	  ((= "WC" (strcase s1)) (SetHvar "ansi31" 1 0 1 20))
    	  ((or (= "GR" (strcase s1)) (= "GRASS" (strcase s1)))(SetHvar "GRASS" 1 0 1 20))								   
    	  ((or (= "S" (strcase s1)) (= "SAND" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))			
    	  ((or (= "G" (strcase s1)) (= "GROUND" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "M" (strcase s1)) (= "MARBLE" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "B" (strcase s1)) (= "BRICK" (strcase s1))) (SetHvar "AR-CONC" 1 0 1 20))
    	  ((or (= "W" (strcase s1)) (= "WALL" (strcase s1)))(SetHvar "AR-CONC" 1 0 1 20))
    	);end cond
     	(command "-hatch")
    (while (< 0 (getvar "CMDACTIVE"))	(command pause))
    (acet-sysvar-restore)
    );END C:
    (defun SetHvar ( hName hScale hAng hAssoc hGap) ;hLayer)
    (acet-sysvar-set (list "hpname" hname "hpscale" hScale "hpang" hAng "hpassoc" hAssoc "hpgaptol" hgap "clayer" "00-08hatch" "HPSEPARATE" 1))
    )

    e xin cảm ơn bác nhiều,nhưng bác có thể giúp e sửa lại chút chút là khi đánh lệnh h1 xong thi se pick luôn khoang cần hatch,sau đó thì hiện bảng hatch rồi mình chon kiểu hatch bằng phím 0 hay W(wall)... la sẽ hatch xong .à còn lisp bác vừa viết giúp e thi e đánh lệnh h1 rồi hiện cái bảng kiểu hatch nhưng khi e đánh kí tự W hay WC hay B thi hok hiện ra ji nữa :( (với nút thanks e hok nhìn thấy chỗ nào..giao diện mới quá bác thông cảm :P )


  7. mong các cao thủ viết giùm e 1 lisp về hatch với! cụ thể là khi mình muốn hatch,pick vao chỗ cần hatch-rồi có các kiểu hatch như Wall/grass/betone/ground/...dùng các phim' để chọn nhu W cho wall,B cho betone... hatch được cả phần hở ,co kéo được ((hpgaptol)và "hpassoc" 1))sau khi hatch xong thi phần hatch xong sẽ tự chuyển về layer 00-08hatch ...vì e gà quá nên cũng tý toáy cũng chẳng dc nên cơm cháo ji nên nhờ các cao thủ trên diễn đàn giúp e...


  8. thanks bác !!!cuối cùng thì e cũng dùng được rồi...

    có 1 lisp ve hatch cũng tham khảo trên diễn đàn nhưng e gà về lisp wá mong bác sửa giup với...đoạn lisp này sau khi hatch xong thi nó không tự chuyển về layer 00-09hatch và không có chế độ associative..e cũng mò thử thêm dòng (setvar "hpassoc" 1) vaf (setvar "hpgaptol" 1000.0) để có thể hatch cả miền hở nhưng bó tay :)...nên phai nhờ cao thủ giúp thôi.

    ;===== AUTO HATCH (hh) ========
    
    (defun mkhatch(v_hatchtp v_scale v_angle data_m / i)
    (command "hatch" v_hatchtp v_scale v_angle)
    (setvar "hpassoc" 1)
           (setq i 0)
    (while (< i (length data_m)) (progn
    	(command (nth i data_m))
    	(setq i (+ i 1))
    ))
    (command "")  
    )
    
    (defun c:hh(/ data_m check)
    
    
    (defun ah_import(/ p1 p2 old1 ent1 ent2 axa)
     (if (= nil hscale_d) (setq hscale_d 1))  
     (setq old1 (getvar "osmode") check 1)
     (setvar "osmode" 0)
     (setq p1 '(0 0 0) p2 p1)
     (command "line"  p1 p2 "")
    
     (setq data_m '())
     (setq ent1 (entlast) ent2 ent1)
    
     (princ ent1)
    
     (setvar "osmode" old1)
    
     (command "boundary")
     (setq p1 (getpoint))
     (while (not (= nil p1)) (progn
    
    (command p1)
    
    
    (setq p1 (getpoint))
    
     ))
     (command "")
    
     (setq ent1 (entnext ent1))
    
     (princ ent1)
     (if (= nil ent1) (setq check 0) (progn
    (while (not (= nil ent1)) (progn
    	(setq data_m (append data_m (list ent1)))
    	(setq ent1 (entnext ent1))
    ))
     ))
     (command "erase" ent2 "")
     (princ)
    )
    
    (defun ah_procced(/ i s1)
    
     (if (= 0 check) (princ "\ninvalid data") (progn
    (initget 1 "0 WALL W GRASS GR GROUND G MARBLE M WC S SAND B BRICK")
     	(setq s1 (getkword "\n0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK : "))
    (if (not (= nil s1)) (progn
    	(cond
    	  ((= "0" (strcase s1)) (mkhatch "dots" (* 1500 hscale_d) 0 data_m))
    	  ((= "WC" (strcase s1)) (mkhatch "ansi37" (* 2000 hscale_d) 45 data_m))
    	  ((or (= "GR" (strcase s1)) (= "GRASS" (strcase s1))) (progn
    			(mkhatch "CROSS" (* 500 hscale_d) 0 data_m)
    
    	  ))
    	  ((or (= "S" (strcase s1)) (= "SAND" (strcase s1))) (progn
    			(mkhatch "ar-sand" (* 30 hscale_d) 0 data_m)
    
    
    	  ))
    
    ((or (= "G" (strcase s1)) (= "GROUND" (strcase s1))) (mkhatch "hound" (* 3000 hscale_d) 0 data_m))
    ((or (= "M" (strcase s1)) (= "MARBLE" (strcase s1))) (mkhatch "ar-conc" (* 30 hscale_d) 0 data_m))
    ((or (= "B" (strcase s1)) (= "BRICK" (strcase s1))) (mkhatch "ar-b816c" (* 25 hscale_d) 0 data_m))
    ((or (= "W" (strcase s1)) (= "WALL" (strcase s1))) (mkhatch "ANSI31" (* 300 hscale_d) 0 data_m))
    	)
       ))						 
    
    (command "erase")
    (setq i 0)
    (while (< i (length data_m)) (progn
    	(command (nth i data_m))
    	(setq i (+ i 1))
    ))
    (command "")
    
     ))
    
     (princ)
    )
     (ai_undo_push)	
     (ah_import)
    
     (ah_procced)
     (ai_undo_pop)
    )

     

    hix hok có bác nào xem giúp e với ah...cuối năm nên chắc các bác cũng bận :)....năm hết tết đến,chúc cho diễn đàn ngày càng phát triển,ban quản trị và các thành viên 1 năm mới nhiều sức khỏe và nhiều ...xiền...heh.


  9. Mình đã thử sử dụng đi thử lại lisp đó rồi, vẫn bình thường.Bạn đã lấy lại phần mình sửa lỗi chưa ??? Mình post lại bên dưới, bạn thử xem sao.Nếu vẫn "không thấy gì" thì không còn cách nào khác, lúc sử dụng lệnh gặp lỗi ở chỗ nào bạn hãy ấn F2 và chụp lại màn hình cho ketxu xem thì mới biết được ^^..Như mình vẫn nói, hok ai chữa bệnh ung thư qua điện thoại cả :)

    ;free líp from cadviet.com @ gia_bach
    (defun c:d() (VeDim "d"))
    (defun c:dc() (VeDim "dc"))
    (defun c:da() (VeDim "da"))
    (defun c:qd() (VeDim "qd"))
    (defun c:dg() (Vedim "dg"))
    (defun VeDim(input / ov vl)
    (defun *error* (msg)
    (if ov (mapcar 'setvar vl ov)); reset Sys Vars
    (if (not(wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
    (princ (strcat "\n** Error: " msg " **")))
    (princ))
    
    (setq vl '("clayer" "cmdecho") ; Sys Var list
    ov (mapcar 'getvar vl)) ; Get Old values
    (setvar "cmdecho" 0) 
    (if (tblsearch "layer" "08-dim")
    (setvar "clayer" "08-dim")
    (command "-layer" "M" "08-dim" "" ) )
    (setvar "cmdecho" 1)
    (cond
    ((= input "d")(command "_dimlinear"))
    ((= input "da")(command "_dimaligned"))
    ((= input "dc")(command "_dimcontinue"))
    ((= input "dg")(command "_dimangular"))
    ((= input "qd")(command "qdim"))
    )
    (while (= (getvar "CMDACTIVE") 1) (command pause))
    (mapcar 'setvar vl ov) ; reset Sys Vars
    (princ)
    )
    ;;;;;;;

    thanks bác !!!cuối cùng thì e cũng dùng được rồi...

    có 1 lisp ve hatch cũng tham khảo trên diễn đàn nhưng e gà về lisp wá mong bác sửa giup với...đoạn lisp này sau khi hatch xong thi nó không tự chuyển về layer 00-09hatch và không có chế độ associative..e cũng mò thử thêm dòng (setvar "hpassoc" 1) vaf (setvar "hpgaptol" 1000.0) để có thể hatch cả miền hở nhưng bó tay :)...nên phai nhờ cao thủ giúp thôi.

    ;===== AUTO HATCH (hh) ========
    
    (defun mkhatch(v_hatchtp v_scale v_angle data_m / i)
    (command "hatch" v_hatchtp v_scale v_angle)
    (setvar "hpassoc" 1)
           (setq i 0)
    (while (< i (length data_m)) (progn
    	(command (nth i data_m))
    	(setq i (+ i 1))
    ))
    (command "")  
    )
    
    (defun c:hh(/ data_m check)
    
    
    (defun ah_import(/ p1 p2 old1 ent1 ent2 axa)
     (if (= nil hscale_d) (setq hscale_d 1))  
     (setq old1 (getvar "osmode") check 1)
     (setvar "osmode" 0)
     (setq p1 '(0 0 0) p2 p1)
     (command "line"  p1 p2 "")
    
     (setq data_m '())
     (setq ent1 (entlast) ent2 ent1)
    
     (princ ent1)
    
     (setvar "osmode" old1)
    
     (command "boundary")
     (setq p1 (getpoint))
     (while (not (= nil p1)) (progn
    
    (command p1)
    
    
    (setq p1 (getpoint))
    
     ))
     (command "")
    
     (setq ent1 (entnext ent1))
    
     (princ ent1)
     (if (= nil ent1) (setq check 0) (progn
    (while (not (= nil ent1)) (progn
    	(setq data_m (append data_m (list ent1)))
    	(setq ent1 (entnext ent1))
    ))
     ))
     (command "erase" ent2 "")
     (princ)
    )
    
    (defun ah_procced(/ i s1)
    
     (if (= 0 check) (princ "\ninvalid data") (progn
    (initget 1 "0 WALL W GRASS GR GROUND G MARBLE M WC S SAND B BRICK")
     	(setq s1 (getkword "\n0/Wall/Grass/Ground/MARBLE/WC/Sand/BRICK : "))
    (if (not (= nil s1)) (progn
    	(cond
    	  ((= "0" (strcase s1)) (mkhatch "dots" (* 1500 hscale_d) 0 data_m))
    	  ((= "WC" (strcase s1)) (mkhatch "ansi37" (* 2000 hscale_d) 45 data_m))
    	  ((or (= "GR" (strcase s1)) (= "GRASS" (strcase s1))) (progn
    			(mkhatch "CROSS" (* 500 hscale_d) 0 data_m)
    
    	  ))
    	  ((or (= "S" (strcase s1)) (= "SAND" (strcase s1))) (progn
    			(mkhatch "ar-sand" (* 30 hscale_d) 0 data_m)
    
    
    	  ))
    
    ((or (= "G" (strcase s1)) (= "GROUND" (strcase s1))) (mkhatch "hound" (* 3000 hscale_d) 0 data_m))
    ((or (= "M" (strcase s1)) (= "MARBLE" (strcase s1))) (mkhatch "ar-conc" (* 30 hscale_d) 0 data_m))
    ((or (= "B" (strcase s1)) (= "BRICK" (strcase s1))) (mkhatch "ar-b816c" (* 25 hscale_d) 0 data_m))
    ((or (= "W" (strcase s1)) (= "WALL" (strcase s1))) (mkhatch "ANSI31" (* 300 hscale_d) 0 data_m))
    	)
       ))						 
    
    (command "erase")
    (setq i 0)
    (while (< i (length data_m)) (progn
    	(command (nth i data_m))
    	(setq i (+ i 1))
    ))
    (command "")
    
     ))
    
     (princ)
    )
     (ai_undo_push)	
     (ah_import)
    
     (ah_procced)
     (ai_undo_pop)
    )

     

    ...!!!hok có bác nào giúp e sửa líp này với nhỉ..:)


  10. Do lệnh hatch trong lisp ban đầu của bạn còn thiếu thông số chọn điểm trong vùng Hatch đó mà

    Bạn sửa thành như thế này nhé :

    (defun c:Ht ()
    (command "-Bhatch" "P" "ANSI31" "300" "")
    (while (< 0 (getvar "CMDACTIVE"))	(command pause));end while
    (vl-cmdf "change" "L" "" "P" "LA" "00-09hatch" "")
    )

     

    Góp ý với bạn : ngoài tiếng tks kèm theo lời yêu cầu,bạn có thể dùng nút thanks để động viên hoặc để báo cho người giúp bạn biết là bạn đã ngó qua cái phần người ta đáp ứng nhu cầu của bạn.:")

     

    cảm ơn lời góp ý của bác...e sẽ để ý hơn...thanks bác!!! mà bác có thể xem giúp e cái lisp dim (d_dc_da_qd_dg.lsp) ở trên với được ko...e ko thể dùng được...đánh lệnh d hay da thì ko thấy có ji.?


  11. Bạn thêm dòng này vào trong mỗi câu lệnh (command "change" "L" "" "P" "LA" "00-09hatch" "")

    Ví dụ (defun c:Ht () (command "Bhatch" "P" "pattern" "ANSI31" "300" ""))

    -> (defun c:Ht () (command "Bhatch" "P" "pattern" "ANSI31" "300" "") (command "change" "L" "" "P" "LA" "00-09hatch" ""))

    trong đó layer 00-09hatch bạn thay bằng layer nào mà bạn muốn và layer đó phải có trong bản vẽ rồi.

     

    lisp hatch bác Tú sửa giúp e hok dùng dc roi,hatch vẫn để ở layer hiện hành.ko phai layer 00-09hatch...mong bác sửa giúp e với..cảm ơn bác trước :X


  12. Bình thường trước khi thao tác đã chuyển rồi bạn ạ.Cái này đã có trên 4room,chắc bạn chưa tìm hoặc tìm không thấy, mình post lại giúp bạn đây

    Dim : mình đang đặt lệnh tắt là

     

    Layer : 08-dim

    ;free lisp from cadviet.com @ ....(srr vi e quen tac gia, hinh nhu bac bach)
    ;CAC LENH VE DIMENSION, tra ve layer hien hanh
    
    (defun c:d() (VeDim "d"))
    (defun c:dc() (VeDim "dc"))
    (defun c:da() (VeDim "da"))
    (defun c:qd() (VeDim "qd"))
    (defun c:dg() (Vedim "dg")
    (defun VeDim(input / ov vl)
     (defun *error* (msg)
       (if ov (mapcar 'setvar vl ov)); reset Sys Vars
       (if (not(wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
         (princ (strcat "\n** Error: " msg " **")))
       (princ))
    
     (setq vl '("clayer" "cmdecho") ; Sys Var list
    ov (mapcar 'getvar vl))  ; Get Old values
     (setvar "cmdecho" 0) 
     (if (tblsearch "layer" "08-dim")
       (setvar "clayer" "08-dim")
       (command "-layer" "M" "08-dim" "" ) )
     (setvar "cmdecho" 1)
     (cond
       ((= input "d")(command "_dimlinear"))
       ((= input "da")(command "_dimaligned"))
       ((= input "dc")(command "_dimcontinue"))
       ((= input "dg")(command "_dimangular"))
      ((= input "qd")(command "qdim"))
       )
     (while (= (getvar "CMDACTIVE") 1) (command pause))
     (mapcar 'setvar vl ov) ; reset Sys Vars
     (princ)
     )
    ;;;;;;;

    Hatch thì mình để là 00-09hatch, bạn cứ tự sửa theo ý bạn nhé

    ;;;;;;;Hatch lay gia tri mac dinh
    ;;;;;;;;;;;;;;;;sau do tra ve layer hien hanh
    ;free lisp from cadviet.com @ ...(srr vi e quen tac gia)
    (defun c:h(/ ov vl)
    (setvar "hpname" "ansi31") 
      (setq vl '("clayer" "cmdecho"); Sys Var list
        ov (mapcar 'getvar vl)); Get Old values
      (setvar "cmdecho" 1) 
      (if (tblsearch "layer" "00-09hatch")
        (setvar "CLAYER" "00-09hatch")
        (command "-layer" "M" "00-09hatch" "" ) )
      (initdia)
      (command "hatch")
      (while (< 0 (getvar "CMDACTIVE"))
        (command pause)
      ) 
      (vl-cmdf "change" "L" "" "P" "LA" "00-09hatch" "")
      (mapcar 'setvar vl ov); reset Sys Vars
      (princ)
      )

     

     

    thanks bác ketxu nhiu ...nhưng e muốn dùng hatch qua lisp như sau:

    ;;; =========================== HATCH =================================

    HATCH

    (defun c:H0 () (command "Bhatch" "P" "pattern" "solid"))

    (defun c:Ht () (command "Bhatch" "P" "pattern" "ANSI31" "300" ""))

    (defun c:Hb () (command "Bhatch" "P" "pattern" "dang-01" "30" ""))

    sau khi đánh lệnh hatch tường ht thì hatch sẽ tự động chuyển về layer 00-09hatch...mong bác sửa giùm e với ...Và cái lisp chuyển về layer dim hình như hok dùng dc bác ơi...e đánh lệnh d thi no chẳng hiện ra cái chi chi :).


  13. Ý bạn là hatch bằng layer 00-09hatch, hatch xong trả về layer cũ hay hatch bằng layer hiện tại, hatch xong trả về layer 00-09hatch ??

     

    ý của em là khi mình đang vẽ bằng layer khác (vi' dụ là layer 00-01wall) ,,bình thường hatch xong thi sẽ phải chuyển từ layer 00-01wall về layer "00-09hatch"...nhưng h muốn hatch xong thi cái layer nó sẽ là layer 00-09hatch luôn...nếu được thì anh ketxu giup em thêm cái lisp là khi mình dùng lệnh dim (Như dimliagn hay dim ban kinh'..)thi đường dim cũng sẽ tự động nhảy về layer "08-dim(ví dụ thế). ..thanks u so much .!!!


  14. e là thành viên mới tham gia diễn đàn...e rất gà cad...e cung tham khao trên diễn đàn lisp về hatch : h e muốn làm thế nào ma hatch xong thi nó sẽ tự chuyển về layer ví dụ nhu "00-09hatch"...mong các cao thủ giúp e...

    ;;; =========================== HATCH =================================

    HATCH

    (defun c:H0 () (command "Bhatch" "P" "pattern" "solid"))

    (defun c:Ht () (command "Bhatch" "P" "pattern" "ANSI31" "450" ""))

×