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

Viết lisp theo yêu cầu [phần 2]

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

GIÚP VỚI :em mới hoc cad , mấy anh pro ơi giúp em viết cái code của hình chiếu bằng máy bay boeing 787 . sau đó hỏi có xoay máy bay không ( yes/no?[no]). nếu có thì cho máy bay xoay với tâm xoay là giao điểm của đường thẳng từ mũi cánh máy bay với đường thẳng từ đầu máy bay tới đuôi. xoay 1 góc anpha nào đó. em xin cám ơn .

( em rất ghét phải nói câu này nhưng mà em cần code này gấp ) tks các anh trước.

day là hình boeing :link: http://www.cadviet.com/upfiles/B787_HCB.dwg

không cần vẽ các chi tiết nhỏ nhỏ như ở hình. tks .xin giúp với các anh

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

Block cái máy bay đó lại với insert point là cái giao điểm rồi muốn quay đâu đó thì quay.

p/s: cái code của hình chiếu bằng là sao?

là các file lệnh autolisp để vẽ cái hình máy bay boeing

ps: em mới học nên nhiều từ còn chưa rõ.

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

là các file lệnh autolisp để vẽ cái hình máy bay boeing

ps: em mới học nên nhiều từ còn chưa rõ.

Thôi, chuyển qua công tác ở hãng Boeing thôi. Chứ lisp để vẽ nó thì dài thườn thượt

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ó bác nào pro nova khong, xin chi giáo cho em với

em muốn điểm gốc tuyến bắt đầu từ lý trình km65 và diểm cuối tuyến km73.5 sau đó mới phát sinh coc từ file số liệu ntd

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ó bác nào pro nova khong, xin chi giáo cho em với

em muốn điểm gốc tuyến bắt đầu từ lý trình km65 và diểm cuối tuyến km73.5 sau đó mới phát sinh coc từ file số liệu ntd

Câu này nhầm box rồi nè

 

em chỉ cần vẽ cái hình 2D hình chiếu bằng của nó thôi hình nó nè a: http://www.cadviet.com/upfiles/B787_HCB.dwg

Câu này hơi vô duyên và cực kỳ đại lãn nè.Nếu không có thông số đầu vào, chỉ muốn có cái hình đó thì đâu cần autolisp nhỉ :) Mà nếu bạn cần, thì đó chỉ là 1 dòng (command "copy"..) thôi ^^

  • 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ào bạn tomboy! trước tiên mình cám ơn bạn nhiều.nhờ bạn xem lại lisp này giúp mình với http://www.cadviet.com/upfiles/3/xyzom.lsp đây là đoạn lisp bạn mới sửa dùm mình đó sao mình load lên để dùng không được. Khi mình load lên thì cad báo command: ; error: no function definition: input. sau đó mình gọi lệnh xyzo thì cad bao nil. trình độ cad mình còn kém lắm bạn đừng cười mình nhe.

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âu này nhầm box rồi nè

 

 

Câu này hơi vô duyên và cực kỳ đại lãn nè.Nếu không có thông số đầu vào, chỉ muốn có cái hình đó thì đâu cần autolisp nhỉ :) Mà nếu bạn cần, thì đó chỉ là 1 dòng (command "copy"..) thôi ^^

Bác làm tôi cười sặc sụa vì câu này:

Câu này hơi vô duyên và cực kỳ đại lãn 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

Câu này nhầm box rồi nè

 

 

Câu này hơi vô duyên và cực kỳ đại lãn nè.Nếu không có thông số đầu vào, chỉ muốn có cái hình đó thì đâu cần autolisp nhỉ :) Mà nếu bạn cần, thì đó chỉ là 1 dòng (command "copy"..) thôi ^^

kích thước của bản vẽ mình quên ghi. tại mình nghĩ kích thước trong bãn vẽ có thể đo bằng dimension .

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

Em nhờ các bác viét hộ em cái lisp Extrim đối tượng là hacth dc ko. Nếu có cái lisp như thế thì hay quá.

Em cám ơn các bác nhiều. chúc các bác có những ngày nghỉ vui vẻ.

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

kích thước của bản vẽ mình quên ghi. tại mình nghĩ kích thước trong bãn vẽ có thể đo bằng dimension .

Hình như bạn vẫn chưa hiểu vấn đề mà mọi người cần nói :) Vấn đề chính là bạn đưa ra 1 hình vẽ, bảo mọi người viết giùm bạn cái lisp vẽ ra cái hình -> tức là lần nào dùng lisp kết quả cũng là cái hình máy bay y xì đúc như thế. Vậy thì khác gì lệnh copy :) bạn hiểu ý mình chứ ? Hay bạn muốn biểu diễn việc autolisp vất vả như thế nào để vẽ được hình đó :)

  • 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

Bạn dùng cái này xem. Bản gốc: Created on 8/6/04. Copyright 2004 by JefferyPSanders.com. All rights reserved.

Tôi hiệu chỉnh và bổ sung một số y/c cho phù hợp với bạn.

http://www.cadviet.com/upfiles/3/tinh_dtich_theo_ti_le_ve.lsp

P/S: Tôi vừa mới phát hiện ra: bản gốc bị sai khi tính S của Ellipse (S luôn bằng 0),

tuy nhiên chưa có thời gian tìm hiểu để hiệu chỉnh, và cũng nhắc ai đã từng tải

lisp "GA.lsp" của tác giả trên về dùng hãy cẩn thận với Ellipse.

 

Lisp này bị lỗi hay sao ấy. Khi click vào 1 hình kín, sau khi ra kết quả diện tích thì hình tính đó cũng biến mất luôn. Có những hình không kín nhưng cũng ra được diện tích.

Mình dùng cad 2007, không biết có bị lỗi gì không. (câu hỏi lisp ở trang 166)

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

Lisp này bị lỗi hay sao ấy. Khi click vào 1 hình kín, sau khi ra kết quả diện tích thì hình tính đó cũng biến mất luôn. Có những hình không kín nhưng cũng ra được diện tích.

Mình dùng cad 2007, không biết có bị lỗi gì không. (câu hỏi lisp ở trang 166)

Bạn post bản vẽ đó lên xem thử. Tôi chạy thì tốt.

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

Em nhờ các Bác viết hộ lệnh vẽ "Pline" qua các điểm có tọa độ x, y mằm trong hai list "Lx" và "Ly"

em đã dùng lệnh... (mà không được):

(setq i 0)

(repeat (length Lx

(acet-pline-make (list (nth i Lx) (nth i Ly)))

(setq i (+ i 1)

)

 

Command: !Lx

(191.038 196.401 186.052 201.657 184.294 203.682 181.276 206.936 179.843

208.725 178.457 210.294 211.721 177.334 213.313 214.04 214.839 215.614 187.777

199.165 217.135 217.926)

 

Command: !Ly

(266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701)

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

Em nhờ các Bác viết hộ lệnh vẽ "Pline" qua các điểm có tọa độ x, y mằm trong hai list "Lx" và "Ly"

em đã dùng lệnh... (mà không được):

(setq i 0)

(repeat (length Lx

(acet-pline-make (list (nth i Lx) (nth i Ly)))

(setq i (+ i 1)

)

 

Command: !Lx

(191.038 196.401 186.052 201.657 184.294 203.682 181.276 206.936 179.843

208.725 178.457 210.294 211.721 177.334 213.313 214.04 214.839 215.614 187.777

199.165 217.135 217.926)

 

Command: !Ly

(266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701)

Hề hề hề,

Bạn xem lại cú pháp của hàm này nhé

(repeat (length Lx

(acet-pline-make (list (nth i Lx) (nth i Ly)))

(setq i (+ i 1)

)

Cái thằng (length Lx bạn chưa đóng lại

Còn cái thằng (acet-pline-make (list (nth i Lx) (nth i Ly))) thì hình như chả vẽ được cái chi

Theo mình hiểu thì hàm này sẽ tạo pline đi qua một list của các điểm bạn ạ.

Do vậy bạn cần phải tạo một list của các điểm trước rồi mới sử dụng nó cho hàm (acet-pline make.....)

Nếu đúng vậy thì trong vòng lặp repeat bạn chỉ nên tạo ra cái list của các điểm

Ra khỏi vòng lặp bạn mới chơi thằng acet này.....

Cái thằng (setq i (+ i 1) cũng thiếu ngoặc đóng lại.

Tỷ như:

(repeat (length Lx)

(setq ptlst (append ptlst (list (list (nth i Lx) (nth i Ly)))))

(setq i (+ i 1))

)

(acet-pline-make ptlst)

Hề hề hề, vài lời đoán mò , nếu chưa đúng xin niệm tình tha thứ bạn nhé.....

  • Vote giảm 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ác anh ơi cho e hỏi với , e có 1 cái block thuộc tính với 2 ghi chú với font chữ . Khi e chuyển Font của 2 ghi chú (dùng lệnh bedit ) text bị lỗi . Em phải sửa lại từng text của Block mà e có hàng trăm cái block như thế ngồi ed lại từng cái thì mất rất nhiều thời gian . Các anh cho e hỏi có lisp nào có thể đổi tên Block thuộc tính và khi m sửa font của nó ( e chuyến sang font Arial Narow ) thì nó ko lỗi . Hoặc có lisp nào giống chức năng của lệnh Find chuyển 1 đoạn văn bản ( cũ ) thành đoạn văn bản mới . ( Em đã thử dùng lệnh Find , nhưng ko được ạ )

  • 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ác pro làm ơn viết dùm em lisp quay đối tượng

đối tượng của em sẽ gồm một text hoặc mtext với tập hợp các đối tượng khác.

khi thực hiện lệnh chương trình sẽ yêu cầu chọn đối tượng ( nếu chọn nhiều hơn 1 text hoặc mtext chương trình sẽ báo lỗi và bắt chọn lại)

sau đó chương trình sẽ hỏi góc quay, góc quay là góc hợp bởi phương ngang với đường thẳng tạo bởi 2 điểm pick chuột.

tâm quay của đối tượng là điểm chèn của text hoặc mtext đã chọn.

Lệnh này của em giống lệnh Torient nhưng chỉ thao tác với một nhóm đối tượng một lần.

em cám ơn các bác.

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

Em nhờ các Bác viết hộ lệnh vẽ "Pline" qua các điểm có tọa độ x, y mằm trong hai list "Lx" và "Ly"

em đã dùng lệnh... (mà không được):

(setq i 0)

(repeat (length Lx

(acet-pline-make (list (nth i Lx) (nth i Ly)))

(setq i (+ i 1)

)

 

Command: !Lx

(191.038 196.401 186.052 201.657 184.294 203.682 181.276 206.936 179.843

208.725 178.457 210.294 211.721 177.334 213.313 214.04 214.839 215.614 187.777

199.165 217.135 217.926)

 

Command: !Ly

(266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701 266.701

266.701 266.701 266.701)

Bạn thử xem :

(acet-pline-make(list(mapcar '(lambda(x y) (list x y)) Lx Ly)))

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ác anh ơi cho e hỏi với , e có 1 cái block thuộc tính với 2 ghi chú với font chữ . Khi e chuyển Font của 2 ghi chú (dùng lệnh bedit ) text bị lỗi . Em phải sửa lại từng text của Block mà e có hàng trăm cái block như thế ngồi ed lại từng cái thì mất rất nhiều thời gian . Các anh cho e hỏi có lisp nào có thể đổi tên Block thuộc tính và khi m sửa font của nó ( e chuyến sang font Arial Narow ) thì nó ko lỗi . Hoặc có lisp nào giống chức năng của lệnh Find chuyển 1 đoạn văn bản ( cũ ) thành đoạn văn bản mới . ( Em đã thử dùng lệnh Find , nhưng ko được ạ )

Bạn dùng lệnh battman để chỉnh sửa, sau đó kích vào chữ sync để cập nhật các thay đổi. Chúc bạn thành công

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ác bác giúp em coi thử cái lisp này nó bị lỗi chỗ nào, turn on thì dc mà turn of là báo lỗi.

Thanks!

(defun vpOn (kw / kval doc adoc lao cnt inc cvprt blk pw)
 (vl-load-com)
 (if (= kw "ON")
   (setq kval :vlax-true)
   (setq kval :vlax-false)
 )
 (setq	doc  (vlax-get-object "AutoCad.Application")
adoc (vla-get-ActiveDocument doc)
lao  (vla-get-Layouts adoc)
cnt  (vla-get-Count lao)
inc  0
 )
 (repeat cnt
   (setq cvprt	(vla-Item lao inc)
  inc	(+ inc 1)
  blk	(vla-get-Block cvprt)
   )
   (vlax-for itm blk
     (if
(vlax-property-available-p itm 'ViewportOn)
(progn
  (vla-put-ViewportOn itm kval)
  (vla-update itm)
  )
(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

Các bác giúp em coi thử cái lisp này nó bị lỗi chỗ nào, turn on thì dc mà turn of là báo lỗi.

Thanks!

(defun vpOn (kw / kval doc adoc lao cnt inc cvprt blk pw)
 (vl-load-com)
 (if (= kw "ON")
   (setq kval :vlax-true)
   (setq kval :vlax-false)
 )
 (setq	doc  (vlax-get-object "AutoCad.Application")
adoc (vla-get-ActiveDocument doc)
lao  (vla-get-Layouts adoc)
cnt  (vla-get-Count lao)
inc  0
 )
 (repeat cnt
   (setq cvprt	(vla-Item lao inc)
  inc	(+ inc 1)
  blk	(vla-get-Block cvprt)
   )
   (vlax-for itm blk
     (if
(vlax-property-available-p itm 'ViewportOn)
(progn
  (vla-put-ViewportOn itm kval)
  (vla-update itm)
  )
(princ)
)
     )    
   )
 )

Cho mình hỏi có phải bạn tham khảo lisp ở những link này không

http://forums.augi.com/showthread.php?t=48519

Bạn TurnOn cái gì và Turn Off cái gì ?? ViewportOn của bạn có chức năng gì :)

P/S : cái này nên chuyển sang box Hỏi về lisp thì chuẩn hơ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

Cho mình hỏi có phải bạn tham khảo lisp ở những link này không

http://forums.augi.com/showthread.php?t=48519

Bạn TurnOn cái gì và Turn Off cái gì ?? ViewportOn của bạn có chức năng gì :)

P/S : cái này nên chuyển sang box Hỏi về lisp thì chuẩn hơn

Chia sẻ! Chia sẻ! Chia sẻ!

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

Cho mình hỏi có phải bạn tham khảo lisp ở những link này không

http://forums.augi.com/showthread.php?t=48519

Bạn TurnOn cái gì và Turn Off cái gì ?? ViewportOn của bạn có chức năng gì :)

P/S : cái này nên chuyển sang box Hỏi về lisp thì chuẩn hơn

 

cái này down ở đâu thì em ko nhớ hình như trên forum cua3 Autodesk.

Chức năng của nó là tắt (OFF) hoặc mở (ON) tất cả các Viewport đang có trong bản vẽ. Phần mở bản vẽ thì chạy OK nhưng phần turn OFF viewport thì báo lỗi "; error: Automation Error. Not applicable"

ko hiểu là lỗi gì.

Thanks các bác trước.

 

Error như sau

 

Command: (vpon "ON")

 

Command: (vpon "OFF")

; error: Automation Error. Not applicable

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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×