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

#281 Quadiacau

Quadiacau

    Chưa sử dụng CAD

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

Đã gửi 09 November 2007 - 07:25 PM

Xin a Nguyễn Hoanh đọan lisp : trên file acad dang co nhiều text là số, lisp sẽ giúp cùng tăng hoặc cùng giảm các text(số) này theo một số nào đó. Ví dụ : ta có text : 1.2 1.3 1.4 tăng thêm 0.3 thành 1.5 1.6 1.7
Cám ơn nhiều.
  • 0

#282 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 09 November 2007 - 08:38 PM

Xin lisp thay đổi scale dim thì chức năng overall scale cũng thay đổi theo có nội dung như sau:
VD: trên màn hình là 1 dim, chạy lisp hỏi tỉ lệ scale dim : nhập 2, chương trình sẽ tự động scale dim lên 2 lần đồng thời thay đổi overall scale lên 2 theo ( mặc định ban đầu overall scale là 1) và scale liner giảm đi còn 0.5( mặc định ban đầu scale liner 1).
thanks!?
  • 0

#283 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 09 November 2007 - 10:28 PM

SSG nói phải.Nhưng có phải cách này hơi dài chút không.
Nếu ta có thể layon.iso,off trong 1 lệnh khác ngay trên màn hình thì mới nhanh chứ,
Còn nếu bị hiện bẳng ra để chọn thì chịu khó căng mắt ra chọn điểm or zoom thật to lên
mà chọn có khi lại nhanh hơn ý.
SSg chắc hỉu ý mình. SSG viết giúp mình cái lish đó đc không?
  • 0

#284 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 10 November 2007 - 07:56 AM

SSG nói phải.Nhưng có phải cách này hơi dài chút không.
Nếu ta có thể layon.iso,off trong 1 lệnh khác ngay trên màn hình thì mới nhanh chứ,
Còn nếu bị hiện bẳng ra để chọn thì chịu khó căng mắt ra chọn điểm or zoom thật to lên
mà chọn có khi lại nhanh hơn ý.
SSg chắc hỉu ý mình. SSG viết giúp mình cái lish đó đc không?

Chịu thôi! Lisp cũng không thể nhanh hơn động tác "căng mắt ra chọn điểm hoặc zoom to lên"!
  • 0

#285 gianchicken

gianchicken

    Chưa sử dụng CAD

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

Đã gửi 10 November 2007 - 11:35 AM

Mục này của các bạn hay lắm!
Mình đang có vấn đề với nhân 2 ma trận cấp 3, các mách nước cho mình nha.
Thanks !
  • 0

#286 nhoc20

nhoc20

    Chưa sử dụng CAD

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

Đã gửi 10 November 2007 - 07:17 PM

anh ơi. trong cad khỉ mình đo kích thước thi cắc đường dóng khổng đều nhau, vậy làm thế nào để các đường dóng của kích thước bằng nhau được. em thấy dùng lệnh trim thì kô cắt được. vậy có cách gì anh chỉ cho em với, có phải trong cad có lệnh đó không hay là phải viết lips hạ anh.
  • 0

#287 kncam

kncam

    biết lệnh rotate

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

Đã gửi 10 November 2007 - 07:48 PM

anh ơi. trong cad khỉ mình đo kích thước thi cắc đường dóng khổng đều nhau, vậy làm thế nào để các đường dóng của kích thước bằng nhau được. em thấy dùng lệnh trim thì kô cắt được. vậy có cách gì anh chỉ cho em với, có phải trong cad có lệnh đó không hay là phải viết lips hạ anh.

Hiệu chỉnh DimStyle trong ACAD2008,như sau :
Vào Dim Style -> chọn Modify -> Trong Tab Lines (phía dưới - bên phải) chọn hộp kiểm Fixed lenght extension lines và chỉnh Lenght = 6-7-8 (tùy ý) . Lúc này đường dóng bị khống chế chiều dài = 6 unit . Vậy là khỏi cần cắt chân, cắt cẳng gì cả.
  • 0
nongdan@sg

#288 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 11 November 2007 - 02:35 PM

Thanks SSG nhìu về đoạn lish trên nha. Nó là cái rất cần cho công việc của mình.
  • 0

#289 meohoang

meohoang

    biết lệnh adcenter

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

Đã gửi 11 November 2007 - 04:03 PM

OK công việc nhiều nên cần trí tuệ Lisp

[quote name='ph168xd' date='Nov 11 2007, 02:35 PM' post='7409']
Tôi mới vào trang thấy diễn đàn có nhiều người viết Lisp rất giỏi . Nhất là bạn Hoành và SSg
Tôi cũng hay viết Lisp và có hoàn thiện 1 số chương trình dạng cho người dùng nhập dữ liệu từ giao diện
tuy nhiên giao diện dạng file ****.dcl của Acad có nhiều hạn chế ; ví dụ như ko thể lập nhiều TAB trong 1 hộp thoại..
Tôi có tham khảo qua VBA thì dĩ nhiên ngôn ngữ này tựa trên Visual Basic nên giao diện thân thiện hơn.
Nhưng mình quen với Lisp quá dzồi nên giờ mày mò theo VBA tốn thời gian quá...ko biết cụ Hoành nhà ta có biết
cách nào trong ***.dcl làm đươc như bên VBA không nhỉ?

Và tôi muốn hỏi là các dữ liệu động trong Properties của Acad mới (2004-2008) tự động cập nhật khi ta sửa số liệu được viết = C++ phải ko?
Hoặc 1 số chương trình của hảng Hài Hòa viết trong TOPO hay HS khi chọn đối tượng cho ra giao diện như Properties được viết = C++?
  • 0

#290 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 12 November 2007 - 10:12 AM

Mục này của các bạn hay lắm!
Mình đang có vấn đề với nhân 2 ma trận cấp 3, các mách nước cho mình nha.
Thanks !

Bạn có thể diễn đạt rõ hơn bằng chính "phong cách" của lisp được không? Kiến thức đại số cao cấp quên hết trơn rồi!
  • 0

#291 pooh_21

pooh_21

    biết zoom

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

Đã gửi 12 November 2007 - 12:08 PM

Các bạn làm giúp mình 1 lisp có tính năng sau nhé:

- Trong quá trình vẽ bản vẽ MB ký hiệu cửa, nhiều lúc vẽ xong rồi thì kiến trúc thay đổi thêm 1 cửa nữa ---> bản vẽ MB ý hiệu cửa cũng phải thay đổi, và việc thay đổi ký hiệu (VD: D3 thành D4 .... Dn thành D(n+1)) rất mất nhiều thời gian.

- Như file cad mình up ở bên dưới: lúc đầu mình có ký hiệu thống kê của
D1, D2, D2, D3
D4, D5, D5, D6

khi thêm 1 cửa nữa nên thống kê phải thay đổi là:
D1, D2, D3, D3, D4
D5, D6, D6, D7

(nhiệm vụ của cad là khi bấm vào ký hiệu D2, lisp sẽ tự động tìm và chuyển D2 thành D3, D3 thành D4 ... Dn thành D(n+1)

file cad minh hoạ
http://www.cadviet.com/upfiles/MB_ky_hieu_cua_1.dwg

Không biết mình mô tả như thế đã rõ ý chưa :bigsmile:
  • 0

#292 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 12 November 2007 - 02:14 PM

Các bạn làm giúp mình 1 lisp có tính năng sau nhé:

- Trong quá trình vẽ bản vẽ MB ký hiệu cửa, nhiều lúc vẽ xong rồi thì kiến trúc thay đổi thêm 1 cửa nữa ---> bản vẽ MB ý hiệu cửa cũng phải thay đổi, và việc thay đổi ký hiệu (VD: D3 thành D4 .... Dn thành D(n+1)) rất mất nhiều thời gian.

- Như file cad mình up ở bên dưới: lúc đầu mình có ký hiệu thống kê của
D1, D2, D2, D3
D4, D5, D5, D6

khi thêm 1 cửa nữa nên thống kê phải thay đổi là:
D1, D2, D3, D3, D4
D5, D6, D6, D7

(nhiệm vụ của cad là khi bấm vào ký hiệu D2, lisp sẽ tự động tìm và chuyển D2 thành D3, D3 thành D4 ... Dn thành D(n+1)

file cad minh hoạ
http://www.cadviet.com/upfiles/MB_ky_hieu_cua_1.dwg

Không biết mình mô tả như thế đã rõ ý chưa :bigsmile:

Bạn dùng lisp dồn ký hiệu bản vẽ ở đây.
http://www.cadviet.com/content/view/22/32/
  • 0

#293 vndesperados

vndesperados

    biết lệnh xref

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

Đã gửi 12 November 2007 - 02:31 PM

Mục này của các bạn hay lắm!
Mình đang có vấn đề với nhân 2 ma trận cấp 3, các mách nước cho mình nha.
Thanks !



;;;Create a matrix
(DEFUN MATRIX(sd sc i j chuoi num / liMa)
(setq LiMa (List))
(setq sd (getint "Nhap so dong Ma tran: "))
(setq sc (getint "Nhap so cot Ma tran: "))
(setq liMa (Append LiMa (list sd)))
(setq liMa (Append LiMa (list sc)))
(setq j 1)
(while (<= j sd)
(setq i 1)
(while (<= i sc)
(setq chuoi (strcat "\nNhap phan tu [" (itoa j) "," (itoa i) "]= "))
(setq num (getreal chuoi))
(setq i (1+ i))
(setq liMa (Append liMa (list num)))
)
(setq j (1+ j))
)
liMa
)

(DEFUN NHANMATRIX (LiMa1 LiMa2 / liMa num)
(setq sd1 (nth 0 LiMa1))
(setq sc1 (nth 1 liMa1))
(setq sd2 (nth 0 liMa2))
(setq sc2 (nth 1 liMa2))
(if (/= sc1 sd2)
(alert "Hai ma tran khong the nhan duoc voi nhau.\n Kiem tra!!! ")
(progn
(setq liMa (list))
(setq liMa (Append liMa (list sd1)))
(setq liMa (Append liMa (list sc2)))
(setq j 1)
(while (<= j sd1)
(setq i 1)
(while (<= i sc2)
(setq num (NHANHANGCOT liMa1 j liMa2 i))
(setq liMa (Append liMa (list num)))
(setq i (1+ i))
)
(setq j (1+ j))
)
)
liMa
)
)

(DEFUN NHANHANGCOT(liMa1 hang liMa2 cot / num)
(setq sc (nth 1 liMa1))
(setq i 1)
(setq num 0)
(while (<= i sc)
(setq num (+ num (* (GETEMATRIX liMa1 hang i) (GETELEMENT liMa2 cot i))))
(setq i (1+ i))
)
num
)


;;;Get element at row j, column i in a Matrix
(DEFUN GETEMATRIX(liMa dong cot / sd sc num )
(setq sd (nth 0 liMa))
(setq sc (nth 1 liMa))
(setq n (+ (* (- j 1) sc) i 1))
(setq num (nth n liMa))
num
)


(DEFUN PRINTMATRIX(liMa / sd sc)
(setq sd (nth 0 liMa))
(setq sc (nth 1 liMa))
(setq j 1)
(while (< = j sd)
(setq i 1)
(while (<= i sc)
(princ (GETEMATRIX liMa j i))
(princ " ")
(setq i (1+ i))
)
(princ "\n")
(setq j (1+ j))
)
)

  • 0

#294 conghaice

conghaice

    biết vẽ pline

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

Đã gửi 12 November 2007 - 05:07 PM

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

Anh Hoành ơi! em muốn có một lisp để vẽ đường ta luy tạo mái dốc. Trong cad có lệnh này ko nhỉ. Mong anh giúp đỡ!
  • 0

#295 RaKk

RaKk

    biết zoom

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

Đã gửi 12 November 2007 - 05:15 PM

Các bác cao thủ lisp ơi. em có một bài toán thế này mong các bác giải quyết giúp em bằng lisp nhé:
khi vẽ quy hoạch nhàm chán nhất là vẽ tim đường, rồi offset, rồi chamfer. các bác có thể rút ngắn quy trình nhàm chán trên bằng lisp không. Tức là chỉ cần vẽ 2 cái tim đường giao nhau sẽ cho ngay một ngã tư ngon lành với 3 loại đường nét thuộc 3 layer khác nhau là timduong, viaheduong có sẵn, đầu vào số liệu là các thông số độ rộng đường, độ rộng vỉa hè, fillet radiuschamfer distance. Xin cảm ơn các bác trước!
  • 0

#296 pooh_21

pooh_21

    biết zoom

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

Đã gửi 12 November 2007 - 05:29 PM

Bạn dùng lisp dồn ký hiệu bản vẽ ở đây.
http://www.cadviet.com/content/view/22/32/



Command: ap
APPLOAD DonKT.VLX successfully loaded.


Command: ; error: LISP application is already loaded DonKT

Mình chạy thì nó báo lỗi.

Cho mình hỏi thêm là ký hiệu cửa mình làm bằng Block và text thì làm bằng ATTDEF có áp dụng được lisp của bác không vậy?
  • 0

#297 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 12 November 2007 - 05:35 PM

Command: ap
APPLOAD DonKT.VLX successfully loaded.
Command: ; error: LISP application is already loaded DonKT

Mình chạy thì nó báo lỗi.

Cho mình hỏi thêm là ký hiệu cửa mình làm bằng Block và text thì làm bằng ATTDEF có áp dụng được lisp của bác không vậy?

lisp trên áp dụng cho cả text và block attribute.
  • 0

#298 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 12 November 2007 - 07:51 PM

Em mạn phép xin đc hỏi lại các bác lish lênh.
Layon, layiso, layoff trong 1 lệnh khác. Anh giúp
em lish này nhé!
  • 0

#299 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 12 November 2007 - 10:21 PM

Xin lisp thay đổi scale dim thì chức năng overall scale cũng thay đổi theo có nội dung như sau:
VD: trên màn hình là 1 dim, chạy lisp hỏi tỉ lệ scale dim : nhập 2, chương trình sẽ tự động scale dim lên 2 lần đồng thời thay đổi overall scale lên 2 theo ( mặc định ban đầu overall scale là 1) và scale liner giảm đi còn 0.5( mặc định ban đầu scale liner 1).
thanks!?
  • 0

#300 pooh_21

pooh_21

    biết zoom

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

Đã gửi 13 November 2007 - 09:59 AM

Command: ap APPLOAD DonKT.VLX successfully loaded.


Command:



HLisp da tai len thanh cong!
Command:
Command:
Command: DonKt
Unknown command "DONKT". Press F1 for help.

Mình đã thử nhiều lần nhưng lisp Donkt vẫn không dùng được, không hiểu tại sao (hiện mình đang dùng cad 2007). NguyenHoanh xem lại giúp mình nhé!
  • 0