Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
16 replies to this topic

#1 dragontalon0802

dragontalon0802

    biết lệnh erase

  • Members
  • PipPipPip
  • 103 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 26 December 2011 - 08:46 PM


(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.
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 26 December 2011 - 09:04 PM


(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
  • 2

#3 dragontalon0802

dragontalon0802

    biết lệnh erase

  • Members
  • PipPipPip
  • 103 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 26 December 2011 - 09:29 PM

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.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 26 December 2011 - 09:46 PM


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))

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 dragontalon0802

dragontalon0802

    biết lệnh erase

  • Members
  • PipPipPip
  • 103 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 26 December 2011 - 10:20 PM

Thanks bác Ketxu, sau mối lần dại dột là một lần rút kinh nghiệm. Hy vọng chưa tới mức bị ban...Lại mặc cảm tiếp.
PS: hình như lisp bác dùng ko được bác ketxu à.
  • 0

#6 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 01 April 2012 - 11:09 PM

;*********************************************************************
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....ệu-học-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:
  • 1

#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 02 April 2012 - 08:05 AM

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
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 05 April 2012 - 02:00 AM

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.
  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 05 April 2012 - 09:09 AM

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 ^^
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#10 hoangkimoanh

hoangkimoanh

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 12 April 2016 - 06:25 AM

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))

  • 0

#11 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 12 April 2016 - 07:58 AM

 

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 "" "") 


  • 1

#12 hoangkimoanh

hoangkimoanh

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 12 April 2016 - 09:54 AM

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.


  • 0

#13 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 12 April 2016 - 11:45 AM

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.


  • 1

#14 hoangkimoanh

hoangkimoanh

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 13 April 2016 - 05:43 AM

cảm ơn anh, có lẽ không có cách nào ngoài cách đó.


  • 0

#15 hoangkimoanh

hoangkimoanh

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 06 June 2016 - 08:55 AM

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))

  • 0

#16 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 06 June 2016 - 10:10 AM

 

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))

  • 1

#17 hoangkimoanh

hoangkimoanh

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 06 June 2016 - 03:00 PM

 

=>​

(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. 


  • 0