Đến nội dung


Hình ảnh
* * * - - 3 Bình chọn

Hướng dẫn lập trình Lisp


  • Please log in to reply
497 replies to this topic

#221 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 16 April 2010 - 12:14 PM

anh ssg ơi anh cho em yahoo của anh đi hì!

Chào bạn!
Theo ssg hiểu là bạn muốn trao đổi riêng với ssg về một số vấn đề gì đó? Ssg cũng thường nhận được một số tin nhắn với nội dung tương tự như vậy. Trong đa số các trường hợp, ssg đã có câu trả lời chung như thế này:
Mọi vấn đề, nếu không mang tính cá nhân riêng tư, bạn hãy post công khai trên diễn đàn, sẽ có rất nhiều người quan tâm đến vấn đề bạn nêu và cùng nhau trao đổi, chia sẻ, học hỏi lẫn nhau. Điều đó có ích hơn gấp ngàn lần việc trao đổi riêng giữa 2 người. CADVIET phát triển được như hôm nay một phần cũng là nhờ tinh thần cộng đồng ấy.
Mong rằng bạn, cũng như một số bạn đã từng gởi tin nhắn riêng với ý muốn trao đổi chuyên môn hiểu cho.
Chúc bạn vui khi tham gia diễn đàn.
  • 2

#222 quangtvxd

quangtvxd

    biết zoom

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

Đã gửi 17 April 2010 - 04:37 PM

Chào các bác, ai giúp mình viết đoạn lisp có thể thay đổi các giá trị trong BLOCK có thuộc tính rồi các giá trị khác trong BLOCK đó thay đổi theo một công thức nào đó, Ví dụ như file thống kê thép sau: http://www.cadviet.c...pfiles/2/00.dwg , khi thay đổi chiều dài thì tổng chiều dài, trọng lượng cũng thay đổi theo. Cám ơn nhiều....
  • 0

#223 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 17 April 2010 - 07:52 PM

Cám ơn các Bác.
PP đang định dùng Lisp để vẽ mặt lưới 3D như bản vẽ dưới đây.
Thông số cho trước: L1, L2, L3 , L4, L5, H1, H2, R1, R2 và angle 25 độ.
http://www.cadviet.c...mat_luoi_3d.dwg

(Mới "nghiên kíu" thôi, chứ chưa viết gì cả)
...

PP vừa viết thử đoạn code dưới đây dùng để vẽ mặt lưới như bản vẽ post như trên.
Nhờ các Bác check và bổ sung để vẽ được như bản vẽ mẫu 3D trên.
Cám ơn nhiều.
;Lenh VML (Ve Mat Luoi) Phiphi- Cadviet.com
;===============================================

(defun C:VML (/ p1 p2 p3 p4 Edge1 Edge2 Edge3 Edge4)
(vl-load-com)

(setq col (getvar "cecolor"))
(setq OLDSNAP (getvar "OSMODE") ;store system variables
OLDBLIP (getvar "BLIPMODE")
OLDLIGHT (getvar "HIGHLIGHT")
);setq
;===============================================
(setvar "CMDECHO" 0) ;change system variables
(setvar "BLIPMODE" 0)
(setvar "OSMODE" 0)
(command "Undo" "Begin")
(command "ucs" "World")

(Setq
p1(getpoint "\n Diem goc P1: ")
p2(getpoint "\n Diem P2: ")
p3(getpoint "\n Diem P3: ")
p4(getpoint "\n Diem P4: "))

(command "layer" "m" "S_edge1" "C" "4" "" "")
;(command "ucs" "3" p2 p3 p1)

(vl-cmdf "_arc" p2 "E" p1 "A" "-25")
(setq Edge1 (entlast))
(vl-cmdf "_arc" p2 "E" p3 "A" "25")
(setq Edge2 (entlast))

(command "layer" "m" "S_edge2" "C" "5" "" "")
;(command "ucs" "3" p4 p1 p3)

(vl-cmdf "_arc" p4 "E" p3 "A" "-25")
(setq Edge3 (entlast))
(vl-cmdf "_arc" p4 "E" p1 "A" "25")
(setq Edge4 (entlast))

(command "layer" "m" "S_sail" "C" "41" "" "")
(command "_edgesurf" Edge1 Edge2 Edge3 Edge4 "")
(setq sail (entlast))

;(command "MOVE" sail "" P1 P3)
(command "ucs" "World")

;===============================================
(setvar "cecolor" col)
(setvar "OSMODE" OLDSNAP) ;reset system variables
(setvar "BLIPMODE" OLDBLIP)
(setvar "HIGHLIGHT" OLDLIGHT)
(princ) ;exit quietly
(prompt"\nDone\n")
(command "Undo" "End")
);defun
(prompt "\n Lenh VML (Ve Mat Luoi) ")

  • 0

#224 quangtvxd

quangtvxd

    biết zoom

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

Đã gửi 25 May 2010 - 10:20 AM

Tự tay mình lập một chương trình Lisp có gì khác so với nhờ ai đó làm? Chưa cần xét kết quả, điểm khác nhau rất cơ bản là bạn sẽ có được cái cảm giác rất là khoái chí (không thể diễn tả) khi chạy thử chương trình.
Ssg lập topic này không ngoài mục đích tạo điều kiện cho các bạn tự mình tìm hiểu và khám phá cái cảm giác "khoái chí không thể diễn tả" nói trên.
Với tinh thần "Share is Receive", ssg cũng mong các bạn đã thành thạo Lisp quan tâm giúp đỡ các bạn mới để cộng đồng Lisp của CadViet ngày càng đông vui và tạo được nhiều chương trình hữu ích.
Để bắt đầu, ssg post lại một bài viết cũ, nhưng có lẽ vẫn còn mới đối với một số bạn. Hy vọng sẽ giúp được chút gì đó cho các bạn mới tiếp cận với Lisp:

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc

Bài viết của bạn "ssg" hay quá , bạn có thể tiếp tục thêm vài bài viết khác để anh em có thể học hỏi được không, chứ đọc sách thì khó hiểu hơn bạn viết nhiều.
  • 0

#225 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 04 June 2010 - 09:15 AM

Không hiểu tại sao trong bản vẽ này không sử dụng các method : explode; getboundingbox đối với Block thuộc tính được.
Block này có tên là coc d600
Khi sử dụng method explode thì CAD lại báo lỗi này :
; error: Automation Error. Invalid input

Còn khi sử dụng method getboundingbox thì không thể tìm được các điểm max, min được

Tại sao vậy nhỉ? Trong khi các bản vẽ khác lại sử dụng được?

Đây là Bản vẽ : http://www.mediafire.com/?t2zyyclkzjt

Nguyên nhân tại sao vậy nhỉ???
Tue_NV không biết vì cớ làm sao?
Rất mong nhận được sự giúp đỡ của các bác.
Tue_NV xin cảm ơn.
  • 0

#226 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1432 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 04 June 2010 - 02:59 PM

Không hiểu tại sao trong bản vẽ này không sử dụng các method : explode; getboundingbox đối với Block thuộc tính được.
Block này có tên là coc d600
Khi sử dụng method explode thì CAD lại báo lỗi này :
; error: Automation Error. Invalid input

Còn khi sử dụng method getboundingbox thì không thể tìm được các điểm max, min được

Tại sao vậy nhỉ? Trong khi các bản vẽ khác lại sử dụng được?

Đây là Bản vẽ : http://www.mediafire.com/?t2zyyclkzjt

Nguyên nhân tại sao vậy nhỉ???
Tue_NV không biết vì cớ làm sao?
Rất mong nhận được sự giúp đỡ của các bác.
Tue_NV xin cảm ơn.

Tue_NV sài phiên bản CAD nào ?
Test trên CAD 2008, mọi chuyện bình thường.
  • 0

#227 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 12 June 2010 - 01:53 AM

Khi sd lệnh insert với hộp thoại, ta dễ dàng chèn một file cùng tên vào để thay thế block có sẵn trong bản vẽ. Nhưng ở chế độ dòng lệnh, lệnh insert mặc định dùng block có trên bản vẽ mà kg dùng file mặc dù ta đã đánh đầy đủ đường dẫn đến file cần thiết.
Làm thế nào viết một lisp sd lệnh insert (không dùng hộp thoại) để chèn một file vào thay thế một block cùng tên đã có trong bản vẽ. Xin các bạn hướng dẫn. Cám ơn
  • 0

#228 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 12 June 2010 - 02:35 PM

Khi sd lệnh insert với hộp thoại, ta dễ dàng chèn một file cùng tên vào để thay thế block có sẵn trong bản vẽ. Nhưng ở chế độ dòng lệnh, lệnh insert mặc định dùng block có trên bản vẽ mà kg dùng file mặc dù ta đã đánh đầy đủ đường dẫn đến file cần thiết.
Làm thế nào viết một lisp sd lệnh insert (không dùng hộp thoại) để chèn một file vào thay thế một block cùng tên đã có trong bản vẽ. Xin các bạn hướng dẫn. Cám ơn

Chào bác Trungngamy,
Bác xài thử code này xem có đúng ý bác không nhé:
(command "insert" "~")
Chúc bác vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#229 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 12 June 2010 - 02:45 PM

Chào bác Trungngamy,
Bác xài thử code này xem có đúng ý bác không nhé:
(command "insert" "~")
Chúc bác vui.

Cám ơn bạn. Mình thử rồi, kg đc bạn ạ, khi gặp "~" nó mở hộp thoại.

Mình đã tự làm đc rồi. Để thay một file khác thành block đã có. Làm như sau
(command "_.insert" "tenblockcu=tenfilemoi" ^C)
Tenfilemoi có thể khác tenblockcu và phải có trong thư mục hiện hành hoặc trong các đường dẫn cad hoặc đầy đủ đường dẫn
Mình đưa lên để các bạn tham khảo chơi. Có thể sẽ có cách khác
  • 1

#230 quangtvxd

quangtvxd

    biết zoom

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

Đã gửi 12 June 2010 - 05:22 PM

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc
[/quote]

Xin hỏi: SS+Entity và Database có nghĩa là gì vậy.
  • 0

#231 duyanhhcm

duyanhhcm

    biết vẽ arc

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

Đã gửi 13 June 2010 - 01:00 AM

- Mình cũng đã tự làm được một số ứng dụng hỗ trợ công việc. Xin góp một tẹo với diễn đàn.
- Sách: mình chỉ dùng 2 tập của tác giả Nguyễn Hữu Lộc Tp.HCM
- Tham khảo: Help, một số Web về từng chủ đề như: Dialog, Menu ....
- Ý tưởng: hầu hết xuất phát từ thực tế mình vấp phải. Ngày nào cũng phải làm mà làm đi làm lại nó cay cú lắm, tại sao không lập cho "máy vi tính" nó chạy.
- Ngoài ra, diễn đàn Cadviet.com đã cung cấp hầu hết các ý tưởng cho mình. Chỉ có điều trên diễn đàn chỉ đủ không gian nêu được vấn đề, hoặc cách xử lý cơ bản. Còn để một ứng dụng "sống" được, mình cần thể hiện một cách quy củ hơn. Đặc biệt khâu trình bày, khâu ktra lỗi, khâu xuất nhập ra file...
- Mình thừa nhận DuyLisp của mình có nhái lại một số ý tưởng (như một số bạn đã "lói"). Nếu bạn chạy bản Full, sẽ thấy nó hơn hẳn về cấp độ so với những lisp nhỏ lẻ được post trên diễn đàn. Mình chỉ nhái lại ý tưởng thôi, còn code gần như ko sử dụng. Mình nghĩ diễn đàn không phải là nơi mình có thể xin đầy đủ 100% tài liệu. Đây là ngôi nhà chung giúp bạn khai thông các bế tắc, để từ đó có kiến thức tối thiểu để đọc sách, để vun đắp cho "đứa con" của mình. Dù gì, bạn phải đặt được cái tôi trong chương trình mình làm ra.
- Mình thấy cách hướng dẫn qua file "Relax" của bác ssg mang ý tưởng rất tổng thể. Cho anh em một cái nhìn tổng quan về Lisp. Cách này có ích cho cả những người đã tập tành lisp như chúng tôi. Mong bác phát huy nhiều hơn nữa.
Dạo này đi công trường nhiều wá, không thăm hỏi được anh em. Cho gửi lời chào đến anh em và ban quản trị nhé !
  • 0
DU KHONG TIM THAY PHUOC, IT RA THAY HOA MA TRANH DI...

#232 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 14 June 2010 - 07:14 AM

Mình có vần đề tìm điểm vuông góc như sau: hỏi chọn điểm thứ nhất a, thứ hai b và thứ ba c. Góc tạo bởi ba và bc lại không phải là 90 dộ mà lệch 1 chút. Cần lấy độ dài từ b đến c và xác định lại điểm c sao cho góc giữa ba và bc là 90 độ. Mình đã viết 1 đoạn gải quyết vấn đề này nhưng ví dụ chia mặt phẳng oxy ra làm 4 phần thì có 1 phần tư hình vẽ sẽ bị lộn ngược nghĩa là điểm c sau khi xác định lại lại mằm đối xứng với điểm c cũ qua trục ba. Bác nào tìm ra nguyên nhân hoặc chỉnh giúp mình đoạn này với. Cám ơn!

(DEFUN c:ve4diem ( )
(setq a (getpoint "\nChon diem 1: "))
(setq b (getpoint a"\nChon diem 2: "))
(setq ct (getpoint b"\nChon diem 3: "))
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(setq daiab (distance a b))
(setq gocab (angle b a))

(setq gocbct (angle b ct))
(setq daibct (distance b ct))

(setq gocchenhlech (- gocbct gocab))

(Cond
((< gocab gocbct)
(setq goclech (+ (- gocbct gocab) (/ pi 2)))
)
((> gocab gocbct)
(setq goclech (- (- gocbct gocab) (/ pi 2)))
)
)

(setq goctinhra (- gocbct goclech))
(setq c (polar b goctinhra daibct))
(setq d (polar c gocab daiab))

(command "pline" a b c d a "")

(setvar "osmode" luubatdiem)
(princ)
)
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#233 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1432 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 14 June 2010 - 08:14 AM

Mình có vần đề tìm điểm vuông góc như sau: hỏi chọn điểm thứ nhất a, thứ hai b và thứ ba c. Góc tạo bởi ba và bc lại không phải là 90 dộ mà lệch 1 chút. Cần lấy độ dài từ b đến c và xác định lại điểm c sao cho góc giữa ba và bc là 90 độ. Mình đã viết 1 đoạn gải quyết vấn đề này nhưng ví dụ chia mặt phẳng oxy ra làm 4 phần thì có 1 phần tư hình vẽ sẽ bị lộn ngược nghĩa là điểm c sau khi xác định lại lại mằm đối xứng với điểm c cũ qua trục ba. Bác nào tìm ra nguyên nhân hoặc chỉnh giúp mình đoạn này với. Cám ơn!

(DEFUN c:ve4diem ( )
(setq a (getpoint "\nChon diem 1: "))
(setq b (getpoint a"\nChon diem 2: "))
(setq ct (getpoint b"\nChon diem 3: "))
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(setq daiab (distance a :cheers:)
(setq gocab (angle b a))

(setq gocbct (angle b ct))
(setq daibct (distance b ct))

(setq gocchenhlech (- gocbct gocab))

(Cond
((< gocab gocbct)
(setq goclech (+ (- gocbct gocab) (/ pi 2)))
)
((> gocab gocbct)
(setq goclech (- (- gocbct gocab) (/ pi 2)))
)
)

(setq goctinhra (- gocbct goclech))
(setq c (polar b goctinhra daibct))
(setq d (polar c gocab daiab))

(command "pline" a b c d a "")

(setvar "osmode" luubatdiem)
(princ)
)

Vấn đề của bạn có thể đuợc hiểu như sau :
Từ điểm B trên đuờng thẳng AB, tìm điểm C sao cho :
- CB vuông góc với BA
- CB có độ dài cho truớc
- C gần với 1 điểm C' cho truớc.


sẽ có 2 điểm C1 và C2 thõa điều kiện :
- CB vuông góc với BA
- CB có độ dài cho truớc
C1 và C2 đối xứng nhau qua đ/t AB

(setq C1 (polar b (+ gocab (/ pi 2)) daibct))
(setq C2 (polar b (- gocab (/ pi 2)) daibct))


So sánh khoảng cách giữa điểm C1 và C2 đến điểm C' cho truớc, tìm đuợc kết quả.
(if (< (distance ct C1) (distance ct C2))
(setq c C1)
(setq c C2))


Code của bạn :
(DEFUN c:ve4diem ()
(setq a (getpoint "\nChon diem 1: "))
(setq b (getpoint a "\nChon diem 2: "))
(setq ct (getpoint b "\nChon diem 3: "))
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(setq daiab (distance a b ))
(setq gocab (angle b a))

(setq gocbct (angle b ct))
(setq daibct (distance b ct))

(setq c1 (polar b (+ gocab (/ pi 2)) daibct)
c2 (polar b (- gocab (/ pi 2)) daibct))
(if (< (distance ct c1) (distance ct c2))
(setq c c1)
(setq c c2))

(setq d (polar c gocab daiab))

(command "pline" a b c d a "")

(setvar "osmode" luubatdiem)
(princ)
)

  • 1

#234 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 15 June 2010 - 04:33 PM

Mình có vần đề tìm điểm vuông góc như sau: hỏi chọn điểm thứ nhất a, thứ hai b và thứ ba c. Góc tạo bởi ba và bc lại không phải là 90 dộ mà lệch 1 chút. Cần lấy độ dài từ b đến c và xác định lại điểm c sao cho góc giữa ba và bc là 90 độ. Mình đã viết 1 đoạn gải quyết vấn đề này nhưng ví dụ chia mặt phẳng oxy ra làm 4 phần thì có 1 phần tư hình vẽ sẽ bị lộn ngược nghĩa là điểm c sau khi xác định lại lại mằm đối xứng với điểm c cũ qua trục ba. Bác nào tìm ra nguyên nhân hoặc chỉnh giúp mình đoạn này với. Cám ơn!
...

Trước đây mình cũng có viết một hàm vẽ HCN với yêu cầu khác của bạn một chút.
Bạn có thể tham khảo để thấy được kết quả trong khi chọn điểm thứ ba.
(defun RectangPts (p1 p2 rp3 rp4 / a )
(setq a (angle p1 p2))
(set rp4 (inters p1 (polar p1 (+ a (/ pi 2)) 100) (eval rp3) (polar (eval rp3) a 100) nil))
(set rp3 (polar (eval rp4) a (distance p1 p2)))
)

(defun C:RotateRectang (/ n p1 p2 p3 p4 a grdat om)
(setq p1 (getpoint "\nPoint 1:") p2 (getpoint p1 "\nPoint 2:") a (angle p1 p2))
(while (/= 3 n)
(setq grdat (grread t 7 0) n (car grdat) p3 (cadr grdat))
(if (eq 5 n)
(progn
(redraw)(RectangPts p1 p2 'p3 'p4 )
(grvecs (list -7 p1 p2 p2 p3 p3 p4 p4 p1) )
) )
)
(setq om (getvar "osmode"))
(setvar "osmode" 0)
(redraw)(RectangPts p1 p2 'p3 'p4 )
(command "PLINE" p1 p2 p3 p4 "c" )
(setvar "osmode" om)
)

  • 0

#235 quangtvxd

quangtvxd

    biết zoom

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

Đã gửi 17 June 2010 - 03:46 PM

Mình có một vấn đề cần hỏi: làm sao tắt mở được chế độ "osnap" trong auto lisp để khi chạy lệnh lisp không bị bắt điểm lung tung, cám ơn.
  • 0

#236 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 18 June 2010 - 02:01 AM

Mình có một vấn đề cần hỏi: làm sao tắt mở được chế độ "osnap" trong auto lisp để khi chạy lệnh lisp không bị bắt điểm lung tung, cám ơn.

Không đâu xa cả, bạn tham khảo lisp ngay phía trên bài viết của bạn đi. biến OSMODE
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#237 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 25 June 2010 - 04:56 PM

Làm thế nào để ta lấy được tọa độ các đỉnh trung gian và điểm cuối của 1 Leader
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#238 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 25 June 2010 - 08:56 PM

Làm thế nào để ta lấy được tọa độ các đỉnh trung gian và điểm cuối của 1 Leader

1- Bạn lọc lấy DXF 10 trong data của nó là xong ngay.
2- Xin chia sẻ một chút kinh nghiệm "vọc" lisp của ssg. Không riêng gì leader, mà với bất cứ đối tượng nào, ssg có sẵn 1 "lá bùa" vẫn load thường trực:

(defun C:EG( )
(setq e (car (entsel)))
(textscr)
(setq d (entget e))
)

Đối chiếu kết quả d nhận được với object bạn sẽ tự nghiệm ra bản chất vấn đề. Hiểu được rồi thì xử lý là chuyện nhỏ! Hy vọng kinh nghiệm nho nhỏ trên sẽ giúp được chút gì đó cho bạn.

Brazil-Portugal ra sân rồi, chào bạn!
  • 1

#239 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 26 June 2010 - 09:28 AM

1- Bạn lọc lấy DXF 10 trong data của nó là xong ngay.
2- Xin chia sẻ một chút kinh nghiệm "vọc" lisp của ssg. Không riêng gì leader, mà với bất cứ đối tượng nào, ssg có sẵn 1 "lá bùa" vẫn load thường trực:

(defun C:EG( )
(setq e (car (entsel)))
(textscr)
(setq d (entget e))
)

Đối chiếu kết quả d nhận được với object bạn sẽ tự nghiệm ra bản chất vấn đề. Hiểu được rồi thì xử lý là chuyện nhỏ! Hy vọng kinh nghiệm nho nhỏ trên sẽ giúp được chút gì đó cho bạn.

Brazil-Portugal ra sân rồi, chào bạn!


Em cũng viết 1 "lá bùa" cho mình. hehe, sai lầm chết người của em chính từ "lá bùa lởm" này :s_big:

(defun c:tra (/ KQ i E)
(setq E (entsel) i -3)
(while (< i 500)
(setq KQ (cdr (assoc i (entget (car E)))))
(if KQ (progn
(prompt (strcat "\n"(rtos i 2 0) " - "))
(princ KQ)
))
(setq i (1+ i))
)
(textscr) (princ)
);end

Cảm ơn anh nhé :cheers:
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#240 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 24 July 2010 - 10:54 PM

Thank you
  • 0