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ị

khổ thân tôi quá, lại gặp 1 vấn đề nữa nhờ mấy cao thủ giúp đỡ : nhờ mấy bác viết dùm em 1 cái lisp như sau

- nhập lệnh

- Chọn tất cả text trên màn hìn (kể cả những đường line,poly,spline,tròn.... bao quanh text)

- nhập hệ số scale- enter

thì tất cả các text và các hình bao nó tự scale tại chỗ không nhảy tùm lum được ko mấy bác

@ tại tôi cần scale hàng nghìn cái như thế , cám ơn

Mình đoán là bạn cần phải thay đổi tỷ lệ in của bản vẽ khi mà đã hoàn thiện nó với tỷ lệ khác.

Vấn đề này đúng như anh duy nói. không thể giải quyết hàng loạt đc đâu. làm sao để biết những đối tượng nào nằm cùng nhóm cần scale với 1 text.

Cad 2008 trở lên bắt đầu được hỗ trợ annotation. chắc bạn chưa làm quen và sử dụng nó để xây dựng chuẩn bản vẽ nên mới vấp phải trường hợp này.

  • 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
Scale thì phải có tâm scale và hệ số tỉ lệ. Hệ số tỉ lệ thì nhập vô rồi, còn tâm scale nằm chổ mô vậy bạn?

Bạn nói rõ thì mới giúp được. Có lẽ bạn nên upload file .dwg minh hoạ và nói rõ hơn.

Vậy nhé

bác ơi bác có thể giúp em viết một cái lip mà khi sử dụng lệnh f (fillet) thì ta có thể sử dụng nhiều lần như là lệnh copy được ko ah. ví dụ như là khi mình thực hiện lệnh f với 2 đường rùi sau đó lại làm lại được luôn mà ko phải dùng phim enter or phim cách or phím phải chuộ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
bác ơi bác có thể giúp em viết một cái lip mà khi sử dụng lệnh f (fillet) thì ta có thể sử dụng nhiều lần như là lệnh copy được ko ah. ví dụ như là khi mình thực hiện lệnh f với 2 đường rùi sau đó lại làm lại được luôn mà ko phải dùng phim enter or phim cách or phím phải chuột.

Không cần phải sử dụng đến Lisp

-> CAD đã làm chuyện đó như sau :

-> Gõ Multiple -> gõ F (fillet) -> sẽ được như ý

 

Command: multiple

 

Enter command name to repeat: f

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]:

Select second object or shift-select to apply corner:

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]:

Select second object or shift-select to apply corner:

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]: *Cancel*

 

Nhấn Esc thoát lệnh :(

  • Vote tăng 2

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ông cần phải sử dụng đến Lisp

-> CAD đã làm chuyện đó như sau :

-> Gõ Multiple -> gõ F (fillet) -> sẽ được như ý

 

Command: multiple

 

Enter command name to repeat: f

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]:

Select second object or shift-select to apply corner:

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]:

Select second object or shift-select to apply corner:

FILLET

Current settings: Mode = TRIM, Radius = 0.0000

Select first object or [undo/Polyline/Radius/Trim/Multiple]: *Cancel*

 

Nhấn Esc thoát lệnh :(

vâng ah. em làm được rùi. nhưng mà bác ơi có thể cho cái lệnh đó ngắn lại để thao tác cho nhanh được ko ah.

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
vâng ah. em làm được rùi. nhưng mà bác ơi có thể cho cái lệnh đó ngắn lại để thao tác cho nhanh được ko ah.

hì. em cũng làm đưọc rùi.hi.em cám ơn bác nhìu 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
vâng ah. em làm được rùi. nhưng mà bác ơi có thể cho cái lệnh đó ngắn lại để thao tác cho nhanh được ko ah.

Bạn có thể thiết lập lệnh tắt cho lệnh Multiple trong file acad.pgp

 

Mình có một bản vẽ bao gồm các point với các thông tin của point là tên điểm, độ cao và mô tả dạng text đi kèm:

http://www.cadviet.com/upfiles/3/textxyz.dwg

Muốn chuyển nhanh sang định dạng block như bản vẽ sau:

http://www.cadviet.com/upfiles/3/blockxyz.dwg

Nhờ các bạn viết lisp: nhập lệnh, quét chọn những đối tượng cần chuyển, Enter.

(Tag block tên điểm là FPT_NUM, Tag của độ cao là FPT_ALT, Tab của mô tả là FPT_DES)

Cám ơn trước

Chào 'tnmtpc'

Tue_NV không download file của bạn về được. Khi download theo đường link của bạn thì nó hiện ra cái này :

untitled_10.jpg

Không hiểu là do nguyên nhân gì nữa?

Bạn có thể upload lại file được không?

  • 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
Tue_NV không download file của bạn về được. Không hiểu là do nguyên nhân gì nữa?

Bạn có thể upload lại file được không?

Tue_NV : link vẫn bình thường mà, có thể down theo link của bạn hoan 2182

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

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
Mình có một bản vẽ bao gồm các point với các thông tin của point là tên điểm, độ cao và mô tả dạng text đi kèm:

http://www.cadviet.com/upfiles/3/textxyz.dwg

Muốn chuyển nhanh sang định dạng block như bản vẽ sau:

http://www.cadviet.com/upfiles/3/blockxyz.dwg

Nhờ các bạn viết lisp: nhập lệnh, quét chọn những đối tượng cần chuyển, Enter.

(Tag block tên điểm là FPT_NUM, Tag của độ cao là FPT_ALT, Tab của mô tả là FPT_DES)

Cám ơn trước

Chào tnmtpc

Có 1 điểm mà Tue_NV muốn hỏi bạn tnmtpc là :

Trong file blockxyz.dwg

Tag block tên điểm là FPT_NUM -> ten Block là : FPT_NUM

Tag của độ cao là FPT_ALT -> ten Block là : FPT_ALT

Còn Tab của mô tả là FPT_DES là Tab gì? trong bản vẽ thấy không thể hiện và không hiểu nó là cái gì nữa?

Còn point thì sao?

Đại khái là không hiểu được ý của bạn?

Bạn vui lòng giải thích rõ 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

Nhờ các bạn viết dùm mình LISP cắt ảnh Xref theo 1 Pline chọn sẵn!

Vì lệnh Xclip để cắt hình với Option là Polygon chỉ cho phép mình vẽ lại thôi, ko cho mình select object với 1 pline đã có sẵn!

Thanks mọi ngườ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
Nhờ các bạn viết dùm mình LISP cắt ảnh Xref theo 1 Pline chọn sẵn!

Vì lệnh Xclip để cắt hình với Option là Polygon chỉ cho phép mình vẽ lại thôi, ko cho mình select object với 1 pline đã có sẵn!

Thanks mọi người!

Truongthanh đã thử chưa?

 

Command: XCLIP

Select objects: 1 found -> Pick chon đối tượng Xref

 

Select objects: -> enter

 

Enter clipping option

[ON/OFF/Clipdepth/Delete/generate Polyline/New boundary] : -> enter

Outside mode - Objects outside boundary will be hidden.

Specify clipping boundary or select invert option:

[select polyline/Polygonal/Rectangular/Invert clip] : S -> gõ S

Select polyline: -> Chọn Polyline

 

Successful!

  • Vote tăng 2

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 tnmtpc

Có 1 điểm mà Tue_NV muốn hỏi bạn tnmtpc là :

Trong file blockxyz.dwg

Tag block tên điểm là FPT_NUM -> ten Block là : FPT_NUM

Tag của độ cao là FPT_ALT -> ten Block là : FPT_ALT

Còn Tab của mô tả là FPT_DES là Tab gì? trong bản vẽ thấy không thể hiện và không hiểu nó là cái gì nữa?

Còn point thì sao?

Đại khái là không hiểu được ý của bạn?

Bạn vui lòng giải thích rõ nhé

Chà thiếu sót quá, tên tag của mô tả trùng với tên block như hai thằng kia vậy. Mô tả ở đây là ghi chú cho điểm ấy mà, do trong file dữ liệu thiếu mất trường này này nó không có trên bản vẽ. Point là dạng ký hiệu chuẩn của Cad thôi mà, vị trí của nó là điểm chèn các thông tin của điểm.

Nôm na là hai bản vẽ trên nếu xét về tọa độ thì không có gì thay đôi, nhưng có một số tiện ích không thực thi với đối tượng text nên phải chuyển sang block để thao tá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
Nhờ các bạn viết dùm mình LISP cắt ảnh Xref theo 1 Pline chọn sẵn!

Vì lệnh Xclip để cắt hình với Option là Polygon chỉ cho phép mình vẽ lại thôi, ko cho mình select object với 1 pline đã có sẵn!

Thanks mọi người!

bạn dùng lệnh CLIPIT thử xem. sau khi dánh lệnh bạn chọ polyline rồi chọn xref hoặc block sau đó enter

  • Vote tăng 3

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
Truongthanh đã thử chưa?

 

Command: XCLIP

Select objects: 1 found -> Pick chon đối tượng Xref

 

Select objects: -> enter

 

Enter clipping option

[ON/OFF/Clipdepth/Delete/generate Polyline/New boundary] : -> enter

Outside mode - Objects outside boundary will be hidden.

Specify clipping boundary or select invert option:

[select polyline/Polygonal/Rectangular/Invert clip] : S -> gõ S

Select polyline: -> Chọn Polyline

 

Successful!

cách của TUE mình làm với IMAGE ko được!

Thanks các bạn đã 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
Scale thì phải có tâm scale và hệ số tỉ lệ. Hệ số tỉ lệ thì nhập vô rồi, còn tâm scale nằm chổ mô vậy bạn?

Bạn nói rõ thì mới giúp được. Có lẽ bạn nên upload file .dwg minh hoạ và nói rõ hơn.

Vậy nhé

trước hết cám ơn bác đã quan tâm, líp chọn bắt điểm của mổi text là điểm chèn của text đó rùi scale quanh điểm chèn được ko bác đồng thời tìm object bao xung quanh nó (giống như kí hiệu trục vậy) và scale luô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
Mình có một bản vẽ bao gồm các point với các thông tin của point là tên điểm, độ cao và mô tả dạng text đi kèm:

http://www.cadviet.com/upfiles/3/textxyz.dwg

Muốn chuyển nhanh sang định dạng block như bản vẽ sau:

http://www.cadviet.com/upfiles/3/blockxyz.dwg

Nhờ các bạn viết lisp: nhập lệnh, quét chọn những đối tượng cần chuyển, Enter.

(Tag block tên điểm là FPT_NUM, Tag của độ cao là FPT_ALT, Tab của mô tả là FPT_DES)

Cám ơn trước

Chưa có ai giúp mình cái này ??

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

Nhờ các bác nghiên cứu làm cho em cái lisp có chức năng như sau:

 

Chắc hẳn các bạn đều biết lệnh m2p hoặc mtp rồi đúng không

 

Nhưng gõ lệnh này thực sự hơi bất tiện, giờ mình muốn chuyển nó về lệnh khác có chức năng tương tự (chỉ khi vẽ line hay chọn đối tượng thì ta mới sử dụng được lệnh này) giống như lệnh m2p và mtp của nó

 

Chằng hạn như

Khi vẽ Line rồi mình sẽ gõ vào là t2 chẳng hạn nó sẽ yêu cầu mình chọn 2 điểm và tự biến nó về có tọa độ là trung điểm 2 điểm đó

Nói chung là hoàn toàn giống như là m2p và mtp chỉ có điều là rút ngắn lệ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

Mình hatch 1 vùng, sau đó muốn đo diện tích vùng đó nhưng ko muốn pick lại vùng đó giống như khi hatch.

Mình muốn có 1 lisp sao cho chỉ cần chọn phần hatch thì sẽ xuất ra diện tích của hatch đó vào text có sẵn.

Mình có hơn 200 cái hatch như vậy làm thủ công (nhấn Li, xem dt, ghi lại vào text) mất thời gian quá. Bạn nào giúp mình nhé, thanks !!

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ưa có ai giúp mình cái này ??

Chào bác tnmtpc,

Thực ra mình cũng đã thử làm theo yêu cầu của bác nhưng quả thật là có chỗ bí. Nếu chỉ tạo thành một block thông thường thì có nhẽ có thể không phiền lắm, nhưng để tạo thành block có chứa các thuộc tính đúng như bác yêu cầu thì hơi gay. Cái bí nhất chính là làm sao chuyển được các mã dxf của các text đã có thành các mã chứa trong thuộc tính của block. Mình loay hoay mà chưa có giải pháp nào khả dĩ. Bác cố gắng chờ thêm vậy...

Chúc bác vui.

 

À mà sao mấy hôm nay không thể load mấy cái file bác gửi về để thí nghiệm cả bác ạ. Bác thử gửi lại xem 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
Chưa có ai giúp mình cái này ??

Có phải bác muốn tạo thành Block có chứa 3 đối tượng: Point đồng thời là Basepoint và 2 Text liền kề ko?

Nếu đúng như thế tôi sẽ nghiên cứ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

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ó phải bác muốn tạo thành Block có chứa 3 đối tượng: Point đồng thời là Basepoint và 2 Text liền kề ko?

Nếu đúng như thế tôi sẽ nghiên cứu.

Không phải block có 3 đối tượng, tương ứng với mỗi text sẽ chuyển thành một block có 1Tag với tên tag trùng tên block và thuộc một lớp riêng

 

Chào bác tnmtpc,

Thực ra mình cũng đã thử làm theo yêu cầu của bác nhưng quả thật là có chỗ bí. Nếu chỉ tạo thành một block thông thường thì có nhẽ có thể không phiền lắm, nhưng để tạo thành block có chứa các thuộc tính đúng như bác yêu cầu thì hơi gay. Cái bí nhất chính là làm sao chuyển được các mã dxf của các text đã có thành các mã chứa trong thuộc tính của block. Mình loay hoay mà chưa có giải pháp nào khả dĩ. Bác cố gắng chờ thêm vậy...

Chúc bác vui.

 

À mà sao mấy hôm nay không thể load mấy cái file bác gửi về để thí nghiệm cả bác ạ. Bác thử gửi lại xem nhé.

Link vẫn bình thường mà ,để mình gửi lại. Giúp mình nhé!

http://www.cadviet.com/upfiles/3/txttoblk.rar

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

Mấy anh ơi! có thể viết giùm e lisp này được không a

1. Chọn text

2. Nếu số đó là âm thì chuyển về layer "âm"

Nếu là dương thì chuyển về layer "dương"

E đang bí đoạn này, nó cứ bị lỗi hoài ah.

Thanks a lots!

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
Mấy anh ơi! có thể viết giùm e lisp này được không a

1. Chọn text

2. Nếu số đó là âm thì chuyển về layer "âm"

Nếu là dương thì chuyển về layer "dương"

E đang bí đoạn này, nó cứ bị lỗi hoài ah.

Thanks a lots!

 

Còn Text không phải là số thì "xử" hắn ra sao bạ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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×