Đế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

#1161 nguoi_mong_du

nguoi_mong_du

    biết zoom

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

Đã gửi 09 October 2008 - 10:40 PM

A quen. Nhở bác viết thêm hộ em 1 lisp chỉ hiện những đối tượng mà mình đã chọn.
  • 0

#1162 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 10 October 2008 - 07:01 AM

Bác nào giúp em lisp này với!
Em có một đường line A (hoặc đường bất kì) cắt qua nhiều đường B khác, yêu cầu của em là:
- Gõ lệnh: chat
- Chọn đường line A là đối tượng làm dao cắt như lệnh trim
- Chọn phần cần chặt của đường B. Nhưng phần cần chặt không biến mất như lệnh trim mà nó chỉ bị tách ra làm đối tượng khác tại điểm giao cắt của đường A và B
Tại diển đàn em đã dùng thử lệnh BRK nhưng lệnh này ta đôi khi gây khó khăn cho em. Em mong bác nào rảnh giúp em cái nha. Thanks!!
Pác nào giúp em đi? em cảm ơn rất nhiều. Thanksssssss!!!!!!

http://www.cadviet.c...?showtopic=5610
http://www.cadviet.c...?showtopic=5575
  • 0

#1163 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 10 October 2008 - 10:22 PM

http://www.cadviet.c...?showtopic=5610
http://www.cadviet.c...?showtopic=5575


Topic này có lẽ nên dừng lại. Hoặc đổi tên thành Lish tham khảo
Anh Hoành là ng lập ra topic này. Anh nghĩ sao?
  • 0

#1164 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 10 October 2008 - 11:34 PM

Topic này có lẽ nên dừng lại. Hoặc đổi tên thành Lish tham khảo
Anh Hoành là ng lập ra topic này. Anh nghĩ sao?

Topic này vẫn hoạt động mà.

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợp.
  • 0

#1165 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 11 October 2008 - 09:49 AM

Topic này vẫn hoạt động mà.

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợp.


Có lẽ anh ko hiểu ý em. :leluoi:
  • 0

#1166 meohoang

meohoang

    biết lệnh adcenter

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

Đã gửi 11 October 2008 - 11:11 AM

Có lẽ anh ko hiểu ý em. :leluoi:

Ý bạn là ko đưa các link nhiều ah??????!!!!!!!!!
  • 0

#1167 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 11 October 2008 - 11:51 AM

Topic này vẫn hoạt động mà.

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợp.

Chắc đến lúc để Bác Hoành và các Bác khác nghỉ ngơi sau vài năm cống hiến và đóng góp tích cực cho Diễn đàn CADViet.
Dạo gần đây ít được các Bác ấy "Viết Lisp theo yêu cầu" nữa.
Có lẽ đó cũng là ý của ph168xd
  • 0

#1168 tvduc

tvduc

    biết vẽ line

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

Đã gửi 11 October 2008 - 11:52 AM

Nhờ các Bác viết giùm lít như sau.
Đặt vấn đề: Trong giải Sap cần phải lập mô hình, đối với mô hình không gian (cọc xiên không gian) thì mỗi lần thay đổi độ xiên và góc nghiêng của cọc là phải khai báo lại tọa độ của cọc, để chuyển mô hình từ Acad qua, thường phải tính tay từ số liệu đầu vào (chiều dài cọc, độ xiên của cọc “m”, góc xoay của cọc trên mặt bằng), để tính ra tọa độ điểm chân cọc  vẽ điểm chân cọc  vẽ đường thẳng từ mủi cọc tới chân cọc. Cách làm này rất chầm, nên muốn nhờ các bác viết giùm list hỗ trợ nhanh hơn

Nội dung list:
Chọn điểm A (đỉnh cọc).
Nhập vào chiều dài cọc l
Nhập vào độ nghiêng của cọc m ; nếu cọc nghiêng 1:6 thì nhập vào 6
Nhập vào góc (α) hợp bởi phương của cọc đối với chiều dương của trục x (trên hình chiếu bằng)
Kết quả tính toán điểm B có tọa độ (x,y,z)
Với :

Vẽ đường line từ điểm A đến điểm B
Chọn điểm đầu cọc thứ 2 A1
Nhập vào giá trị m1
Nhập vào giá trị α1
Giá trị l1 lấy bằng l (như ở trên)
Xác định tọa độ điểm B1 (x1, y1, z1); tương tự như trên
Vể đường thẳng nối A1 đến B1.
.......
.......
Kết thúc lệnh gõ Enter (thoát khỏi lệnh).
Cam ơn nhiều!
  • 0

#1169 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 11 October 2008 - 05:34 PM

Nhờ các Bác viết giùm lít như sau.
Đặt vấn đề: Trong giải Sap cần phải lập mô hình, đối với mô hình không gian (cọc xiên không gian) thì mỗi lần thay đổi độ xiên và góc nghiêng của cọc là phải khai báo lại tọa độ của cọc, để chuyển mô hình từ Acad qua, thường phải tính tay từ số liệu đầu vào (chiều dài cọc, độ xiên của cọc “m”, góc xoay của cọc trên mặt bằng), để tính ra tọa độ điểm chân cọc  vẽ điểm chân cọc  vẽ đường thẳng từ mủi cọc tới chân cọc. Cách làm này rất chầm, nên muốn nhờ các bác viết giùm list hỗ trợ nhanh hơn

Nội dung list:
Chọn điểm A (đỉnh cọc).
Nhập vào chiều dài cọc l
Nhập vào độ nghiêng của cọc m ; nếu cọc nghiêng 1:6 thì nhập vào 6
Nhập vào góc (α) hợp bởi phương của cọc đối với chiều dương của trục x (trên hình chiếu bằng)
Kết quả tính toán điểm B có tọa độ (x,y,z)
Với :

Vẽ đường line từ điểm A đến điểm B
Chọn điểm đầu cọc thứ 2 A1
Nhập vào giá trị m1
Nhập vào giá trị α1
Giá trị l1 lấy bằng l (như ở trên)
Xác định tọa độ điểm B1 (x1, y1, z1); tương tự như trên
Vể đường thẳng nối A1 đến B1.
.......
.......
Kết thúc lệnh gõ Enter (thoát khỏi lệnh).
Cam ơn nhiều!

bạn nên upload 1 file mẫu.

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.
  • 0

#1170 tvduc

tvduc

    biết vẽ line

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

Đã gửi 11 October 2008 - 05:55 PM

bạn nên upload 1 file mẫu.

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.

à quên pass phần tính toán tọa độ.
Từ điểm A cho trước, và các thông số l, m a
Tọa độ điểm B (x, y, z) được xác định như sau:
x = (l/m).cos(a.pi/180)
y= (l/m).sin(a.pi/180)
z= - l

Chú thích: trong tính toán ở trên chiều dài cọc tính theo phương đứng chứ không tính theo chiều dài hình học, nên biểu thức xác định tọa độ điểm B có khác so với lập luận của các Bác!
File mẫu chỉ là một đường thẳng nối từ A đến B trong không gian thôi mà Bác, hơn nữa upload file lên mình đang gặp sự cố không up được.
Điểm A là điểm cho trước, điểm B được xác định dựa vào điểm A.
  • 0

#1171 tvduc

tvduc

    biết vẽ line

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

Đã gửi 11 October 2008 - 06:02 PM

bạn nên upload 1 file mẫu.

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.

Ví dụ:
Điểm A(0,0,0)
nhập vào giá trị
l = 20
m = 6
a = 200
Kết quả tính toán được tọa độ B(-3.1323, -1.1401, -20)
Vẽ đường thẳng nối từ A đến B

chọn tiếp điểm A1.
nhập vào m1, a1, (l lấy giá trị cũ)
tính tiếp tọa độ điểm B1
........
nếu muốn kết thúc không vẽ nữa thì Enter

Cảm ơn các Bác nhiều nhá!
  • 0

#1172 connaivang

connaivang

    biết vẽ arc

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

Đã gửi 12 October 2008 - 09:19 PM

Chào bác Nguyễn Hoành.
Rất cảm ơn bác về sự giúp đỡ nhiệt tình của bác. Như người ta vẫn bảo "được voi đòi tiên". Không biết bác có nghĩ như vậy và có cảm thấy khó chịu không nếu em có thêm một yêu cầu giúp đỡ như thế này.
Cái lệnh TCHU của bác em dùng đã cảm thấy rất tốt. Nhưng lệnh này em dùng khá thường xuyên. Em muốn cắt giảm một số thao tác của nó cho phù hợp với công việc của mình nhưng lại không biết chỉnh sửa ở đâu. Em muốn bác sửa lại lệnh trên thành một autolisp nhỏ với những thay đổi như sau:
Lệnh t1 tương tự như lệnh trên nhưng mặc định ở dòng T/S là viết thêm text ở phía trước dòng text.
Lênh t2 tương tự như lệnh t1, chỉ khác là ta chỉ cần insert thêm một kí tự duy nhất vào phía trước dòng text (Có nghĩa là sau khi nhập một kí tự,ta gõ space sẽ tương đương gõ enter)
Bác cố gắng giúp đỡ kẻ ngu muội này nhé.
Xin cảm ơn bác trước.



Bác Hoành hay bác nào đó trên diễn đàn giúp em việc này với. Em đang rất cần mà. Cảm ơn các bác nhiều.
  • 0

#1173 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 12 October 2008 - 10:11 PM

Chắc đến lúc để Bác Hoành và các Bác khác nghỉ ngơi sau vài năm cống hiến và đóng góp tích cực cho Diễn đàn CADViet.
Dạo gần đây ít được các Bác ấy "Viết Lisp theo yêu cầu" nữa.
Có lẽ đó cũng là ý của ph168xd


Cậu nói đấy nhé. Mình ko nói gì đâu..... :leluoi:
  • 0

#1174 Sony2007

Sony2007

    biết lệnh copy

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

Đã gửi 12 October 2008 - 10:14 PM

bạn nghe trong giấc mơ? lisp này chưa từng có trên cadviet.

đây là lisp tôi vừa viết theo yêu cầu của bạn, tên lệnh là TDD (tọa độ điểm) và TDG (tọa độ gốc):

(defun c:tdd()
(if (null dgoc)
(progn
(alert "Chua co diem goc, ban hay chon diem goc")
(c:tdg)
)
(while (setq p (getpoint "\nVao diem: "))
(ctxt p)
)
)
(princ)
)
(defun c:tdg()
(setq dgoc (getpoint "\nVao diem goc: "))
(ctxt dgoc)
(princ)
)
(defun ctxt(p)
(setq lst (mapcar 'rtos (mapcar '- p dgoc))
gt (strcat (car lst)","(cadr lst))
)
(entmake (list (cons 0 "TEXT") (cons 10 (trans p 1 0)) (cons 1 gt) (cons 40 220)))
)



- Bác Hoành ơi, bác có thể bổ sung thêm tính năng: chọn tọa độ gốc thông qua pick điểm, sau đó nhập giá trị điểm toạ độ gốc vào. Tọa độ điểm sẽ xác định trên giá trị tọa độ gốc đã nhập. Chứ không nhất thiết bao giờ giá trị tọa độ gốc là 0,0.
- Trên diễn đàn đã có lisp đánh cốt: khi đánh cốt của 1 điểm nào đó không nhất thiết phải chọn cốt 000, mà chọn giá trị cốt ở vị trí bất kỳ sau đó mới đánh cốt.
Bác giúp em với nhé. Cám ơn nhiều
  • 0

#1175 anhlylyhuynh

anhlylyhuynh

    biết zoom

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

Đã gửi 14 October 2008 - 12:22 PM

Chào Bác NguyenHoanh
Nhờ bác viết dùm đọan code vẽ mặt cắt ngang theo vết cắt định trước cắt qua các điểm có cao độ là các text 2d
chiều dai mặt cắt ngang được vẽ là chiều dài vết cắt và các điểm cao độ sẽ được pick từ các điểm gần nhất với vết cắt, khoảng cách lẻ trong mặt cắt ngang là khoảng các giữa hình chiếu vuông góc của các điểm trên vết cắt
Xin cám ơn anh Nguyen Hoang!
  • 0

#1176 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 14 October 2008 - 12:49 PM

- Bác Hoành ơi, bác có thể bổ sung thêm tính năng: chọn tọa độ gốc thông qua pick điểm, sau đó nhập giá trị điểm toạ độ gốc vào. Tọa độ điểm sẽ xác định trên giá trị tọa độ gốc đã nhập. Chứ không nhất thiết bao giờ giá trị tọa độ gốc là 0,0.
- Trên diễn đàn đã có lisp đánh cốt: khi đánh cốt của 1 điểm nào đó không nhất thiết phải chọn cốt 000, mà chọn giá trị cốt ở vị trí bất kỳ sau đó mới đánh cốt.
Bác giúp em với nhé. Cám ơn nhiều

Những lisp dạng này đều có 2 lệnh. 1 lệnh là để xác định gốc, lệnh còn lại là lệnh vẽ.

Với lisp vẽ text của bạn, bạn gõ TDG để xác định tọa độ gốc.
Với lisp đánh cốt, gõ cot00 để xác định cốt 00.

Bạn nên đọc kỹ hướng dẫn trước khi dùng và hỏi người khác.
  • 0

#1177 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 14 October 2008 - 02:48 PM

Chào Bác NguyenHoanh
Nhờ bác viết dùm đọan code vẽ mặt cắt ngang theo vết cắt định trước cắt qua các điểm có cao độ là các text 2d
chiều dai mặt cắt ngang được vẽ là chiều dài vết cắt và các điểm cao độ sẽ được pick từ các điểm gần nhất với vết cắt, khoảng cách lẻ trong mặt cắt ngang là khoảng các giữa hình chiếu vuông góc của các điểm trên vết cắt
Xin cám ơn anh Nguyen Hoang!

bạn nên upload 1 file dwg lên diễn đàn, trong đó có các text ví dụ của bạn.
  • 0

#1178 tranhoanpvpe

tranhoanpvpe

    Chưa sử dụng CAD

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

Đã gửi 14 October 2008 - 03:02 PM

Tôi cần xác định khối lượng đào đất đá của một khu vực dự kiến bố trí công trình, ví dụ cần làm một cái sân có kích thước 100mx100m, đặt lên một khu đất bất kỳ, cần xác định vị trí đặt cái sân đó để khối lượng phải đào đất đá để đặt cái sân đó là ít nhất, các chuyên gia lisp giúp tôi với!!!!!!! Help meeee
  • 0

#1179 Sony2007

Sony2007

    biết lệnh copy

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

Đã gửi 14 October 2008 - 03:10 PM

Những lisp dạng này đều có 2 lệnh. 1 lệnh là để xác định gốc, lệnh còn lại là lệnh vẽ.

Với lisp vẽ text của bạn, bạn gõ TDG để xác định tọa độ gốc.
Với lisp đánh cốt, gõ cot00 để xác định cốt 00.

Bạn nên đọc kỹ hướng dẫn trước khi dùng và hỏi người khác.

Em nhờ bác viết là 1 lisp như thế này.
- Pick vào 1 điểm sau đó nhập tọa độ của người dùng tự cho vào. Ví dụ điểm 1 tọa độ người dùng nhập vào là (a,b,c). Sau đó pick vào điểm thứ 2. Sẽ ghi tọa độ của điểm thứ 2 so với điểm 1. x2=a+x; y2=b+y; z2=c+z. x, y, z là khoảng cách xác định trong cad theo trục x, y, z.
- Vấn đề cao độ. Píck vào điểm 1, người dùng nhập vào cao độ là a. Pick vào điểm thứ 2 ghi cao độ điểm 2 thông qua điểm 1. Caodộ 2= a+y. Trong đó y là khoảng cách trong autocad giữa điểm 1 và 2 theo phương y.

Có gì các bác giúp em với nhé.
  • 0

#1180 vandoan

vandoan

    biết zoom

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

Đã gửi 15 October 2008 - 09:34 PM

ai có lisp nào để copy nội dung text từ dim này sang text riêng lẻ khác được cho em xin chút. đôi khi em copy hàng loạt text để đúng vị trí em muốn. nhưng sau đó cứ phải ed rồi Ctrl+C, tiếp tục ed và Ctrl+V như thế mất công quá.mọi người chịu khó giúp em chút nhé. xin cảm ơn!
  • 0