Đến nội dung


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

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#1321 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 27 November 2008 - 03:07 PM

làm theo bạn Duy thì mắc công quá, mỗi lần làm phải thêm dấu -
không tiện vì mình làm nhiều số lắm.

Mình nói dùng líp thêm dấu trừ nghĩa là có líp làm việc này. Bạn xem ở đây. NÓ làm cho nhiều text 1 lúc đó bạn.
http://www.cadviet.c...?showtopic=6991
  • 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


#1322 romeo1982

romeo1982

    biết lệnh mirror

  • Members
  • PipPipPip
  • 152 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 27 November 2008 - 03:42 PM

Bạn dùng đoạn code này nhé :

(defun c:DLM () 
(prompt "Doi cac doi tuong chon sang layer moi ")
(princ "\n Change: Doi sang layer moi")
(setq tue (ssget))
(if (null tue)
(progn
(princ "\nLoi : Khong co doi tuong nao duoc chon.")
(exit)
)
)
(command "layer" "m" "Newlayer" "c" "3" "" "" "")
(command "_.change" tue "" "P" "la" "newlayer" "")
(princ)
)

Bạn xem giùm mình file này có vấn đề gì mà load vào cad xài ko được, thanks
  • 0

#1323 romeo1982

romeo1982

    biết lệnh mirror

  • Members
  • PipPipPip
  • 152 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 27 November 2008 - 03:43 PM

Bạn xem giùm mình file này có vấn đề gì mà load vào cad xài ko được, thanks

Quên, file đêy
http://www.cadviet.c...ayer_m7899i.lsp
  • 0

#1324 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 27 November 2008 - 03:51 PM

Các bác ơi mình học và làm vơi autoCAD lâu lắm rồi nhưng mình mới làm quen với lisp nên mình thấy lisp khó kiểmt ra lỗi quá các bác đi trước có kinh nghiệm chỉ mình cách sửa lỗi nhanh nhất với xin cảm ơn các bác rất nhiều

Để kiểm tra lỗi chính tả, bạn có thể dùng Vlide của Cad (gõ vlide tại dấu nhắc lệnh).
Vào Tool->Check text in Editor

Trong LISP có hàm *error* để bẫy lỗi, cách dùng bạn có thể tham khảo tại : http://www.cadviet.c...o...24&hl=error
  • 0

#1325 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 27 November 2008 - 04:15 PM

Quên, file đêy
http://www.cadviet.c...ayer_m7899i.lsp

File này chẳng có lỗi gì cả.
  • 0

#1326 romeo1982

romeo1982

    biết lệnh mirror

  • Members
  • PipPipPip
  • 152 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 27 November 2008 - 05:05 PM

File này chẳng có lỗi gì cả.

lệnh là DLM phải ko bác
  • 0

#1327 romeo1982

romeo1982

    biết lệnh mirror

  • Members
  • PipPipPip
  • 152 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 27 November 2008 - 05:13 PM

File này chẳng có lỗi gì cả.

sao vẩn ko xài được nhỉ, pó chân lun
  • 0

#1328 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 27 November 2008 - 07:07 PM

cám ơn bạn đã quan tâm, đơn giản là đưa đối tượng đó về layer vừa tạo thui

Mình đã check kỹ lại rồi. Không có lỗi gì trong đoạn code này :
Lệnh là DLM
(defun c:DLM () 
(prompt "Doi cac doi tuong chon sang layer moi ")
(princ "\n Change: Doi sang layer moi")
(setq tue (ssget))
(if (null tue)
(progn
(princ "\nLoi : Khong co doi tuong nao duoc chon.")
(exit)
)
)
(command "layer" "m" "Newlayer" "c" "3" "" "" "")
(command "_.change" tue "" "P" "la" "newlayer" "")
(princ)
)

  • 1

#1329 loiphong

loiphong

    biết vẽ circle

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

Đã gửi 28 November 2008 - 10:42 AM

Bác Hoành ơi có thể viết giúp em Lisp với ứng dụng như sau:
- Dùng window quét một biên dạng bất kì (chủ yếu xuất từ 3D qua) sẽ lấy được (Xmax,Ymax) và (Xmin,Ymin) của biên dạng đó.(Biên dạng là tập hơp nhiều line, spline.... được xuất từ 3D qua.)
Mụch đích: Sử dụng để cắt phôi trong thiết kế khuôn mẫu.
Mình đang rất cần nó, xin các cao thủ cố gắng giúp mình với. Xin cảm ơn rất nhiều.!
  • 0

#1330 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 28 November 2008 - 01:09 PM

Bác Hoành ơi có thể viết giúp em Lisp với ứng dụng như sau:
- Dùng window quét một biên dạng bất kì (chủ yếu xuất từ 3D qua) sẽ lấy được (Xmax,Ymax) và (Xmin,Ymin) của biên dạng đó.(Biên dạng là tập hơp nhiều line, spline.... được xuất từ 3D qua.)
Mụch đích: Sử dụng để cắt phôi trong thiết kế khuôn mẫu.
Mình đang rất cần nó, xin các cao thủ cố gắng giúp mình với. Xin cảm ơn rất nhiều.!

bạn hãy upload 1 file ví dụ lên để mọi người biết được tập đối tượng của bạn gồm những gì,
chứ line, spline,... thì không rõ trong dấu ba chấm bao gồm những đối tượng gì.
  • 0

#1331 loiphong

loiphong

    biết vẽ circle

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

Đã gửi 29 November 2008 - 10:54 AM

bạn hãy upload 1 file ví dụ lên để mọi người biết được tập đối tượng của bạn gồm những gì,
chứ line, spline,... thì không rõ trong dấu ba chấm bao gồm những đối tượng gì.


Em gửi bác một file xuất từ 3D qua.! Mong bác giúp đỡ.
Cám ơn bác nhiều.
Đây là link: http://www.cadviet.c...les/DE_CHAN.rar
  • 0

#1332 tanhanh

tanhanh

    Chưa sử dụng CAD

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

Đã gửi 03 December 2008 - 06:46 PM

Chào cả nhà.
Xin các cao thủ giup giùm tôi một doạn lisp thực hiện chuổi lệnh sau:
Khi tôi chọn 01 hoặc nhiều bock có tên khác nhau thì các block đó sẽ được định nghĩa lại với :
- Các object bên trong block đó có các thuộc tính:
+ Layer : 0,
+ Linetype : byblock,
+ Color : byblock,
+ Lineweight : byblock,
+ Linetype scale : 1.000,
+ Thickness : 1.000,
+ Gobal width : 0.00 (nếu là PL)
+ Elevation : 0.00 (nếu là PL)
- Thực hiện các lệnh
+ Overkill các object chồng lên nhau.
+ chuyển các Spline thành Plline. (trong các block không còn các Spline nữa)
+ Nối các PL, L, arc thành Pl nếu có thể.
Xin cảm ơn nhiều.
  • 0

#1333 nguyenkhoadung98

nguyenkhoadung98

    biết vẽ pline

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

Đã gửi 04 December 2008 - 11:41 AM

các bạn cho mình hỏi,có cách nào vát góc chỗ đuờng thẳng tiếp xúc với đuờng cong kô mình dùng lênh F nhưng chỉ vát đc các PL với nhau thôi
  • 0

#1334 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 December 2008 - 12:26 PM

các bạn cho mình hỏi,có cách nào vát góc chỗ đuờng thẳng tiếp xúc với đuờng cong kô mình dùng lênh F nhưng chỉ vát đc các PL với nhau thôi

Vát như thế nào? Bán kính cong bạn cho là bao nhiêu? Hãy upload file lên diễn đàn và nói rõ hơn bạn nhé.
  • 0

#1335 trinhks

trinhks

    biết vẽ circle

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

Đã gửi 05 December 2008 - 01:13 PM

nhờ mọi ng chỉ giúp,tôi dùng lisp để đặt lệnh tắt nhưng tại sao các lệnh khác thực hiện đc mà dến lệnh TT (TORIENT) thì cad lại ko cho thực hiện lệnh này.

(defun c:1 () (Command "move"))

(defun c:2 () (Command "trim"))

(defun c:EQ () (Command "extend"))

(defun c:R () (Command "rotate"))

(DEFUN C:mm () (prompt "\nMATCHPROP")
(command "MATCHPROP")
(princ))
(DEFUN C:Q () (prompt "\ndo goc doi tuong")
(command "DIMANGULAR")
(princ))
(DEFUN C:C () (prompt "\nSao chep thanh nhieu doi tuong")
(setq a (ssget)) (command "copy")
(princ))
(DEFUN C:RR () (prompt "\nVE CHU NHAT")
(command "RECTANG")
(princ))
(DEFUN C:CC () (prompt "\nve duong tron")
(command "Circle" )
(princ))
(DEFUN C:3 () (prompt "\nDIM THANG")
(command "DIMLINEAR" )
(princ))
(DEFUN C:D () (prompt "\nDim kich thuoc thang")
(command "Dimlinear" )
(princ))
(DEFUN C:DC () (prompt "\nDim tiep theo")
(command "Dimcontinue" )
(princ))
(DEFUN C:4 () (prompt "\nDim theo duong cheo")
(command "Dimaligned" )
(princ))
(DEFUN C:TT () (prompt "\nQUAY CHU THEO DG THANG")
(command "TORIENT" )
(princ))
(DEFUN C:DR () (prompt "\ndo ban kinh cung tron")
(command "Dimradius" )
(princ))
  • 0

#1336 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 05 December 2008 - 02:11 PM

nhờ mọi ng chỉ giúp,tôi dùng lisp để đặt lệnh tắt nhưng tại sao các lệnh khác thực hiện đc mà dến lệnh TT (TORIENT) thì cad lại ko cho thực hiện lệnh này.

(defun c:1 () (Command "move"))

(defun c:2 () (Command "trim"))

(defun c:EQ () (Command "extend"))

(defun c:R () (Command "rotate"))

(DEFUN C:mm () (prompt "\nMATCHPROP")
(command "MATCHPROP")
(princ))
(DEFUN C:Q () (prompt "\ndo goc doi tuong")
(command "DIMANGULAR")
(princ))
(DEFUN C:C () (prompt "\nSao chep thanh nhieu doi tuong")
(setq a (ssget)) (command "copy")
(princ))
(DEFUN C:RR () (prompt "\nVE CHU NHAT")
(command "RECTANG")
(princ))
(DEFUN C:CC () (prompt "\nve duong tron")
(command "Circle" )
(princ))
(DEFUN C:3 () (prompt "\nDIM THANG")
(command "DIMLINEAR" )
(princ))
(DEFUN C:D () (prompt "\nDim kich thuoc thang")
(command "Dimlinear" )
(princ))
(DEFUN C:DC () (prompt "\nDim tiep theo")
(command "Dimcontinue" )
(princ))
(DEFUN C:4 () (prompt "\nDim theo duong cheo")
(command "Dimaligned" )
(princ))
(DEFUN C:TT () (prompt "\nQUAY CHU THEO DG THANG")
(command "TORIENT" )
(princ))
(DEFUN C:DR () (prompt "\ndo ban kinh cung tron")
(command "Dimradius" )
(princ))

Tất cả các câu lệnh trên đều thực thi được trừ lệnh Torient. Vì lệnh này là một lệnh phụ trợ của Express, còn tất cả các lệnh còn lại là các lệnh của CAD chính thống.
Muốn tạo phím tắt cho lệnh này bạn phải vào file Lisp của lệnh này mà đổi, nó nằm trong phụ trợ Express. File này mang tên acettxt.lsp
  • 0

#1337 thangkho

thangkho

    biết vẽ line

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

Đã gửi 08 December 2008 - 10:21 AM

Các anh có thể viết giùm em lisp này không:
Nội suy cao độ tại những điểm nằm trên tim đường khi biết cao độ điểm đầu và cuối
_gõ lệnh
_chọn điểm cao độ thựơng lưu
_nhập cao độ thượng lưu
_chọn điểm cao độ hạ lưu
_nhập cao độ hạ lưu
kết quả:
chọn những điểm cần nội suy nằm trên tim đường
kết quả xuất ra dạng dtext (lấy 3 số 0 sau dấu phẩy)
Vì em phải nội suy rất nhiều điểm trên tim đường, mong sớm nhận được lisp của các anh
  • 0

#1338 hieunt75

hieunt75

    Chưa sử dụng CAD

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

Đã gửi 09 December 2008 - 01:27 AM

Bạn có thể post yêu cầu về autolisp ở topic này.

Chào bạn!
Mình muốn bạn giúp mình một lisp như sau:
- pic chọn một block sau đó quét chọn một vùng bản vẽ, đếm được số block có tên là block đã pic ban đầu.
(Mình là dân TK cơ điện, rất cần đếm các thiết bị điện trên bản vẽ mặt bằng, mà mình thì không thạo lisp)
Cảm ơn bạn nhiều!
  • 0

#1339 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 09 December 2008 - 07:36 AM

Chào bạn!
Mình muốn bạn giúp mình một lisp như sau:
- pic chọn một block sau đó quét chọn một vùng bản vẽ, đếm được số block có tên là block đã pic ban đầu.
(Mình là dân TK cơ điện, rất cần đếm các thiết bị điện trên bản vẽ mặt bằng, mà mình thì không thạo lisp)
Cảm ơn bạn nhiều!

Đây bạn. Tên là: bten

(Defun c:bten ( )
(prompt "\nChon BLOCK mau.")
(setq DT (car (entsel)))
(setq DT (entget DT))
(setq STNAME (cdr (assoc 2 DT)))

(Princ "\nHay chon vung :")
(setq SS (ssget (list (cons 0 "insert")
(cons 2 STNAME)
)
)
)
(if (Null ss)
(princ "\nKhong tim thay doi tuong nao")
)
(IF (/= NIL SS) (PROGN
(setq Sl (SSLength SS))
(princ (strcat "\nTim thay: <" (itoa sl) "> doi tuong la BLOCK co ten: <" STNAME ">"))
)
)
(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


#1340 transu

transu

    biết vẽ spline

  • Members
  • PipPip
  • 93 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 09 December 2008 - 08:25 AM

các anh oi. em dựng 3d trên cad 2004. vẽ 2d trên cad 2007.em nhờ các anh tạo cho em cái lisp cho cad 2004 với các tính năng như :lệnh layiso. layon, layoff, và hiệu chỉnh được nhiều đối tượng như cad 2007 vd:khi trim ta chọn giới hạn rồi trim được nhiều đối tượng 1 lúc như cad 2007 chỉ cần 1 lần chọn.thanks a lot.
  • 0