Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Thaistreetz

Nhờ viết lệnh thay thế lệnh Objectscale

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

Mình muốn đổi tên của lệnh objectscale để dung cho tiện nhưng mình không muốn chọn cách sửa file acad.pgp vì 1 vài nguyên nhân

Chết dở ở chỗ là khi dùng hàm command gọi lệnh này, mình không làm cách nào để nó hiện hộp thoại lên như bình thường được. kể cả cách chạy thông qua 1 đoạn Scrip.

Các bác xem có cách nào giúp mình không?

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 muốn đổi tên của lệnh objectscale để dung cho tiện nhưng mình không muốn chọn cách sửa file acad.pgp vì 1 vài nguyên nhân

Chết dở ở chỗ là khi dùng hàm command gọi lệnh này, mình không làm cách nào để nó hiện hộp thoại lên như bình thường được. kể cả cách chạy thông qua 1 đoạn Scrip.

Các bác xem có cách nào giúp mình không?

Bác Thaistreet cho hỏi tí: lệnh objectscale là lệnh gì, nó đâu có trong acad.pgp bác?

Có phải bác muốn hiện hộp thoại "acad.pgp - AutoCAD Alias Editor" bằng 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

ah, nếu bạn sử dụng cad 2008 trở lên và dùng các đối tuợng có thuộc tính annotative để dễ dàng trong quản lý tỷ lệ vẽ và tỷ lệ in ấn thì bạn mới sử dụng lệnh này.

đối tượng điều chỉnh của lệnh objectscale là các annotative object. bạn tham khảo bản vẽ mình post trong topic này

Vì lệnh này tên quá dài nên mình muốn thu ngắn lại bằng 1 lệnh tắt nào đó, AD chẳng hạn. cách đơn giản nhất là sửa file acad.pgp như mọi nguời thuờng dùng bằng cách thêm vào đó dòng AD, *Objectscale. nhưng mình không muốn dùng cách này bởi bởi mỗi lần cài lại cad là lại phải sửa lại nó, mặt khác nó cũng không tiện khi mình làm việc trên máy nguời khác. làm như vậy sẽ gây ra thay đổi cấu trúc lệnh cad của họ.

thay vì thế thì mình muốn đưa lệnh này vào bộ lisp của mình luôn để tiện sử dụng di động ý 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

ah, nếu bạn sử dụng cad 2008 trở lên và dùng các đối tuợng có thuộc tính annotative để dễ dàng trong quản lý tỷ lệ vẽ và tỷ lệ in ấn thì bạn mới sử dụng lệnh này.

đối tượng điều chỉnh của lệnh objectscale là các annotative object. bạn tham khảo bản vẽ mình post trong topic này

Vì lệnh này tên quá dài nên mình muốn thu ngắn lại bằng 1 lệnh tắt nào đó, AD chẳng hạn. cách đơn giản nhất là sửa file acad.pgp như mọi nguời thuờng dùng bằng cách thêm vào đó dòng AD, *Objectscale. nhưng mình không muốn dùng cách này bởi bởi mỗi lần cài lại cad là lại phải sửa lại nó, mặt khác nó cũng không tiện khi mình làm việc trên máy nguời khác. làm như vậy sẽ gây ra thay đổi cấu trúc lệnh cad của họ.

thay vì thế thì mình muốn đưa lệnh này vào bộ lisp của mình luôn để tiện sử dụng di động ý mà.

Tôi dùng Cad2004+2007 nên không hiểu lệnh objectscale. Tuy nhiên, hình như là vầy bác nè:

1. Hình như là nếu copy AD, *Objectscale paste vào acad.pgp thì gõ lệnh AD cũng không được hay sao ấy. Chẳng hạn lệnh COPYM nếu copy CPM, *Copym paste vào acad.pgp thì gõ lệnh CPM cũng không được.

2. Để gọi các lệnh thuộc Express thì không thể dùng hàm command vì các lệnh này nằm trong file CUI chứ không phải PGP.

VD: thay vì viết (command "copym") thì phải viết (c:copym).

Không biết có đúng ý bác không. Và không biết có ngộ nhận điều nào không đâ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

Hình như bác DVH chưa bao giờ sử dụng file acad.pgp để đổi tên 1 lệnh thì fải.

- Số 1 của bác: Vì bác chưa cập nhật lại file acad.pgp cho cad, có 3 cách: khởi động lại cad; dùng lệnh reinit; đơn giản hơn nữa là sửa nội dung acad.pgp bằng express > tool > command alias editor nó sẽ tự cập nhật lại acad.pgp luôn

- Số 2 của bác: chỗ này thì bác ngộ nhận thật. ObjectScale là lệnh của cad, không fải của Express. thêm nữa là dù cho nó có là lệnh của cad đi nữa thì không fải lệnh nào của cad cũng có thể viết duới dạng 1 hàm lisp kiểu (C:tenlenh... lệnh này cũng vậy.

PS: có thể bác cho là tôi hơi nhiều chuyện, nhưng giờ này mà bác còn lạch cạch với cad2007 thì tự bác đã tạo ra những thiệt thòi lớn cho mình trong nghề rồi đấy. đừng quá đề cao Lisp, Các bản cad đời cao hơn cung cấp rất nhiều công cụ tốt để giảm gánh nặng công việc mà bác cứ ngồi đó, mòn đít viết lisp cũng không bằng đâ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

Mình muốn đổi tên của lệnh objectscale để dung cho tiện nhưng mình không muốn chọn cách sửa file acad.pgp vì 1 vài nguyên nhân

Chết dở ở chỗ là khi dùng hàm command gọi lệnh này, mình không làm cách nào để nó hiện hộp thoại lên như bình thường được. kể cả cách chạy thông qua 1 đoạn Scrip.

Các bác xem có cách nào giúp mình không?

Good morning!

Bạn có thể tạo 1 tổ hợp phím tắt Keyboard shortcut cho lệnh objectscale bằng 1 file cui

  • 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

Hình như bác DVH chưa bao giờ sử dụng file acad.pgp để đổi tên 1 lệnh thì fải.

- Số 1 của bác: Vì bác chưa cập nhật lại file acad.pgp cho cad, có 3 cách: khởi động lại cad; dùng lệnh reinit; đơn giản hơn nữa là sửa nội dung acad.pgp bằng express > tool > command alias editor nó sẽ tự cập nhật lại acad.pgp luôn

- Số 2 của bác: chỗ này thì bác ngộ nhận thật. ObjectScale là lệnh của cad, không fải của Express. thêm nữa là dù cho nó có là lệnh của cad đi nữa thì không fải lệnh nào của cad cũng có thể viết duới dạng 1 hàm lisp kiểu (C:tenlenh... lệnh này cũng vậy.

PS: có thể bác cho là tôi hơi nhiều chuyện, nhưng giờ này mà bác còn lạch cạch với cad2007 thì tự bác đã tạo ra những thiệt thòi lớn cho mình trong nghề rồi đấy. đừng quá đề cao Lisp, Các bản cad đời cao hơn cung cấp rất nhiều công cụ tốt để giảm gánh nặng công việc mà bác cứ ngồi đó, mòn đít viết lisp cũng không bằng đâu.

Tôi không nghĩ bác là người quá nhiều chuyện.

  • 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

Lần trước có một bác bảo đặt lệnh tắt Extrim trong acad.pgp e đã buồn lắm rồi ^^. Cái objectscale này cũng oái ăm bác nhỉ ^^

P/S : đề nghị bác Bụi trả e 1 vote >"<

  • 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

@bác Tue_NV: làm cách đó cũng không khác việc chỉnh sửa acad.pgp là mấy. có lẽ đúng là em không còn sự lựa chọn nào cho truờng hợp này.

@ketxu: tớ trả rồi đấy nhá :lol:

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 Tue_NV: làm cách đó cũng không khác việc chỉnh sửa acad.pgp là mấy. có lẽ đúng là em không còn sự lựa chọn nào cho truờng hợp này.

@ketxu: tớ trả rồi đấy nhá :lol:

Khi làm máy tính ở người khác -> Bạn dùng lệnh cuiload để Load file cui của bạn vào. Sử dụng xong rồi thì cuiunload file cui của bạn ra. Chả có ảnh hưởng gì đến ai. :rolleyes:

Còn không thì bạn sử dụng thử cái này xem có được không?

(defun c:obs()

(initdia)

(command "objectscale")

)

  • 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òn không thì bạn sử dụng thử cái này xem có được không?

(defun c:obs()

(initdia)

(command "objectscale")

)

Gớm, bác chạ test chán chê r mới post chứ lại còn xem có được hay không nữa :lol:

Chắc một lisp ơ nào gặp vấn đề này cũng nghĩ ngay tới việc xơi bác in ít đi a này, thế mà AutoDesk Help thì :

(initdia [dialogflag])

Currently, the following commands make use of the initdia function: ATTDEF, ATTEXT, BHATCH, BLOCK, COLOR, IMAGE, IMAGEADJUST, INSERT, LAYER, LINETYPE, MTEXT, PLOT, RENAME, STYLE, TOOLBAR, and VIEW.

Quả là làm nhọc công anh em ^^. Help nhiều lúc thiếu sót đến ngớ ngẩ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

Gớm, bác chạ test chán chê r mới post chứ lại còn xem có được hay không nữa :lol:

Chắc một lisp ơ nào gặp vấn đề này cũng nghĩ ngay tới việc xơi bác in ít đi a này, thế mà AutoDesk Help thì :

....

Quả là làm nhọc công anh em ^^. Help nhiều lúc thiếu sót đến ngớ ngẩn ???

Vì trong help viết vậy, mình thì thử được rồi, không dám chắc máy của các bạn có sử dụng được không nên mới viết như dậ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

không fải help thiếu sót ngớ ngẩn đâu. tại nội dung này đuợc viết từ thời cad muời mấy gì đó. trong khi qua mỗi đời cad lại có thêm rất nhiều lệnh. nguời viết help chắc cũng không thể luờng hết đuợc những thay đổi này cho từng mục trong help

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ạn viết như thế này

(defun c:Bre nil (c:Breakline))

(defun c:Tca nil (c:Tcase))

các lệnh khác trong express bạn có thể làm tuơng tự.

PS: có thể có 1 số lệnh không viết đuợc theo kiểu này 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

bạn viết như thế này

(defun c:Bre nil (c:Breakline))

(defun c:Tca nil (c:Tcase))

các lệnh khác trong express bạn có thể làm tuơng tự.

PS: có thể có 1 số lệnh không viết đuợc theo kiểu này nhé

Bác cho e hỏi ý nghĩa của cái chữ Nil 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

lệnh cal cũng tuơng tự thế mà bạn

ví dụ bạn muốn đổi lệnh thành CAC chẳng hạn: (defun c:CAC nil (c:cal))

@ketxu: bạn thử gõ 2 ký tự () vào command thử xem. Mình đại lãn, viết như thế fải giữ shift rồi gõ 9+0, khó hơn là nil nên viết nó = nil cho nhanh ý mà :P

  • 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

lệnh cal cũng tuơng tự thế mà bạn

ví dụ bạn muốn đổi lệnh thành CAC chẳng hạn: (defun c:CAC nil (c:cal))

....

Nên thêm cái này nữa:

(defun c:CAC nil

(if (not cal) (arxload "geomcal"))(c:cal))

  • 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

Nên thêm cái này nữa:

(defun c:CAC nil

(if (not cal) (arxload "geomcal"))(c:cal))

Dòng chữ màu xanh có tác dụng gì vậy bác.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

lệnh cal đuợc nhúng vào cad bằng 1 arx là geomcal. trong 1 vài truờng hợp file này không tự động đuợc load vào cad. vì thế cần kiểm tra xem nó đã đuợc load vào cad hay chưa. nếu chưa thì load nó vào rồi mới thực hiện lệnh CAL

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

lệnh cal đuợc nhúng vào cad bằng 1 arx là geomcal. trong 1 vài truờng hợp file này không tự động đuợc load vào cad. vì thế cần kiểm tra xem nó đã đuợc load vào cad hay chưa. nếu chưa thì load nó vào rồi mới thực hiện lệnh CAL

Dòng chữ màu xanh có tác dụng gì vậy bác.Thanks.

Bạn xem bài viết số #53 của Tue_NV trong topic này :

http://www.cadviet.com/forum/index.php?showtopic=29918&st=40

  • 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

Hôm nay mò thêm 1 cách nữa để hiện hộp thoại cô em objectscale cùng 1 số em khác, share với các bác luôn : sử dụng vla-sendcommand

(vla-sendcommand (vla-get-activedocument(vlax-get-acad-object)) "objectscale\r")

Với cách này ta có thể gọi cả các function trong Lisp hoặc thực hiện các lệnh kiểu batch,script, vì nó tương đương với việc sendkey, khá là hay ^^

  • 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

Cụ thể hơn về ứng dụng của thằng này đi mod ơi. VLA em gà lắm :huh:

Hình như nó có thể chạy thay cho 1 đoạn Scrip thì fả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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×