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ị

Có ai giúp e khôôôôôôôôôôôôôôôôôôôông

Không :(

Vì làm như bạn thì thà làm 1 cái khung tên là block luôn có phải hơn không? các text cần thay đổi ở mỗi bản vẽ thì dùng đối tượng att, các vị trí cần che thì đưa luôn wipeout vào.

tương tự, các blok ghi chú cũng vậ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
Có ai giúp e khôôôôôôôôôôôôôôôôôôôông

Hề hề hề,

Đúng như bác ThaiStreetz đã nói, bạn đang làm một việc giống như "mua đường" vậy. Tuy nhiên có thể bạn khoái vì nhiều lý do nên mình cho bạn vay ít xìn để thuận tiện cho cái việc mua này nhé...

(defun c:blwipe ()
(command "undo" "be")
(setq en (car (entsel "\n Chon polyline khep kin"))
        elst (entget en)
        ptls (list)
)
(foreach ls elst
(if (= (car ls) 10)
(setq ptls (append ptls (list (cdr ls))))))
(setq ss (ssget "CP" ptls))
(command "wipeout" "" en "n")
(setq enw (entlast))
(command "draworder" enw "" "b")
(setq ss (ssadd enw ss))
(command "block" (getstring "\ Nhap ten block: ") (getpoint "\n Chon diem goc block") ss "")
(command "undo" "e")
(princ)
)

Nhớ là bạn phải tạo trước một polyline kín cho cái vùng bạn lấy làm block nhé. Có vậy mới có cái cho bạn chạy lisp, bằng không nó dễ ngoẻo lắm. Hề hề hề.....

Chúc bạn vui.

  • 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
Không :(

Vì làm như bạn thì thà làm 1 cái khung tên là block luôn có phải hơn không? các text cần thay đổi ở mỗi bản vẽ thì dùng đối tượng att, các vị trí cần che thì đưa luôn wipeout vào.

tương tự, các blok ghi chú cũng vậy

 

 

Nếu làm mỗi khung tên thì e nói làm gì, như ở trên e đã nói, ứng dụng cho: khung tên, bảng thống kê, các bảng ghi chú......Nói tóm lại là nhiều thứ, cần phải "front" trước các đối tượng 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
Hề hề hề,

Đúng như bác ThaiStreetz đã nói, bạn đang làm một việc giống như "mua đường" vậy. Tuy nhiên có thể bạn khoái vì nhiều lý do nên mình cho bạn vay ít xìn để thuận tiện cho cái việc mua này nhé...

 

Nhớ là bạn phải tạo trước một polyline kín cho cái vùng bạn lấy làm block nhé. Có vậy mới có cái cho bạn chạy lisp, bằng không nó dễ ngoẻo lắm. Hề hề hề.....

Chúc bạn vui.

 

 

Như e đã nói, e muốn k chỉ ứng dụng là khung tên (att) mà còn bảng thống kê vật liệu, bảng ghi chú......

Như vậy lisp của bác không cần chọn các đối tượng, chỉ cần chọn polyline kín, nó tự hiểu những đối tượng nào nằm trong polyline là nó tự động chọn luôn đúng k bác.

Cám ơn 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
Hề hề hề,

Đúng như bác ThaiStreetz đã nói, bạn đang làm một việc giống như "mua đường" vậy. Tuy nhiên có thể bạn khoái vì nhiều lý do nên mình cho bạn vay ít xìn để thuận tiện cho cái việc mua này nhé...

(defun c:blwipe ()
(command "undo" "be")
(setq en (car (entsel "\n Chon polyline khep kin"))
        elst (entget en)
        ptls (list)
)
(foreach ls elst
(if (= (car ls) 10)
(setq ptls (append ptls (list (cdr ls))))))
(setq ss (ssget "CP" ptls))
(command "wipeout" "" en "n")
(setq enw (entlast))
(command "draworder" enw "" "b")
(setq ss (ssadd enw ss))
(command "block" (getstring "\ Nhap ten block: ") (getpoint "\n Chon diem goc block") ss "")
(command "undo" "e")
(princ)
)

Nhớ là bạn phải tạo trước một polyline kín cho cái vùng bạn lấy làm block nhé. Có vậy mới có cái cho bạn chạy lisp, bằng không nó dễ ngoẻo lắm. Hề hề hề.....

Chúc bạn vui.

Với lisp này bác có thể tham khảo thêm hàm (ACET-GEOM-SS-EXTENTS-FAST (ssget)) sẽ hay hơn đó bác. ta sẽ không cần thiết phải vẽ đường pline bao

hàm ACET-GEOM-SS-EXTENTS-FAST được hiểu đầy đủ như sau:

là hàm rút gọn của hàm ACET-GEOM-SS-EXTENTS. Trả về tọa độ góc trái bên dưới và góc phải bên trên của 1 tập hợp đối tượng chọn bằng (ssget)

Tham số: là tập hợp chọn bằng (ssget)

Cú pháp: (ACET-GEOM-SS-EXTENTS-FAST ss)

  • 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
Với lisp này bác có thể tham khảo thêm hàm (ACET-GEOM-SS-EXTENTS-FAST (ssget)) sẽ hay hơn đó bác. ta sẽ không cần thiết phải vẽ đường pline bao

hàm ACET-GEOM-SS-EXTENTS-FAST được hiểu đầy đủ như sau:

là hàm rút gọn của hàm ACET-GEOM-SS-EXTENTS. Trả về tọa độ góc trái bên dưới và góc phải bên trên của 1 tập hợp đối tượng chọn bằng (ssget)

Tham số: là tập hợp chọn bằng (ssget)

Cú pháp: (ACET-GEOM-SS-EXTENTS-FAST ss)

Không Tổng quát. Nên đặt vào trong trường hợp đa tuyến Polyline là 1 đa tuyến kín bất kì bao trùm toàn bộ tập hợp chọn ss. Làm thế nào để vẽ được đa tuyến này từ tập chọn ss => Đó mới là vấn đề mấu chốt. Thà rằng vẽ trước 1 PLINE kín trước như bác Bình là xong

 

Theo mình cứ đơn giản vấn đề là hơn cả, chẳng cần dùng đến Lisp nữa. CAD dư sức làm chuyện này. Cứ làm như ý kiến của bạn Thaistreetz ở bài viết số 1505 là ổn cả. Viết Líp nhiều ... mất công nhớ tên lệnh mà ứng dụng của Lisp này theo mình cũng chẳng được bao nhiêu. Cứ đơn giản vấn đề là... hay nhất

  • 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
Với lisp này bác có thể tham khảo thêm hàm (ACET-GEOM-SS-EXTENTS-FAST (ssget)) sẽ hay hơn đó bác. ta sẽ không cần thiết phải vẽ đường pline bao

hàm ACET-GEOM-SS-EXTENTS-FAST được hiểu đầy đủ như sau:

là hàm rút gọn của hàm ACET-GEOM-SS-EXTENTS. Trả về tọa độ góc trái bên dưới và góc phải bên trên của 1 tập hợp đối tượng chọn bằng (ssget)

Tham số: là tập hợp chọn bằng (ssget)

Cú pháp: (ACET-GEOM-SS-EXTENTS-FAST ss)

Hề hề hề,...

Rất cám ơn sự góp ý của bác. Tuy nhiên mình cũng muốn giải thích thêm về cái động cơ viết cái lisp trên một chút...

Vấn đề là ở chỗ, khá nhiều người đang dùng cad mà lại không cài được bộ Express Tool cũng như mình vậy. Bữa trước bác Phi phi có gửi cho mình bộ Express Tool của cad 2007. nhưng chả hiểu sao mình cài vô trong cad2004 không được bác ạ. Mình cũng đã cầu cứu bộ express tool này cho cad2004 mà vẫn chưa có nên cũng chưa hiểu và ứng dụng được nhiều các hàm acet bác ạ.

Vì thế trong phạm vi hiểu biết của mình, mình cố làm những cái có thể được thôi chứ còn hay thì thực sự là khó mà hay được do tầm kiến thức của mình còn hơi lùn. Rất mong các bác chớ giận. Hề hề hề......

@ Sony2007: Đúng như bạn hiểu, ý mình là thay vì phải chọn từng đối tượng rồi lại tạo đường bao cho các đối tượng,(điều này khá rắc rối vì mỗi đối tượng lại có cách chọn đường bao khác nhau) mình chơi kiểu chọn một đường bao lớn bao gồm tất cả các đối tượng cần chọn mà diệt. Cái cách này sẽ bất hợp lý nếu các đối tượng của bạn không nằm liền kề nhau vì như vậy cái block có thể che đi những chỗ mà bạn không muốn che. Để giải quyết chuyện này, bạn có thể tạo nhiều block nhỏ tùy theo vị trí của mỗi loại đối tượng bạn cần block để xài cho phù hợp là OK.

Chúc bạn vui...

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ấn đề là ở chỗ, khá nhiều người đang dùng cad mà lại không cài được bộ Express Tool cũng như mình vậy. Bữa trước bác Phi phi có gửi cho mình bộ Express Tool của cad 2007. nhưng chả hiểu sao mình cài vô trong cad2004 không được bác ạ. Mình cũng đã cầu cứu bộ express tool này cho cad2004 mà vẫn chưa có nên cũng chưa hiểu và ứng dụng được nhiều các hàm acet bác ạ.

.........

Gửi bác bộ Express Tool của cad2004

download here

  • 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
Gửi bác bộ Express Tool của cad2004

download here

Chào bác Giabach,

Mình đã cài bộ express tool của bác gửi cho. Mọi việc cài đặt đều bình thường sau khi chạy setup file. Trong thư mục gốc của Cad2004 đã xuất hiện thư mục con Express, mình cũng đã thêm đường dẫn tìm kiếm vào thư mục này. Vậy nhưng không hiểu sao khi xài cái lệnh Acet-...... mà bác ThaiStreetz nói Cad vẫn báo là: no function definition: ACET-GEOM-SS-EXTENTS-FAST. Vậy là có vấn đề gì ở đây bác nhỉ??? Phải chăng còn phải kiếm thên bộ các lệnh về Acet-.... nữa và nếu vậy thì kiếm nó nơi mô??? Rất mong bác và các bác khác chỉ dẫn thêm....

Chúc bác và anh em trên diễn đàn luôn mạnh giỏ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
Chào bác Giabach,

Mình đã cài bộ express tool của bác gửi cho. Mọi việc cài đặt đều bình thường sau khi chạy setup file. Trong thư mục gốc của Cad2004 đã xuất hiện thư mục con Express, mình cũng đã thêm đường dẫn tìm kiếm vào thư mục này. Vậy nhưng không hiểu sao khi xài cái lệnh Acet-...... mà bác ThaiStreetz nói Cad vẫn báo là: no function definition: ACET-GEOM-SS-EXTENTS-FAST. Vậy là có vấn đề gì ở đây bác nhỉ??? Phải chăng còn phải kiếm thên bộ các lệnh về Acet-.... nữa và nếu vậy thì kiếm nó nơi mô??? Rất mong bác và các bác khác chỉ dẫn thêm....

Chúc bác và anh em trên diễn đàn luôn mạnh giỏi...

Có thể là bác chưa Activate the Express Tools?

Để Activate the Express Tools, bác nhập lệnh EXPRESSTOOLS tại dấu nhắc lệnh.

Hy vọng bốc đúng thuốc cho bá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ó thể là bác chưa Activate the Express Tools?

Để Activate the Express Tools, bác nhập lệnh EXPRESSTOOLS tại dấu nhắc lệnh.

Hy vọng bốc đúng thuốc cho bác.

Bác Giabach ơi, khi nhập Expresstools ở dòng nhắc lệnh command, thằng Cad nó bảo: "Unknown command "EXPRESSTOOLS". Press F1 for help."

Thế mới tệ 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
Có thể là bác chưa Activate the Express Tools?

Để Activate the Express Tools, bác nhập lệnh EXPRESSTOOLS tại dấu nhắc lệnh.

Hy vọng bốc đúng thuốc cho bác.

Hề hề hề,

Được rồi bác ơi, té ra là tại mình không khởi động lại Cad. Khi mình tắt đi khởi động lại Cad một phát là nó tòi ra luôn cái menu xổ xuống Express bác ạ. Và thế là thử chơi thằng (ACET-GEOM-SS-EXTENTS-FAST (ssget)) được luôn bác ạ. Khổ thế, tại dốt nên bác thông cảm nhé. Hề hề hề.... Vậy là có thêm cái để vọc rồi, hề hề hề....

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
Xin lỗi e spam chút xíu :

Các anh ơi … có ai xem giúp e cái lisp e xin ở trên với ạ.

 

Với thêm nếu cái đó chưa thể viết ngay được các a cho e xin cái lisp như vầy :

- Input : có đường cong bất kì và 1 block

- Các a giúp e viết cái lisp nào mà sau khi e copy cái block đó đến các điểm trên đường cong thì block đó sẽ tự động quay theo phương tiếp tuyến với đường cong tại điểm đó.

Nếu có thể : nâng cao lên : hỏi xem quay block đó về bên trái hay bên phải của đường cong

 

Thank các a rất nhiều – vì hiện giờ e phải copy rất nhiều cái như vậy và quay từng cái theo phương tiếp tuyến . Hoặc có cách nào khác ko cần lisp xin các a chỉ dạy ạ.

Bạn xài thử lisp này (viết cho cad 2010), nếu không chạy được lệnh acet-ss-to-list mình sẽ sửa lại

4 lệnh là QTr, QPh, TrPh, PhTr

Chiều của đường cong tính từ đầu gần của điểm pick

(defun C:QTr () (RotBlk 0 0))
(defun C:QPh () (RotBlk 1 0))
(defun C:TrPh () (RotBlk 0 1))
(defun C:PhTr () (RotBlk 1 1))

(vl-load-com)
(defun RotBlk (k n / i ss pl pt a da an el ei)
(defun BlDis (e pl)
(vlax-curve-getDistAtPoint pl (blpt e pl)))
(defun BlPt (e pl)
(vlax-curve-getClosestPointTo pl (cdr (assoc 10 (entget e)))))
(setq ss (acet-ss-to-list (ssget '((0 . "Insert")))))
(setq pl (entsel "\n Chon duong chuan"))
(setq  i 0 pt (cadr pl) pl (car pl))
(setq ss (vl-sort ss  (function (lambda (e1 e2)
																			 (< (bldis e1 pl) (bldis e2 pl) ))) ))

(setq a (* k pi))
(if (< 0.5 ( /(vlax-curve-getParamAtPoint pl (vlax-curve-getClosestPointTo pl pt))
		(vlax-curve-getEndParam pl)))
	(if (or (= n 0) (= 1 (rem (length ss) 2))) (setq a (- pi a)))
)

(repeat (length ss)
	(setq ei (nth i ss) el (entget ei) da (* (rem i 2) n pi) i (1+ i))
	(setq an (+ a da (angle '(0 0)(vlax-curve-getFirstDeriv pl (vlax-curve-getParamAtPoint pl (blpt ei pl))))))
	(entmod (subst (cons 50 (rem an (* 2 pi))) (assoc 50 el) el))
)
)

To phamthanhbinh

Bài này và bài rải cột điện khác nhau nhiều. Bài này là tuyệt đối, bài rải cột điện là tương đối nên không áp dụng cho nhau được.

Các chương trình của bạn nên hạn chế dùng biến global. Biến global chỉ dùng khi cần thiết và phải có quy tắc đặc tên để nhận biết.

  • 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

ÔI – THANK CÁC A RẤT NHIỀU – E SẼ DOW HẾT VỀ CHẠY THỬ

RỒI CÓ GÌ LÊN GÓP Ý CÁC ANH TIẾP – HÈ HÈ

NHƯNG MÀ VẬY LÀ LISP NÀY CHẮC SẮP ỔN RỒI

- CÁC ANH XEM DÙM E XIN CÁI LISP MÀ NHẬP CAO ĐỘ CHO CÁC ĐƯỜNG POLYLINE ĐÓ.

E MÔ TẢ LẠI THẾ NÀY : YÊU CẦU CỦA LISP LÀ GIÚP NHẬP CAO ĐỘ Z CHO CÁC POLYLINE ( NHIỀU ĐƯỜNG )

- LISP SẼ NHƯ SAU :

1.CHỌN POLYLINE ĐẦU TIÊN . NHẬP CAO ĐỘ Z ( VD : 5 )

2.CHỌN POLYLINE CUỐI CÙNG .NHẬP CAO ĐỘ Z ( VD : 10 )

3.NHẬP GIÁ TRỊ CHÊN CAO ( DELTA H ) VD: 0.5

( TẤT CẢ Ở ĐÂY ĐƠN VỊ M HẾT )

THÌ LISP SẼ NHẬP CAO ĐỘ CHO CÁC POLYLINE NẰM GIŨA 2 POLYLINE NÀY.

--- NÂNG CAO : ĐỔI MÀY CHO CÁC POLYLINE ( THEO KIỂU ĐƯỜNG ĐỒNG MỨC )

NHƯ : ĐĐM CON : MÀU XANH

ĐĐM CÁI : MÀ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
ÔI – THANK CÁC A RẤT NHIỀU – E SẼ DOW HẾT VỀ CHẠY THỬ

RỒI CÓ GÌ LÊN GÓP Ý CÁC ANH TIẾP – HÈ HÈ

NHƯNG MÀ VẬY LÀ LISP NÀY CHẮC SẮP ỔN RỒI

- CÁC ANH XEM DÙM E XIN CÁI LISP MÀ NHẬP CAO ĐỘ CHO CÁC ĐƯỜNG POLYLINE ĐÓ.

E MÔ TẢ LẠI THẾ NÀY : YÊU CẦU CỦA LISP LÀ GIÚP NHẬP CAO ĐỘ Z CHO CÁC POLYLINE ( NHIỀU ĐƯỜNG )

- LISP SẼ NHƯ SAU :

1.CHỌN POLYLINE ĐẦU TIÊN . NHẬP CAO ĐỘ Z ( VD : 5 )

2.CHỌN POLYLINE CUỐI CÙNG .NHẬP CAO ĐỘ Z ( VD : 10 )

3.NHẬP GIÁ TRỊ CHÊN CAO ( DELTA H ) VD: 0.5

( TẤT CẢ Ở ĐÂY ĐƠN VỊ M HẾT )

THÌ LISP SẼ NHẬP CAO ĐỘ CHO CÁC POLYLINE NẰM GIŨA 2 POLYLINE NÀY.

--- NÂNG CAO : ĐỔI MÀY CHO CÁC POLYLINE ( THEO KIỂU ĐƯỜNG ĐỒNG MỨC )

NHƯ : ĐĐM CON : MÀU XANH

ĐĐM CÁI : MÀU ĐỎ ….

Chào bạn 843824,

Bạn nhớ rằng không phải mọi người trên diễn đàn đều am hiểu đầy đủ về chuyên môn của bạn. Do vậy mọi cái bạn yêu cầu nên có các bản vẽ thể hiện những yêu cầu đó, còn nói chung chung như bạn thật khó cho người giúp bạn. Cụ thể với cái yêu cầu trên của bạn thì bạn hãy trả lời kỹ các vấn đề sau đây nhé:

1/- Các polyline mà bạn muốn nhập cao độ là có sẵn trên bản vẽ hay người viết líp phải tạo ra nó????

2/- Các polyline này có thực sự có cùng khoảng chênh với nhau hay không???

3/- Trong trường hợp bạn chọn nhầm đường polyline thứ hai (ví dụ thay vì chọn chọn đường có cao độ là 10 bạn lại chọn trúng vào đường có cao độ 10.5 thì bạn sẽ giải quyết ra sao???

4/- Vị trí bạn nhập text cao độ cho các đường polyline này là ở chỗ nào trên polyline???

5/- Nếu đường polyline của bạn chọn làm chuẩn không khép kín thì bạn sẽ giải quyết ra sao???

 

Bạn hãy suy nghĩ kỹ về các yêu cầu của bạn rồi chịu khó post bản vẽ để thể hiện các yêu cầu đó 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

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

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ổ 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

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é

  • 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.

Vậy nhé

Hoặc là đối tượng (text và các thứ linh tinh kia) là 1 block thì lấy điểm chèn để scale. Còn là các đối tượng rời thì mình nghĩ chỉ có thể gải quyết 1 lần cho 1 nhóm đối tượng chứ ko cho nhiều nhóm đối tượng được.

-Trước tiên chọn text chuẩn trước tìm trung điểm cảu text này làm điểm cơ sở sau đó chọn các đối tượng bu theo.

Với yêu cầu trên mình nghĩ chắc chỉ giải quyết đc vậy thôi. Bởi vì làm sao có cách nào mà biết đối tượng nào thì bạn í muốn phụ thuộc vào text nào mà làm.

  • 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
Hoặc là đối tượng (text và các thứ linh tinh kia) là 1 block thì lấy điểm chèn để scale. Còn là các đối tượng rời thì mình nghĩ chỉ có thể gải quyết 1 lần cho 1 nhóm đối tượng chứ ko cho nhiều nhóm đối tượng được.

-Trước tiên chọn text chuẩn trước tìm trung điểm cảu text này làm điểm cơ sở sau đó chọn các đối tượng bu theo.

Với yêu cầu trên mình nghĩ chắc chỉ giải quyết đc vậy thôi. Bởi vì làm sao có cách nào mà biết đối tượng nào thì bạn í muốn phụ thuộc vào text nào mà làm.

 

Mình có cách này, chắc là giải quyết được vấn đề:

Kết hợp Quick select trong Bảng Property với lệnh "SCALETEXT".

1. Click ký hiệu cái phễu (Quick select);

2. Click ký hiệu Select Objects;

3. Quét chọn toàn vùng cần điều chỉnh text, "OK";

4. Chọn Object type là text (hoặc Mtext);

5. Bỏ qua bước chọn Properties;

6. Chọn tiếp Operators là "Select All"; Click "OK";

 

*Hoàn thành phần chọn và lọc đối tượng*

 

7. Gõ lệnh "Scaletext"

8. Chọn Existing;

9. Đến đây có nhiều Option để lựa, trong trường hợp này thì chọn "S" (Scale Factor) để định 1 tỷ lệ chung cho các text;

10. Cứ mạnh dạn Nhập vào tỷ lệ rồi Enter?

11. Khoom tới Khoom lui xem có sai gì không, nếu sai thì UUUUUUUUUUUUUUUUU

Nếu đúng thì nhớ Thanks cho cái nha.

:(

  • 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
Mình có cách này, chắc là giải quyết được vấn đề:

Kết hợp Quick select trong Bảng Property với lệnh "SCALETEXT".

1. Click ký hiệu cái phễu (Quick select);

2. Click ký hiệu Select Objects;

3. Quét chọn toàn vùng cần điều chỉnh text, "OK";

4. Chọn Object type là text (hoặc Mtext);

5. Bỏ qua bước chọn Properties;

6. Chọn tiếp Operators là "Select All"; Click "OK";

 

*Hoàn thành phần chọn và lọc đối tượng*

 

7. Gõ lệnh "Scaletext"

8. Chọn Existing;

9. Đến đây có nhiều Option để lựa, trong trường hợp này thì chọn "S" (Scale Factor) để định 1 tỷ lệ chung cho các text;

10. Cứ mạnh dạn Nhập vào tỷ lệ rồi Enter?

11. Khoom tới Khoom lui xem có sai gì không, nếu sai thì UUUUUUUUUUUUUUUUU

Nếu đúng thì nhớ Thanks cho cái nha.

:(

Cách này là text không nhưng yêu cầu là

(kể cả những đường line,poly,spline,tròn.... bao quanh text)

  • 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

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

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.

×