Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Nguyen Hoanh

Viết Lisp theo yêu cầu

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

Bác Hoành ah, cái lisp đó là vẽ mặt cắt với các đường đồng mức không có cao trình (z=0) và các đường đồng mức tăng dần or giảm dần và phải khai báo độ chênh giữa 2 đường đồng mức (deltaH)

Bai toán của em là:

+ Đường đồng mức có cao độ z (mình đỡ phải khai báo deltaH)

+ Chọn 1 line (pline) làm mặt cắt tính toán (giống bài toán của bác)

+ Xuất ra phôi mặt cắt ngang (giống bài toán của 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
vndesperados    253
Cho mình xin lisp scale nhiều đối tượng cùng một lúc mà ko thay đổi vị trí của các đối tượng .

 

Nếu đối tượng là block, circle, elipse thì được chứ còn các kiểu cơ bản thì khó.

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ác Hoành ah, cái lisp đó là vẽ mặt cắt với các đường đồng mức không có cao trình (z=0) và các đường đồng mức tăng dần or giảm dần và phải khai báo độ chênh giữa 2 đường đồng mức (deltaH)

Bai toán của em là:

+ Đường đồng mức có cao độ z (mình đỡ phải khai báo deltaH)

+ Chọn 1 line (pline) làm mặt cắt tính toán (giống bài toán của bác)

+ Xuất ra phôi mặt cắt ngang (giống bài toán của bác)

Bác Hoành hay bác ssg giúp em với.

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
ditimbantot    0
bạn ơi có thể giúp mình sửa file lisp này được không vậy

<a href="http://www.cadviet.com/upfiles/laytoado.lsp.txt" target="_blank">http://www.cadviet.com/upfiles/laytoado.lsp.txt</a>

Mình lấy tọa độ từ thửa đất vì chạy ra số chẵn (tọa độ chẵn) xxx,xx nên diện tích thửa đất khi nhập tọa độ lại lệnh chút ít diện tích , ví dụ tọa độ khi vẽ là 300 M vuông có tọa độ pline là xxx.xxxx khi xuất ra bảng tọa độ thửa đất vừa nhập chỉ lấy xxx.xx mà thôi nên tọa độ lệch chút ít thí dụ còn 289m vuông bạn có cách nào khắc phục mà tọa độ vẫn là xxx.xx không giúp mình sửa cái nha thanks nhiều, lệnh là nth (chỉ phần này thôi)

 

Bác Hoanh oi giúp mình cái đi thật sự đang cần đó bác mình không biết cách nào để sửa .Chú ý chỉ chạy được với layer 10

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
Nguyen Hoanh    4.524
Bác Hoanh oi giúp mình cái đi thật sự đang cần đó bác mình không biết cách nào để sửa .Chú ý chỉ chạy được với layer 10

bạn muốn sửa thế nào?

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
arch_anhtuan    12

Anh Hoành cho em xin Lisp để vẽ nhà trong Quy hoạch.

Tức là từ những polyline mặt bằng các nhà, chúng sẽ được nâng cao độ extrude ngẫu nhiên. Để tạo nhà xung quanh í mà

Trước trên 4rum có, nhưng die, ko thể tìm được nữa

Mong anh giúp đỡ

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
Nguyen Hoanh    4.524
Anh Hoành cho em xin Lisp để vẽ nhà trong Quy hoạch.

Tức là từ những polyline mặt bằng các nhà, chúng sẽ được nâng cao độ extrude ngẫu nhiên. Để tạo nhà xung quanh í mà

Trước trên 4rum có, nhưng die, ko thể tìm được nữa

Mong anh giúp đỡ

Nếu dùng 3DSMax, bạn hãy dùng cái Greeble, dựng nhà xung quanh vừa nhanh, vừa đẹp, vừa kỹ.

 

Download ở đây: http://www.cadviet.com/caddata/8_MAX_danh_cho_3DS_Max-1.html

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
vinataba    3
Trên diễn đàn đã có đoạn list nối các điểm chèn text bằng các đoạn thẳng. Trên cơ sở ý tưởng đó các Bác cải tiến lại giúp em lệnh Copy 1 đối tượng có sãn vào các điểm chèn text.

Trên màn hình có các đối tượng là text có ghi các mã điểm (mã điểm có thể định dạng theo: 001, 002, 003 hoặc 1), 2), 3) .v. .v.)

Tiện ích sẽ thực hiện: khi chọn các text ghi các mã điểm này, lọc các text trong cùng một layer, hỏi mã điểm sau đó chọn 1 đối tượng và copy đối tượng này vào các điểm chèn của text thứ tự của người sử dụng nhập vào

ví dụ: người sử dụng type tại dòng command : nối điểm 001,002,003 . chọn đối tượng cần copy, chọn base point, sau đó nó sẽ copy đối tượng được chọn vào các điểm 001,002,003.

Cái này em dùng để làm hoàn công vị trí cọc đóng, cọc khoan...từ file số liệu đo của các bác trắc địa. Mỗi lần phải ngồi copy vài trăm cọc, mà các cọc lại có tiết diện khác nhau nên phải tìm vị trí của nó trên bản vẽ cũng rất mất công.

Thanks các bác nhiều.

Các bác giúp em với.

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
Nguyen Hoanh    4.524
Các bác giúp em với.

bạn hãy upload 1 file dwg mẫu.

 

Thể hiện 2 trạng thái, một là các đối tượng trước khi thực thi lisp, một là sau khi thực thi lisp.

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
vinataba    3
file mẫu của em đây. các bác giúp em

http://www.cadviet.com/upfiles/vd1.dwg

các bác ơi cái này trên diễn đàn cũng có rồi, em vừa lọ mọ tìm thấy. Nhưng mà nó có nhược điểm là không cho phép copy trong giới hạn một số điểm point, mà nó copy vào tất cả các point co trên màn hình. Bác Hoành giúp em sửa lại với.

link của nó đây, bác đỡ phải đi tìm: http://www.cadviet.com/sub/upfiles/nodesert.lsp

cảm ơn các bác đã quan tâm

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
Nguyen Hoanh    4.524
file mẫu của em đây. các bác giúp em

http://www.cadviet.com/upfiles/vd1.dwg

Chẳng hiểu bạn cần lisp gì.

file dwg này không nói lên điều gì giống với:

Trên diễn đàn đã có đoạn list nối các điểm chèn text bằng các đoạn thẳng. Trên cơ sở ý tưởng đó các Bác cải tiến lại giúp em lệnh Copy 1 đối tượng có sãn vào các điểm chèn text.

Trên màn hình có các đối tượng là text có ghi các mã điểm (mã điểm có thể định dạng theo: 001, 002, 003 hoặc 1), 2), 3) .v. .v.)

Tiện ích sẽ thực hiện: khi chọn các text ghi các mã điểm này, lọc các text trong cùng một layer, hỏi mã điểm sau đó chọn 1 đối tượng và copy đối tượng này vào các điểm chèn của text thứ tự của người sử dụng nhập vào

ví dụ: người sử dụng type tại dòng command : nối điểm 001,002,003 . chọn đối tượng cần copy, chọn base point, sau đó nó sẽ copy đối tượng được chọn vào các điểm 001,002,003.

Cái này em dùng để làm hoàn công vị trí cọc đóng, cọc khoan...từ file số liệu đo của các bác trắc địa. Mỗi lần phải ngồi copy vài trăm cọc, mà các cọc lại có tiết diện khác nhau nên phải tìm vị trí của nó trên bản vẽ cũng rất mất công.

Thanks các bác nhiều.

bạn cần giải thích rõ hơn về layer và hỏi mã điểm.

 

 

Nếu bạn chỉ cần 1 lisp highlight các text có giá trị mà bạn cần tìm thì bạn dùng lệnh ht của lisp sau đây:

(defun c:ht( / ft ss)
 (setq ft (getstring t "\nHay nhap cac cum tu can tim cach nhau 1 dau phay (vd: 12,34,56)")
ss (ssget (list (cons 0 "TEXT,MTEXT")(cons 1 ft)))
 )
 (sssetfirst ss ss)
 (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
MANHHUNGXDA    458

anh Hoành kính mến!

EM muốn có 1 cái lisp như sau:

đo kích thước của 1 đoạn thẳng bất kì, của 1 đoạn thẳng chẳng hạn, hiện đường kích thwớc đó ra xong, nhưng mà nó chỉ tồn tại trong 1giây rồi tự xoá.

Xin anh giúp em, em làm mãi mà không đwợ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
Nguyen Hoanh    4.524
anh Hoành kính mến!

EM muốn có 1 cái lisp như sau:

đo kích thước của 1 đoạn thẳng bất kì, của 1 đoạn thẳng chẳng hạn, hiện đường kích thwớc đó ra xong, nhưng mà nó chỉ tồn tại trong 1giây rồi tự xoá.

Xin anh giúp em, em làm mãi mà không đwợc!

Bạn đã bao giờ nhìn thấy một kiểu hiện thị tương tự như vậy trọng ACAD chưa?

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
MANHHUNGXDA    458
Bạn đã bao giờ nhìn thấy một kiểu hiện thị tương tự như vậy trọng ACAD chưa?

 

bỞI VÌ NHIỀU LÚC CẦN ĐO 1 CÁI J ĐÓ (XEM ) RỒI XOÁ ĐI, NÊN XUẤT HIẸN Ý TƯỞNG ĐÓ,

mỞ RỘNG VẤN ĐỀ LÀ CHO ĐỐI TƯỢNG TỒN TẠI THEO 1 KHOẢNG THỜI GIAN

LIỆU CÓ THỰC HIỆN ĐUWỌC KHÔNG 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
Nguyen Hoanh    4.524
bỞI VÌ NHIỀU LÚC CẦN ĐO 1 CÁI J ĐÓ (XEM ) RỒI XOÁ ĐI, NÊN XUẤT HIẸN Ý TƯỞNG ĐÓ,

mỞ RỘNG VẤN ĐỀ LÀ CHO ĐỐI TƯỢNG TỒN TẠI THEO 1 KHOẢNG THỜI GIAN

LIỆU CÓ THỰC HIỆN ĐUWỌC KHÔNG BÁC.

bạn phải email cho autodesk thôi! hy vọng trong các phiên bản sau, có được tính năng hiển thị như bạn muốn. Lúc đó lisp mới ăn theo đượ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

Bác Hoành giup em cai LIsp co nội dung là:

1. Chọn 1 Cung tròn (ARC)

2. Nhập vào đoạn chia a (a< chiều dài cung)

3. Chia cung trònn thành các đoạn co chiều dài cung bằng a.

4. In toạ độ các điểm chia trên cung tròn ra mà hình.

Mục đích của mình là lấy toạ độ các điểm chia thành 1 list.

Bác cố gắng giúp em cái nha.

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
Nguyen Hoanh    4.524
Bác Hoành giup em cai LIsp co nội dung là:

1. Chọn 1 Cung tròn (ARC)

2. Nhập vào đoạn chia a (a

3. Chia cung trònn thành các đoạn co chiều dài cung bằng a.

4. In toạ độ các điểm chia trên cung tròn ra mà hình.

Mục đích của mình là lấy toạ độ các điểm chia thành 1 list.

Bác cố gắng giúp em cái nha.

Tên lệnh là CC:

 

(defun c:cc( / ent kc cd p)
 (setq
   ent (car (entsel "\nHay pick vao 1 arc: "))
   kc  (getdist "\nNhap vao chieu dai a: ")
   cd 0.0 
 )
 (while (setq p (vlax-curve-getPointAtDist ent cd))
   (setq cd (+ cd kc))
   (princ "\n")
   (princ p)
 )
 (princ)
)
(vl-load-com)

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
ssg    1.088
anh Hoành kính mến!

EM muốn có 1 cái lisp như sau:

đo kích thước của 1 đoạn thẳng bất kì, của 1 đoạn thẳng chẳng hạn, hiện đường kích thwớc đó ra xong, nhưng mà nó chỉ tồn tại trong 1giây rồi tự xoá.

Xin anh giúp em, em làm mãi mà không đwợc!

1-

(defun C:TMP( / p1 p2)

(command "dimlinear" (setq p1 (getpoint)) (setq p2 (getpoint p1)) (getvar "lastpoint") )

(command "delay" 1000) ;;;Unit: milisecond

(command "erase" (entlast) "")

)

Lisp chạy đúng như đoạn in đậm trên, nhưng trong thời gian đó, bạn không làm gì khác được, chỉ có thể ngồi nhìn chơi! Lý do cơ bản: lisp không có chế độ chạy ở "hậu trường", tức là trả quyền điều khiển cho Acad và âm thầm làm những công việc ở đằng sau.

 

2- Mình cũng thường xuyên có nhu cầu như bạn. Mình thường dùng 2 lệnh: distance(di) và lengthen(len) cho mục đích này.

 

3- Một đề xuất khác, đúng mục đích của bạn nhưng là "bán tự động". Những đối tượng bạn xác định là temporary sẽ được cho vào 1 cái "rọ" ss (selection set) nào đó. Khi không cần đến chúng nữa, bạn "bắn" 1 phát là toàn bộ chúng biến mất.

  • 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

Rất cám ơn bác Hoành.

Bác chỉnh lại cho em một tý đc không.

Bác Hoành giup em cai LIsp co nội dung là:

1. Chọn 1 Cung tròn (ARC)

2. Nhập vào đoạn chia a (a< chiều dài cung)

3. Chọn 1 điểm trên cung tròn (điểm P1)

4. Từ điểm P1 Chia cung tròn thành các đoạn có chiều dài cung bằng a.

5. In toạ độ các điểm chia trên cung tròn ra mà hình.

Bác cố gắng chỉnh lại giúp em cái nha.

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
Nguyen Hoanh    4.524
Rất cám ơn bác Hoành.

Bác chỉnh lại cho em một tý đc không.

Bác Hoành giup em cai LIsp co nội dung là:

1. Chọn 1 Cung tròn (ARC)

2. Nhập vào đoạn chia a (a

3. Chọn 1 điểm trên cung tròn (điểm P1)

4. Từ điểm P1 Chia cung tròn thành các đoạn có chiều dài cung bằng a.

5. In toạ độ các điểm chia trên cung tròn ra mà hình.

Bác cố gắng chỉnh lại giúp em cái nha.

 

Lệnh CC1 dưới đây là cải tiến của lệnh CC, đáp ứng được yêu cầu của bạn:

(defun c:cc1()
 (setq
   ent (car (entsel "\nHay pick vao 1 arc: "))
   kc  (getdist "\nNhap vao chieu dai a: ")
   pbd (getpoint "\nDiem bat dau: ")    
   cd  (vlax-curve-getDistAtParam ent (vlax-curve-getParamAtPoint ent pbd))
 )
 (while (> (- cd kc) 0.0) (setq cd (- cd kc)))
 (while (setq p (vlax-curve-getPointAtDist ent cd))
   (setq cd (+ cd kc))
   (princ "\n")
   (princ p)
 )
 (princ)
)
(vl-load-com)

  • 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
ditimbantot    0
bạn muốn sửa thế nào?

Mình muốn khi chạy ra bảng toạ độ thì đúng kích thước diện tích mà bảng toạ độ đưa ra , không hiểu sao bảng toạ độ góc ranh của mình khi chạy toạ độ ,muốn chính xác phải xoá đường pline và nhập lại Pline mà khu đất xuất ra thì mới chính xác

Lúc nào cũng phải nhập lại toạ độ nếu chính xác thì thôi nếu không chính xác phải lấy toạ độ mới để đủ diện tích khu đất

- Bác giúp cái nha thanks bác nhiều

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
Nguyen Hoanh    4.524
Mình muốn khi chạy ra bảng toạ độ thì đúng kích thước diện tích mà bảng toạ độ đưa ra , không hiểu sao bảng toạ độ góc ranh của mình khi chạy toạ độ ,muốn chính xác phải xoá đường pline và nhập lại Pline mà khu đất xuất ra thì mới chính xác

Lúc nào cũng phải nhập lại toạ độ nếu chính xác thì thôi nếu không chính xác phải lấy toạ độ mới để đủ diện tích khu đất

- Bác giúp cái nha thanks bác nhiều

Các thuật ngữ chồng chéo và không một lời giải thích thế này thì tôi chịu rồi.

 

Bạn có thể diễn đạt thật ngắn, thật đủ và rõ cái bạn muốn được không?

Tôi chưa hiểu bạn cần làm cái gì và khó khăn của bạn ở đâu.

 

Nếu có thể bạn nên gạch đầu dòng là tốt nhất. Bạn nên nhớ rằng người khác không phải là bạn, họ không biết tí gì về công việc chuyên môn của bạn, hãy lý giải thật ngắn và rõ như đang nói chuyện với trẻ nhỏ.

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.

×