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ị

Em thấy tốc độ của Lisp này ngang bằng với lệnh Mutiple -> Move chứ chẳng nhanh hơn là mấy. Trong khi đó, lệnh Mutiple -> Move lại có thể hiện được cả hình ảnh động và di chuyển đối tượng theo hướng của dây tóc chuột

Nếu Lisp thể hiện được hình được hình ảnh động và di chuyển theo phương dây tóc của chuột (khỏi cần nhập góc) thì nó mới thật sự nhanh hơn đấy anh gia_bach à

Mutiple -> Move : có phải là lệnh MoCoRo ?

Nếu là lệnh MoCoRo thì chức năng khác với Lisp này.(ko cần nhập lại khoảng cách. )

 

hàm GetAngle cho phép pick điểm hoặc nhập trực tiếp.

 

thể hiện được hình được hình ảnh động và di chuyển theo phương dây tóc của chuột : chắc phải nhờ hàm Expres Tools.

 

Cám ơn Tue_NV.

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
Mutiple -> Move : có phải là lệnh MoCoRo ?

Nếu là lệnh MoCoRo thì chức năng khác với Lisp này.(ko cần nhập lại khoảng cách. )

Dạ không,

Mutiple -> Move : là lệnh Multiple : để lặp lại lệnh Move như trong code Lisp của anh

Command: MULTIPLE -> gõ Mutiple

Enter command name to repeat: m -> gõ M (lệnh tắt của Move)

Select objects: Specify opposite corner: 46 found -> chọn đối tượng

 

Select objects: 500 -> kéo trỏ chuột theo hướng mà user điịnh và gõ 500 (là giá trị khoảng cách)

( thể hiện hình ảnh động của đối tượng Move)

 

Command: -> tự động lặp lại lệnh Move (do ta đã gõ lệnh Multiple trước đó)

M

Select objects: Specify opposite corner: 46 found -> chọn đối tượng

 

Select objects: -> kéo trỏ chuột theo hướng mà user điịnh và gõ 500 (là giá trị khoảng cách)

500

(thể hiện hình ảnh động của đối tượng Move)

..

...

-> Tiếp tục như vậy -> Cái này hơi dở là nhấn Esc để thoát lệnh lặp Multiple

lệnh Mutiple -> Move lại có thể hiện được cả hình ảnh động và di chuyển đối tượng theo hướng của dây tóc chuột, có điều cái này không lưu được khoảng cách

Nếu Lisp thể hiện được hình được hình ảnh động và di chuyển theo phương dây tóc của chuột (khỏi cần nhập góc) thì nó mới thật sự nhanh hơn đấy anh gia_bach à.

 

Lisp tối ưu phải là Lisp khắc phục được nhược điểm của lệnh Mutiple -> Move (lưu lại khoảng cách cho việc sử dụng lần sau mà thôi (không có giá trị góc), thể hiện được hình ảnh động theo phương di chuyển của đối tượng

  • 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
( thể hiện hình ảnh động của đối tượng Move)

Ừ mình cũng ưng có ai là được việc này cho mình mót với chứ mấy cái lisp của mình toàn bị vậy. Ví dụ copy cứ chỉ điểm nào thì ảnh copy tới đó chứ không có cái hình ảnh động nhìn không ưng mắt lắ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
Ừ mình cũng ưng có ai là được việc này cho mình mót với chứ mấy cái lisp của mình toàn bị vậy. Ví dụ copy cứ chỉ điểm nào thì ảnh copy tới đó chứ không có cái hình ảnh động nhìn không ưng mắt lắm.

bạn có thể sử dụng các hàm:

 

(acet-ss-drag-move ss pt [prompt] [highlight [cursor]])

 

(acet-ss-drag-rotate ss pt [prompt] [highlight [cursor]])

 

(acet-ss-drag-scale ss pt [prompt] [highlight [cursor]])

 

 

bạn vào đây xem thêm

http://www.cadviet.com/forum/index.php?showtopic=13492

  • 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

Đi cả ngày về thấy cái Lisp sửa đổi Dimension của gia_bach; Test chạy OK

Thầm nghĩ: Trong cuộc sống, người ta hay thích “dài”.

Nhưng với Lisp xem ra điều đó không phù hợp.

“Ngắn” mà “hiệu quả” vẫn thích hơn, nhỉ!!! :(

Xin cảm ơn gia_bach.

 

Bây giờ có mấy yêu cầu cho các cao thủ “Ô tô Líp” của Diễn đàn Cadviet đây:

Ý tưởng này học tập từ chương trình SketchUp (SU)

Nói qua một chút: SketchUp là một chương trình của hãng Google; thoạt nhìn người dùng sẽ thấy nó như thứ đồ chơi (giao diện đơn giản như Photo Paint vậy)

 

Với cá nhân tôi, sau khi dùng SU một thời gian thấy rất cảm tình với chương trình này vì “tính người” của nó.

Trở lại nhìn Autodesk thấy rắc rối và mang nặng tính kỹ thuật

Do vậy, để góp phần làm Autocad “lãng mạn” hơn, tôi nảy sinh ý định nhờ các cao thủ Cadviet hãy góp phần hoàn thiện nó. Ban đầu hãy thử hoàn thiện các lệnh 2D sau”

 

01. Lệnh Divide:

- Chọn đối tượng cần Divide (Line; Arc; Polyline,..)

- Đưa chuột dọc theo đối tượng thì trên màn hình sẽ xuất hiện 2 thông tin tương ứng (số điểm chia và giá trị khoảng cách)

- Khi đến vị trí ưng ý, người dùng sẽ bấm enter hoặc kích chuột

 

02. Lệnh Move, Copy

- Gọi tên lệnh (thực hiện lệnh Move, nếu kích Ctrl sẽ thành lệnh Copy; Ctrl lần nữa thành lệnh Move)

- Chọn Basepoint

- Chọn điểm tiếp theo (second point)

Đối với lệnh copy

- Nếu bấm “*integer” hoặc “integer*” thì copy mutiple với khoảng cách từ basepoint đến second point

- Nếu nhập “/integer” hoặc “integer/” thì chia khoảng cách từ basepoint đến second point theo giá trị integer.

- Escape để thoát lệnh ở bất cứ bước nào.

 

03. Lệnh Rotate; Array Polar

- Tương tự như vậy cho lệnh Rotate và Array Polar (điều khiển thay đổi bằng phím Ctrl)

- Nhập “*integer”; “/integer” để thực hiện array

- Escape để thoát lệnh ở bất cứ bước nào.

 

Xin mời các cao thủ lập trình hãy xem video để hiểu hơn về ý tưởng tôi muốn trình bày

Thay mặt cho các Fan, chúc sức khỏe và hy vọng “sản phẩm” sớm ra lò

 

http://www.cadviet.com/upfiles/2/su.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
bạn có thể sử dụng các hàm:

 

(acet-ss-drag-move ss pt [prompt] [highlight [cursor]])

 

(acet-ss-drag-rotate ss pt [prompt] [highlight [cursor]])

 

(acet-ss-drag-scale ss pt [prompt] [highlight [cursor]])

 

 

bạn vào đây xem thêm

http://www.cadviet.com/forum/index.php?showtopic=13492

Chào bạn 'master_worse'

Với hàm (acet-ss-drag-move ss pt [prompt] [highlight [cursor]]) thì Tue_NV đã được bác Thiep giới thiệu qua đường Link mà bạn đã post. Cám ơn bác Thiep

 

lệnh Mutiple -> Move lại có thể hiện được cả hình ảnh động và di chuyển đối tượng theo hướng của dây tóc chuột với khoảng cách do user nhập vào.

 

hàm (acet-ss-drag-move ss pt [prompt] [highlight [cursor]]) thì không làm được điề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
Chào bạn 'master_worse'

Với hàm (acet-ss-drag-move ss pt [prompt] [highlight [cursor]]) thì Tue_NV đã được bác Thiep giới thiệu qua đường Link mà bạn đã post. Cám ơn bác Thiep

 

lệnh Mutiple -> Move lại có thể hiện được cả hình ảnh động và di chuyển đối tượng theo hướng của dây tóc chuột với khoảng cách do user nhập vào.

 

hàm (acet-ss-drag-move ss pt [prompt] [highlight [cursor]]) thì không làm được điều đó

Hạn chế của lệnh MULTIPLE : You cannot use MULTIPLE as an argument to the AutoLISP® command function.

 

- yêu cầu "move đối tượng theo phương khác cũng với cùng khoảng cách"

Trong yêu cầu này khi sử dụng hàm ACET-SS-DRAG-MOVE vấn đề phát sinh là chặn di chuyển đối tượng theo hướng của dây tóc chuột trong phạm vi bán kính = khoảng cách

(defun c:mmo(/ ang dis pt ss)
 (defun *error* (msg)
   (if ss (ssredraw ss 4))
   (if (not(wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
     (princ (strcat "\n** Error: " msg " **")))
   (princ))
 (defun ssredraw (ss mode / i ename)
   (setq i -1)
   (while (setq ename (ssname ss (setq i (1+ i))))
     (redraw (ssname ss i) mode)
   )
 )

 (or *dis* (setq *dis* 200))
 (or *ang* (setq *ang* 0))
 (initget 2)
 (setq dis (getdist (strcat "\nNhap khoang cach <" (rtos *dis*) ">: ")))
 (if dis (setq *dis* dis))  

 (princ "\nChon doi tuong muon di chuyen :")
 (while (setq ss (ssget))
   (ssredraw ss 3)
   (setq p1 (getpoint "\nDiem goc : "))
   (setq p2 (ACET-SS-DRAG-MOVE ss p1 "\nDiem ke :"))
   (setq goc (angle p1 p2)
  p2 (polar p1 goc *dis*) )
   (ssredraw ss 4)
   (command "move" ss "" p1 p2)
   (princ "\nChon doi tuong muon di chuyen :")
   )
 (princ)
 )

 

Một cách xử lý khác (lại bị bắt điểm)

(defun c:mmo(/ ang dis pt ss)
 (defun *error* (msg)
   (if ss (ssredraw ss 4))
   (if (not(wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
     (princ (strcat "\n** Error: " msg " **")))
   (princ))
 (defun ssredraw (ss mode / i ename)
   (setq i -1)
   (while (setq ename (ssname ss (setq i (1+ i))))
     (redraw (ssname ss i) mode)
   )
 )

 (or *dis* (setq *dis* 1000))
 (or *ang* (setq *ang* 0))
 (initget 2)
 (setq dis (getdist (strcat "\nNhap khoang cach <" (rtos *dis*) ">: ")))
 (if dis (setq *dis* dis))  

 (princ "\nChon doi tuong muon di chuyen :")
 (while (setq ss (ssget))
   (ssredraw ss 3)
   (setq p1 (getpoint "\nDiem goc : ")
  rec (boundarySS ss)
  ll (car rec)
  ur (cadr rec)
  a (- (car ur)(car ll))
  b (- (cadr ur)(cadr ll)))
   ;(grdrawRec ll a b 8)
   (princ "\nDiem ke :")
   (while (and (setq input (grread t 4 4)) (= (car input) 5))
     (setq p2 (cadr input)
    goc (angle p1 p2)
    pt (polar ll goc *dis*) )
     (grdrawRec pt a b 3)
     )
   (redraw)
   (ssredraw ss 4)
   (command "move" ss "" ll pt)
   (princ "\nChon doi tuong muon di chuyen :")
   )
 (princ)
 )

(defun boundarySS (ss / all_max all_min ll maxpt minpt ur)
 (foreach e (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
   (vla-GetBoundingBox e 'minpt 'maxpt)
   (setq all_min (cons (vlax-safearray->list minpt) all_min)
  all_max (cons (vlax-safearray->list maxpt) all_max)  )
   ) ;_ end_foreach
 (setq ll (list (car (vl-sort (mapcar 'car all_min) '<))
	    (car (vl-sort (mapcar 'cadr all_min) '<))
	    ) ;_ end_list
ur (list (last (vl-sort (mapcar 'car all_max) '<))
	    (last (vl-sort (mapcar 'cadr all_max) '<))
	    ) ;_ end_list
) ;_ end_setq
 (list ll  ur )
 )

(defun grdrawRec (p1 a b col / p2 p3 p4)
 (redraw)
 (setq p2 (polar p1 0 a)
p3 (polar p2 (/ pi 2) b )
p4 (polar p1 (/ pi 2) b ))
 (grdraw p1 p2 col 1 )
 (grdraw p2 p3 col 1 )
 (grdraw p1 p4 col 1 )
 (grdraw p4 p3 col 1 )  
 )

  • 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ổ sung phần Highlight đối tuợng đuợc chọn và dùng getdist để nhập kh/cách.

Thanks to duy782006.

 

(defun c:mmo(/ ang dis pt ss)
 (defun *error* (msg)
   (if ss (ssredraw ss 4))
   (if (not(wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
     (princ (strcat "\n** Error: " msg " **")))
   (princ))
 (defun ssredraw (ss mode / i ename)
   (setq i -1)
   (while (setq ename (ssname ss (setq i (1+ i))))
     (redraw (ssname ss i) mode)
   )
 )

 (or *dis* (setq *dis* 200))
 (or *ang* (setq *ang* 0))

 (princ "\nChon doi tuong muon di chuyen :")
 (while (setq ss (ssget))
   (ssredraw ss 3)
   (setq ang (getangle (strcat "\nNhap goc muon di chuyen <" (angtos *ang*) ">: ")))
   (if ang (setq *ang* ang))

   (initget 2)
   (setq dis (getdist (strcat "\nNhap khoang cach <" (rtos *dis*) ">: ")))
   (if dis (setq *dis* dis))

   (ssredraw ss 4)
   (command "move" ss "" (setq pt (getvar "lastpoint")) (polar pt *ang* *dis*))
   (princ "\nChon doi tuong muon di chuyen :")
   )
 (princ)
 )

 

Thanks bác Gia Bach rất là nhiều!!!!

Cái lisp này rất là đúngvơui ý của em.

Lisp này có thể bỏ không cần câu lệnh nhập góc cần di chuyển ko vậy bác.

Nhân tiện bác có thể viết thêm lisp như trên nhưng với lệnh copy ko ạ?

Cũng như lệnh offset đó. Không cần phải nhập lại khoảng cách.

Cảm ơn bác lần nữa. Chúc bác sức khỏe!!!

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
Lisp này có thể bỏ không cần câu lệnh nhập góc cần di chuyển ko vậy bác.

-Lưu ý với bạn là nhập góc này có thể bằng clik chuột nhé.

-Nếu không nhập góc thì nó di chuyển theo phương nào 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
Bây giờ có mấy yêu cầu cho các cao thủ “Ô tô Líp” của Diễn đàn Cadviet đây:

Ý tưởng này học tập từ chương trình SketchUp (SU)

Nói qua một chút: SketchUp là một chương trình của hãng Google; thoạt nhìn người dùng sẽ thấy nó như thứ đồ chơi (giao diện đơn giản như Photo Paint vậy)

 

Với cá nhân tôi, sau khi dùng SU một thời gian thấy rất cảm tình với chương trình này vì “tính người” của nó.

Trở lại nhìn Autodesk thấy rắc rối và mang nặng tính kỹ thuật

Do vậy, để góp phần làm Autocad “lãng mạn” hơn, tôi nảy sinh ý định nhờ các cao thủ Cadviet hãy góp phần hoàn thiện nó. Ban đầu hãy thử hoàn thiện các lệnh 2D sau”

 

01. Lệnh Divide:

- Chọn đối tượng cần Divide (Line; Arc; Polyline,..)

- Đưa chuột dọc theo đối tượng thì trên màn hình sẽ xuất hiện 2 thông tin tương ứng (số điểm chia và giá trị khoảng cách)

- Khi đến vị trí ưng ý, người dùng sẽ bấm enter hoặc kích chuột

 

02. Lệnh Move, Copy

- Gọi tên lệnh (thực hiện lệnh Move, nếu kích Ctrl sẽ thành lệnh Copy; Ctrl lần nữa thành lệnh Move)

- Chọn Basepoint

- Chọn điểm tiếp theo (second point)

Đối với lệnh copy

- Nếu bấm “*integer” hoặc “integer*” thì copy mutiple với khoảng cách từ basepoint đến second point

- Nếu nhập “/integer” hoặc “integer/” thì chia khoảng cách từ basepoint đến second point theo giá trị integer.

- Escape để thoát lệnh ở bất cứ bước nào.

 

03. Lệnh Rotate; Array Polar

- Tương tự như vậy cho lệnh Rotate và Array Polar (điều khiển thay đổi bằng phím Ctrl)

- Nhập “*integer”; “/integer” để thực hiện array

- Escape để thoát lệnh ở bất cứ bước nào.

 

Xin mời các cao thủ lập trình hãy xem video để hiểu hơn về ý tưởng tôi muốn trình bày

Thay mặt cho các Fan, chúc sức khỏe và hy vọng “sản phẩm” sớm ra lò

 

http://www.cadviet.com/upfiles/2/su.rar

 

Trong khi chờ đợi các cao thủ nghiên cứu dự án “Đơn giản hoá các lệnh 2D của Autocad theo tinh thần SketchUp”.

Tôi có thêm một yêu cầu nhỏ mong được sự giúp đỡ của Cộng đồng

 

Tiếp theo các lệnh về Dim là các Lênh về Text. Nhằm quản lý Layer thống nhất trong bản vẽ. Tôi muốn cải biên các lệnh về Text cho Autocad như Lisp đính kèm. (Đã Test thử nhưng nó vẫn không chạy ổn. Xin mời các cao thủ hãy kiểm tra và hiểu chỉnh giúp tôi.

Xin cảm ơn!!!

 

01. Lệnh Dtext

Bổ sung thêm trường hợp bản vẽ hiện hành không có Layer KT-Text thì tạo mới cho nó

 

02. Lệnh Mtext

Sửa theo cú pháp của gia_bach thì nó đơ màn hình

 

03. Copy Dtext thành nhiều hàng

Bổ sung trường hợp nếu Text được chọn không ở lớp KT-Text thì chuyển nó về đúng Layer và thực hiện lệnh copy

http://www.cadviet.com/upfiles/2/02text.lsp

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
Trong khi chờ đợi các cao thủ nghiên cứu dự án “Đơn giản hoá các lệnh 2D của Autocad theo tinh thần SketchUp”.

Tôi có thêm một yêu cầu nhỏ mong được sự giúp đỡ của Cộng đồng

 

Tiếp theo các lệnh về Dim là các Lênh về Text. Nhằm quản lý Layer thống nhất trong bản vẽ. Tôi muốn cải biên các lệnh về Text cho Autocad như Lisp đính kèm. (Đã Test thử nhưng nó vẫn không chạy ổn. Xin mời các cao thủ hãy kiểm tra và hiểu chỉnh giúp tôi.

Xin cảm ơn!!!

 

01. Lệnh Dtext

Bổ sung thêm trường hợp bản vẽ hiện hành không có Layer KT-Text thì tạo mới cho nó

 

02. Lệnh Mtext

Sửa theo cú pháp của gia_bach thì nó đơ màn hình

 

03. Copy Dtext thành nhiều hàng

Bổ sung trường hợp nếu Text được chọn không ở lớp KT-Text thì chuyển nó về đúng Layer và thực hiện lệnh copy

http://www.cadviet.com/upfiles/2/02text.lsp

Mình đề xuất hướng giải quyết 1 cách gọn nhẹ như này:

Viết 1 lisp khi gỏ lệnh xong thì làm các việc sau:

-Chuyển tất cả text về layer "la-text" color "bylayer"

-Chuyển tất cả mtext về layer "la-mtext" color "bylayer"

-Chuyển tất cả dim về layer "la-dim" color "bylayer"

-Chuyển tất cả hatch về layer "la-hatch" color "bylayer"

*Tất cả các layer này nếu chưa có sẽ tạo ra.

 

Như vậy trước khi xuất bản vẽ bạn gỏ lệnh 1 phát và uống trà.

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 đề xuất hướng giải quyết 1 cách gọn nhẹ như này:

Viết 1 lisp khi gỏ lệnh xong thì làm các việc sau:

-Chuyển tất cả text về layer "la-text" color "bylayer"

-Chuyển tất cả mtext về layer "la-mtext" color "bylayer"

-Chuyển tất cả dim về layer "la-dim" color "bylayer"

-Chuyển tất cả hatch về layer "la-hatch" color "bylayer"

*Tất cả các layer này nếu chưa có sẽ tạo ra.

 

Như vậy trước khi xuất bản vẽ bạn gỏ lệnh 1 phát và uống trà.

Một ý tưởng hay để hiệu chỉnh bản vẽ nhưng việc này không đồng nghĩa với lời đề nghị

Có lẽ nên viết cả hai để can thiệp đối tượng ngay từ khi khởi tạo hoặc giúp sắp xếp lại đối tượng đã tạo rồi một cách có hệ thống

“Phòng bệnh và chữa bệnh” cái nào cũng cần thiế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
Một ý tưởng hay để hiệu chỉnh bản vẽ nhưng việc này không đồng nghĩa với lời đề nghị

Có lẽ nên viết cả hai để can thiệp đối tượng ngay từ khi khởi tạo hoặc giúp sắp xếp lại đối tượng đã tạo rồi một cách có hệ thống

“Phòng bệnh và chữa bệnh” cái nào cũng cần thiết cả

"Bất kể mèo trắng hay mèo đen, bắt được chuột chính là mèo tốt" Kết quả là bản vẽ đâu ra đó thì là ok.

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 lisp tạo đường gạch dưới text, khi pick vào text thì text sẽ có đường gạch dưới text, nhưng phải pick từng text một, trong bản vẽ của mình có tới hàng ngàn text, không lẽ ngồi pick hàng ngàn cái :( Nhờ các bạn viết cho cái lisp chỉ cần kéo chuột một phát là OK. Mong các bạn giúp mình , cám ơn nhiều lắ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
Mình có một lisp tạo đường gạch dưới text, khi pick vào text thì text sẽ có đường gạch dưới text, nhưng phải pick từng text một, trong bản vẽ của mình có tới hàng ngàn text, không lẽ ngồi pick hàng ngàn cái :( Nhờ các bạn viết cho cái lisp chỉ cần kéo chuột một phát là OK. Mong các bạn giúp mình , cám ơn nhiều lắm

Cái gạch dưới này là đối tượng line hay là %%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
Cái gạch dưới này là đối tượng line hay là %%U?

 

Bổ sung luôn cho nó đầy đủ:

- Command: Edit Text

- Chọn đối tượng cần hiệu chỉnh

- Trường hợp cần hiệu chỉnh (Underline/UPper Case/Lower Case)?

- Cho kết quả hàng loạ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
Mình có một lisp tạo đường gạch dưới text, khi pick vào text thì text sẽ có đường gạch dưới text, nhưng phải pick từng text một, trong bản vẽ của mình có tới hàng ngàn text, không lẽ ngồi pick hàng ngàn cái :( Nhờ các bạn viết cho cái lisp chỉ cần kéo chuột một phát là OK. Mong các bạn giúp mình , cám ơn nhiều lắm

Bạn có thể đọc bài viết số 48 của Tue_NV> Lisp tgtext.lsp

Thêm chuỗi %%u vào kí tự đầu

http://www.cadviet.com/forum/index.php?sho...amp;#entry77913

  • 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
Bổ sung luôn cho nó đầy đủ:

- Command: Edit Text

- Chọn đối tượng cần hiệu chỉnh

- Trường hợp cần hiệu chỉnh (Underline/UPper Case/Lower Case)?

- Cho kết quả hàng loạt

Bác nói tiếng Việt đ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
Bác nói tiếng Việt đi! :(

Underline: Gạch chân cho Text

Upper Case: Biến Text thành chữ Hoa

Lower Case: Biến Text thành chữ thường

(Còn một trường hợp nữa là Text chỉ viết hoa đầu 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

Mình có bản vẽ gồm các block thuộc tính như hình

 

lt_coc.png

 

Đây là các block tên cọc trắc ngang, khi chỉnh tuyến đôi lúc mình phải dùng tay điều chỉnh lại các lý trình cọc vì vậy mình muốn nhờ các bạn trên diễn đàn giúp mình 1 lisp lọc giá trị lý trình ( bỏ các giá trị trước dấu "+" lấy các giá trị sau ) trong Tag : LT_COC , ví dụ trong bản vẽ là bỏ giá trị "92+" lấy giá trị còn lại rồi công hay trừ cho 1 số bất kỳ được không .

Đây là file bản vẽ của mình

http://www.cadviet.com/upfiles/2/tencoc.zip

Cảm ơn 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
Underline: Gạch chân cho Text

Upper Case: Biến Text thành chữ Hoa

Lower Case: Biến Text thành chữ thường

(Còn một trường hợp nữa là Text chỉ viết hoa đầu câu)

Cad đã hổ trợ cái này rồi. lệnh TCASE. Chỉ có gạch chân là chưa có thô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
Cad đã hổ trợ cái này rồi. lệnh TCASE. Chỉ có gạch chân là chưa có thôi!

 

Uh, nhỉ!

Lâu quá không dùng Express nên quên mất

Cảm ơn đã nhắc 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 có bản vẽ gồm các block thuộc tính như hình

 

lt_coc.png

 

Đây là các block tên cọc trắc ngang, khi chỉnh tuyến đôi lúc mình phải dùng tay điều chỉnh lại các lý trình cọc vì vậy mình muốn nhờ các bạn trên diễn đàn giúp mình 1 lisp lọc giá trị lý trình ( bỏ các giá trị trước dấu "+" lấy các giá trị sau ) trong Tag : LT_COC , ví dụ trong bản vẽ là bỏ giá trị "92+" lấy giá trị còn lại rồi công hay trừ cho 1 số bất kỳ được không .

Đây là file bản vẽ của mình

http://www.cadviet.com/upfiles/2/tencoc.zip

Cảm ơn nhiều !

 

Cái này bạn có thể dùng lệnh CS của nova để set lại lý trình.

Nếu bạn muốn xử lý bằng Cad bạn có thể dùng lệnh FIND(tìm và replace)

Như file của bạn thì hãy find với find text92+ và replace là bất cứ cái jì bạn muốn thay thế.

:(

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ái này bạn có thể dùng lệnh CS của nova để set lại lý trình.

Nếu bạn muốn xử lý bằng Cad bạn có thể dùng lệnh FIND(tìm và replace)

Như file của bạn thì hãy find với find text92+ và replace là bất cứ cái jì bạn muốn thay thế.

:(

Cảm ơn bạn , ý mình muốn hỏi là sau khi lọc giá trị lý trình ra rồi cộng hoặc trừ cho 1 số bất kỳ , ví dụ mình muốn tăng tất cả các lý trình cọc lên 20m chẳng hạn , mình không rành về Nova bạn có thể giúp mình sử lý bằng Cad được 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
Cái gạch dưới này là đối tượng line hay là %%U?

Mình muốn nó là LINE. Cám ơn Tue_NV, mình đã có lisp thêm tiền tố, hậu tố cho text rồ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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×