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

[Nhờ chỉnh sửa] Lisp hatch nhanh.

Các bài được khuyến nghị

(defun c:h2 () (command "_layer" "Set" "--5-DUYTUAN-HATCH" "")
(setvar "cmdecho" 0)
(initget "P S")
(setq ansp (getkword "\n Chon kieu pick diem hay chon doi tuong < P/S > :"))
(setq p nil dt t)
;(WHILE (or (not p) (not dt))
(progn
(setq ten "SOLID" )
(if (= ansp "P")
  (progn
(while (setq p (getpoint "\n Chon 1 diem trong vung can hatch :"))
  	(lh1 p ten sc ang)
)
  )
  (progn
(princ "\n Chon doi tuong can hatch :")
(while (setq dt (ssget) )
(lh dt ten sc ang)
)
  )
 )
)
;);WHILE
(princ)
)
;;;;;;;;
(defun lh1(p name tle goc)
(setvar "hpgaptol" 50.0)
(vl-cmdf "bhatch" "P" name tle goc p "")
)
;;;;;;;;;;
(defun lh(dt name tle goc)
(setvar "hpgaptol" 50.0)
(vl-cmdf "bhatch" "P" name tle goc "S" dt "" "")
)

 

 

Tình hình là lisp này lúc dùng được lúc không, nó hiện ra thông báo

"this area has already been specified"

 

 

Em không biết gì về lisp và cái trên là em tự chắp vá nên không hiểu nguyên lý lắm (sau khi bị bác Thanh Bình mắng nên mặc cảm, tự mò)

Nhờ các cao thủ sửa giúp ạ. Em xin cảm ơn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

(defun c:h2 () (command "_layer" "Set" "--5-DUYTUAN-HATCH" "")
(setvar "cmdecho" 0)
(initget "P S")
(setq ansp (getkword "\n Chon kieu pick diem hay chon doi tuong < P/S > :"))
(setq p nil dt t)
;(WHILE (or (not p) (not dt))
(progn
(setq ten "SOLID" )
(if (= ansp "P")
  (progn
(while (setq p (getpoint "\n Chon 1 diem trong vung can hatch :"))
  	(lh1 p ten sc ang)
)
  )
  (progn
(princ "\n Chon doi tuong can hatch :")
(while (setq dt (ssget) )
(lh dt ten sc ang)
)
  )
 )
)
;);WHILE
(princ)
)
;;;;;;;;
(defun lh1(p name tle goc)
(setvar "hpgaptol" 50.0)
(vl-cmdf "bhatch" "P" name tle goc p "")
)
;;;;;;;;;;
(defun lh(dt name tle goc)
(setvar "hpgaptol" 50.0)
(vl-cmdf "bhatch" "P" name tle goc "S" dt "" "")
)

 

Tình hình là lisp này lúc dùng được lúc không, nó hiện ra thông báo

"this area has already been specified"

 

Em không biết gì về lisp và cái trên là em tự chắp vá nên không hiểu nguyên lý lắm (sau khi bị bác Thanh Bình mắng nên mặc cảm, tự mò)

Nhờ các cao thủ sửa giúp ạ. Em xin cảm ơn.

Lisp trên là Tue_NV viết. Bạn vào đây nhé :

http://www.cadviet.c...showtopic=19720

Tình hình là Bạn chỉnh sửa Lisp và bạn đã bỏ đi các đối số làm LISP không hiểu được.

Topic mà Tue_NV gửi Link có chứa yêu cầu của bạn.

Thắc mắc gì bạn post vào topic ở đường Link trên nhé.

Chúc vui

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Vậy bản có thể chỉnh sửa theo nhu cầu của mình được ko vì lisp theo link kia có nhiều cái bất tiện đối với mình.

Lệnh h2 sẽ tự động chuyển sang layer "--5-DUYTUAN-HATCH" và kiểu hatch là solid, sau đó là lựa chọn p/s như lisp theo link của bạn. Thanks u.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Tình hình là lisp này lúc dùng được lúc không, nó hiện ra thông báo

"this area has already been specified"

 

 

Em không biết gì về lisp và cái trên là em tự chắp vá nên không hiểu nguyên lý lắm (sau khi bị bác Thanh Bình mắng nên mặc cảm, tự mò)

Nhờ các cao thủ sửa giúp ạ. Em xin cảm ơn.

Vậy bản có thể chỉnh sửa theo nhu cầu của mình được ko vì lisp theo link kia có nhiều cái bất tiện đối với mình.

Lệnh h2 sẽ tự động chuyển sang layer "--5-DUYTUAN-HATCH" và kiểu hatch là solid, sau đó là lựa chọn p/s như lisp theo link của bạn. Thanks u.

Nói chung là chưa thay đổi được mấy Dragon à.

Theo nội quy thì phải tìm kiếm trước khi hỏi - thấy thì đọc - đọc hợp thì sử dụng - k hợp thì tiếp tục hỏi tại chính topic đó như bác Tuệ vừa góp ý. Bạn k nghe lại tiếp tục hỏi ở đây ^^

Mình viết ví dụ giúp bạn, tuy nhiên topic này sẽ sớm bị góp chung vào những topic cùng chức năng.

 

P/s : mong là việc mặc cảm sẽ giúp bạn có động lực cày cái món thú vị này thêm tí ti nữa mà mần cho sướng

(defun c:h2 ()
(acet-sysvar-set (list "HPNAME" "SOLID" "clayer" "--5-DUYTUAN-HATCH"))
(initget "S P")
(if (= (getkword "Select / Point [select/Point] :") "S")
(command "-hatch" "S")
(command "-hatch"))
(acet-sysvar-restore))

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

;*********************************************************************
Hatch nhanh mot so mau hay dung
(defun c:h2()
(setq vList '("hpname" "hpscale" "hpang" "hpassoc" "hpgaptol" "clayer" "HPSEPARATE") ; Sys Var list
vValue (mapcar 'getvar vList)) 
(initget 1 "0 Set S Sfa F Cat C BT B Earth E STeel ST T Line L ")

(setq s1 (getkword "\n0/Set/sFa/Cat/Bt/Earth/sTeel/Line[0/Set/sFa/Cat/Bt/Earth/sTeel/Line] "))
 (cond
((= "0" (strcase s1)) (SetHvar "ansi37" 500 0 1 20 ))
((or (= "S" (strcase s1)) (= "SET" (strcase s1))) (SetHvar "ansi31" 500 0 1 20))

((or (= "SF" (strcase s1)) (= "sFa" (strcase s1)))(SetHvar "ANSI33" 500 0 1 20))
((or (= "F" (strcase s1)) (= "sFa" (strcase s1)))(SetHvar "ANSI33" 500 0 1 20))
((or (= "C" (strcase s1)) (= "CAT" (strcase s1)))(SetHvar "AR-SAND" 100 0 1 20))          
((or (= "B" (strcase s1)) (= "BT" (strcase s1)))(SetHvar "AR-CONC" 30 0 1 20))
((or (= "E" (strcase s1)) (= "EARTH" (strcase s1))) (SetHvar "EARTH" 500 0 1 20))

((or (= "ST" (strcase s1)) (= "STEEL" (strcase s1))) (SetHvar "STEEL" 500 0 1 20))
((or (= "T" (strcase s1)) (= "STEEL" (strcase s1))) (SetHvar "STEEL" 500 0 1 20))
((or (= "L" (strcase s1)) (= "LINE" (strcase s1))) (SetHvar "LINE" 500 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 "Hatch" 1))
)
;*********************************************************************

;;; ================================ hatch mien solid============================

(Defun C:sol ()

(command "-hatch" "la" "hatch" "p" "solid" pause)

(princ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

bạn có thể cái của mình xem sao cái list đầu là mình cũng edit lại cái sau thì mình tự làm thôi, cũng toàn chắp vá ý mà; mới tìm hiểu viết list có tuần nay bạn cần giáo trình có thể download ở đây

http://cauduongbkdn.com/f@rums/showthread.php?12102-T%C3%A0i-li%E1%BB%87u-h%E1%BB%8Dc-autolisp

 

cái này là cái theo ý mình; nên bạn cần sửa lại;

1. phải tự thêm một layer mang tên hatch hoặc sửa lại layer "hatch" trong list mình thành layer của bạn;

2. mình thường xuyên vẽ với tỷ lệ 1:100 lên hệ số tỷ lệ con số đầu tiên trong chuỗi list 1 ý( list 2 là Solid thì làm gì có) (500;30;100) bạn tự sửa lại theo ý mình.

chúc bạn may mắn. Do mới làm quen với cái này lên edit của các bậc tiền bối trên; kính mong các bác thông cảm và bỏ qua cho em hiii :ph34r:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chắc bạn lấy nguồn ở đây ^^

http://www.cadviet.com/forum/index.php?showtopic=13203&view=findpost&p=130013

 

Không sao, tất cả đều bắt đầu bằng edit. Quan trọng là mình edit được cái của người khác thành của mình, rồi nhiều cái của mình gộp lại thì lại ra trò, chứ nhiều người còn không chịu làm việc ấy cơ ^^ Tks bạn

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.cadviet.c...ndpost&p=130013

Chắc bạn lấy nguồn ở đây ^^

http://www.cadviet.c...ndpost&p=130013

 

Không sao, tất cả đều bắt đầu bằng edit. Quan trọng là mình edit được cái của người khác thành của mình, rồi nhiều cái của mình gộp lại thì lại ra trò, chứ nhiều người còn không chịu làm việc ấy cơ ^^ Tks bạn

Hi. Thứ nhất có lời của bác em không những yên tâm mà vui hỉ hả hà. Em like bác phát chúc bát luôn khỏe vui vẻ; tích cực chia sẻ. Nhân đây em mún hỏi bác làm thế nào mà tìm lại topic http://www.cadviet.c...ndpost&p=130013 nhanh thế ạ dùng công cụ gì trên diễn đàn mình. Đôi lúc em cũng cần những cách này mừ. hai nữa là Diễn đàn mình cho phép gõ với trình soạn thảo văn bản đẩy đủ + add đoạn code (hiển thị cửa sổ không nằm trong bài đăng) em mún biết cách để blog cũng có chức năng này thì làm thế nào ạ. Em xin cảm ơn. Ai biết thì cũng xin cho em biết ha.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.cadviet.c...ndpost&p=130013

Hi. Thứ nhất có lời của bác em không những yên tâm mà vui hỉ hả hà. Em like bác phát chúc bát luôn khỏe vui vẻ; tích cực chia sẻ. Nhân đây em mún hỏi bác làm thế nào mà tìm lại topic http://www.cadviet.c...ndpost&p=130013 nhanh thế ạ dùng công cụ gì trên diễn đàn mình. Đôi lúc em cũng cần những cách này mừ. hai nữa là Diễn đàn mình cho phép gõ với trình soạn thảo văn bản đẩy đủ + add đoạn code (hiển thị cửa sổ không nằm trong bài đăng) em mún biết cách để blog cũng có chức năng này thì làm thế nào ạ. Em xin cảm ơn. Ai biết thì cũng xin cho em biết ha.

 

- Mình viết nhiều r, khó nhớ hết, n đọc "code phong" thì nhớ mang máng -> Google theo tên hàm -> ra bài của mình ^^

- Phần các ứng dụng mở rộng của diễn đàn thì bạn phải hỏi bác Hoành, vì bác ấy code web. Ngoài ra cũng phải chú ý diễn đàn của bạn là SMF, hay VBB, IPB, PHP.... thì mới tìm đc những thông tin liên quan ^^

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhờ các anh giúp em sửa đoạn code dưới đây có lực nét của Hatch (lineweight = 0.09) giúp em với. em tìm mọi cách mà không được!

(defun c:Hh(/)  (vl-load-com)
 (command "-boundary" "") (SETQ A (GETPOINT "==> PICK DIEM : "))
(command "-layer" "m" "Hatch" "c" "8" "" "") 
 (command "bhatch" "P" "ANSI31" "20" "0" A "")
 (princ))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Nhờ các anh giúp em sửa đoạn code dưới đây có lực nét của Hatch (lineweight = 0.9) giúp em với. em tìm mọi cách mà không được!

(defun c:Hh(/)  (vl-load-com)
 (command "-boundary" "") (SETQ A (GETPOINT "==> PICK DIEM : "))
(command "-layer" "m" "Hatch" "c" "8" "" "") 
 (command "bhatch" "P" "ANSI31" "20" "0" A "")
 (princ))

Bạn sửa lại dòng 

(command "-layer" "m" "Hatch" "c" "8" "" "")

thành

(command "-layer" "m" "Hatch" "c" "8" "" "LWeight" 0.09 "" "") 

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cảm ơn anh, nhưng cái lực nét của Hatch vẫn là Bylayer , không thấy thay đổi lực nét thành lineweight = 0.09.

Cách nhanh nhất là chuyển lineweight về 0.09 rồi dùng lisp.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhờ các anh sửa giúp em sau khi thực hiện hatch xong muốn chuyển về Layer: 0 và lineweight : Bylayer mà em không chuyển được với!

(defun c:qqq ()
(command "lweight" 0.09)
(command "-layer" "m" "Hatch" "c" "8" "" "")
(command "-bhatch" "p" "ansi31" "5" "" ) 
(command "-layer" "s" "0"  "")
(princ))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Nhờ các anh sửa giúp em sau khi thực hiện hatch xong muốn chuyển về Layer: 0 và lineweight : Bylayer mà em không chuyển được với!

(defun c:qqq ()
(command "lweight" 0.09)
(command "-layer" "m" "Hatch" "c" "8" "" "")
(command "-bhatch" "p" "ansi31" "5" "" ) 
(command "-layer" "s" "0"  "")
(princ))

=>​

(defun c:qqq  ()
 (command "lweight" 0.09)
 (command "-layer" "m" "Hatch" "c" "8" "" "")
 (command "-bhatch" "p" "ansi31" "5" "" pause "")
 (command "lweight" "Bylayer")
 (command "-layer" "s" "0" "")
 (princ))
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

=>​

(defun c:qqq  ()
 (command "lweight" 0.09)
 (command "-layer" "m" "Hatch" "c" "8" "" "")
 (command "-bhatch" "p" "ansi31" "5" "" pause "")
 (command "lweight" "Bylayer")
 (command "-layer" "s" "0" "")
 (princ))

cảm ơn anh, vậy mà em loay hoay chỗ lày mãi. 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×