Chuyển đến nội dung
Diễn đàn CADViet
Trang72

[yeuCau] lisp di chuyển chuột đến chọn (pick) nét vẽ thì nét vẽ nhấp nháy

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

Cad2007 thì LAYISO như thế này đây. Chẳng thấy Lock and Face gì cả.

Command: LAYISO

 

Current setting: Viewports=Vpfreeze

 

Select objects on the layer(s) to be isolated or [settings]: s

 

In paper space viewport use [Vpfreeze/Off] <Vpfreeze>: *Cancel*

 

Select objects on the layer(s) to be isolated or [settings]: *Cancel*

Command: LAYISO
 
Current setting: Viewports=Vpfreeze
 
Select objects on the layer(s) to be isolated or [settings]: s
 
In paper space viewport use [Vpfreeze/Off] <Vpfreeze>: *Cancel*
 
Select objects on the layer(s) to be isolated or [settings]: *Cancel*

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
 

 

 

Cad2007 thì LAYISO như thế này đây. Chẳng thấy Lock and Face gì cả.

Command: LAYISO

 

Current setting: Viewports=Vpfreeze

 

Select objects on the layer(s) to be isolated or [settings]: s

 

In paper space viewport use [Vpfreeze/Off] <Vpfreeze>: *Cancel*

 

Select objects on the layer(s) to be isolated or [settings]: *Cancel*

Command: LAYISO
 
Current setting: Viewports=Vpfreeze
 
Select objects on the layer(s) to be isolated or [settings]: s
 
In paper space viewport use [Vpfreeze/Off] <Vpfreeze>: *Cancel*
 
Select objects on the layer(s) to be isolated or [settings]: *Cancel*

 

Chắc CAD2007 không có Lock and fade bác ạ.

Chắc là bác phải suy nghĩ nhiều rồi  :lol:

 

@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chăng?

 
Doan Van Ha, on 17 May 2014 - 08:02, said:
Gởi chung mọi người:
Ban đầu thấy y/c này cứ nghĩ chủ topic chỉ muốn lòe thiên hạ, nhưng bây giờ thấy nó thực sự hữu dụng. Đó là: khi cần trình chiếu trên cad thì việc làm sáng lên, hoặc tô đậm, hoặc cho nhấp nháy đối tượng được chọn là rất cần thiết. Highlight thì nét mãnh nhìn không rõ. Di chuột đến từng đối tượng thì nét đậm và nhìn rõ nhưng mỗi lần chỉ nhìn được 1 đối tượng (đơn hoặc phức). Ước gì khi chọn đối tượng thì nó cũng làm đậm như khi di chuột thì hay biết mấy.
@Hoằn: giải pháp của em chỉ phù hợp nếu các nhóm đối tượng muốn tô đậm đã được xác định từ trước, đồng thời mỗi lần di chuột chỉ làm đậm được 1 nhóm. Trong trường hợp tổng quát, khi trình chiếu trên file cad thì các đối tượng muốn tô đậm là chưa được xác định trước mà thường phụ thuộc vào hội nghị >> ít khả thi.
@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chăng?
 
 

Gởi chung mọi người:

Ban đầu thấy y/c này cứ nghĩ chủ topic chỉ muốn lòe thiên hạ, nhưng bây giờ thấy nó thực sự hữu dụng. Đó là: khi cần trình chiếu trên cad thì việc làm sáng lên, hoặc tô đậm, hoặc cho nhấp nháy đối tượng được chọn là rất cần thiết. Highlight thì nét mãnh nhìn không rõ. Di chuột đến từng đối tượng thì nét đậm và nhìn rõ nhưng mỗi lần chỉ nhìn được 1 đối tượng (đơn hoặc phức). Ước gì khi chọn đối tượng thì nó cũng làm đậm như khi di chuột thì hay biết mấy.

@Hoằn: giải pháp của em chỉ phù hợp nếu các nhóm đối tượng muốn tô đậm đã được xác định từ trước, đồng thời mỗi lần di chuột chỉ làm đậm được 1 nhóm. Trong trường hợp tổng quát, khi trình chiếu trên file cad thì các đối tượng muốn tô đậm là chưa được xác định trước mà thường phụ thuộc vào hội nghị >> ít khả thi.

@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chăng?

 

Gởi chung mọi người:

Ban đầu thấy y/c này cứ nghĩ chủ topic chỉ muốn lòe thiên hạ, nhưng bây giờ thấy nó thực sự hữu dụng. Đó là: khi cần trình chiếu trên cad thì việc làm sáng lên, hoặc tô đậm, hoặc cho nhấp nháy đối tượng được chọn là rất cần thiết. Highlight thì nét mãnh nhìn không rõ. Di chuột đến từng đối tượng thì nét đậm và nhìn rõ nhưng mỗi lần chỉ nhìn được 1 đối tượng (đơn hoặc phức). Ước gì khi chọn đối tượng thì nó cũng làm đậm như khi di chuột thì hay biết mấy.

@Hoằn: giải pháp của em chỉ phù hợp nếu các nhóm đối tượng muốn tô đậm đã được xác định từ trước, đồng thời mỗi lần di chuột chỉ làm đậm được 1 nhóm. Trong trường hợp tổng quát, khi trình chiếu trên file cad thì các đối tượng muốn tô đậm là chưa được xác định trước mà thường phụ thuộc vào hội nghị >> ít khả thi.

@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chăng?

Gởi chung mọi người:

Ban đầu thấy y/c này cứ nghĩ chủ topic chỉ muốn lòe thiên hạ, nhưng bây giờ thấy nó thực sự hữu dụng. Đó là: khi cần trình chiếu trên cad thì việc làm sáng lên, hoặc tô đậm, hoặc cho nhấp nháy đối tượng được chọn là rất cần thiết. Highlight thì nét mãnh nhìn không rõ. Di chuột đến từng đối tượng thì nét đậm và nhìn rõ nhưng mỗi lần chỉ nhìn được 1 đối tượng (đơn hoặc phức). Ước gì khi chọn đối tượng thì nó cũng làm đậm như khi di chuột thì hay biết mấy.

@Hoằn: giải pháp của em chỉ phù hợp nếu các nhóm đối tượng muốn tô đậm đã được xác định từ trước, đồng thời mỗi lần di chuột chỉ làm đậm được 1 nhóm. Trong trường hợp tổng quát, khi trình chiếu trên file cad thì các đối tượng muốn tô đậm là chưa được xác định trước mà thường phụ thuộc vào hội nghị >> ít khả thi.

@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chăng?

 

Gởi chung mọi người:

Ban đầu thấy y/c này cứ nghĩ chủ topic chỉ muốn lòe thiên hạ, nhưng bây giờ thấy nó thực sự hữu dụng. Đó là: khi cần trình chiếu trên cad thì việc làm sáng lên, hoặc tô đậm, hoặc cho nhấp nháy đối tượng được chọn là rất cần thiết. Highlight thì nét mãnh nhìn không rõ. Di chuột đến từng đối tượng thì nét đậm và nhìn rõ nhưng mỗi lần chỉ nhìn được 1 đối tượng (đơn hoặc phức). Ước gì khi chọn đối tượng thì nó cũng làm đậm như khi di chuột thì hay biết mấy.

@Hoằn: giải pháp của em chỉ phù hợp nếu các nhóm đối tượng muốn tô đậm đã được xác định từ trước, đồng thời mỗi lần di chuột chỉ làm đậm được 1 nhóm. Trong trường hợp tổng quát, khi trình chiếu trên file cad thì các đối tượng muốn tô đậm là chưa được xác định trước mà thường phụ thuộc vào hội nghị >> ít khả thi.

@Ketxu: để suy nghĩ xem liệu có giải thuật gì biến cái không có của cad thành cái có thể của lisp chă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

Nếu chủ topic chấp nhận kiểu "làm mờ các đối tượng không được chọn" như trong lisp thì sử dụng. Còn bằng không thì hãy đợi đấy, lúc nào rảnh mần tiếp.


;Doan  Van Ha - CadViet.com - ngay 13/5/2014. Edit: 17/5/2014.
;Chuc nang: To dam va Highlight cac doi tuong duoc chon, dong thoi lam nhap nhay chung khi di chuot.
(vl-load-com)
(defun #SS:Subtract (ss1 ss2 / i)
 (if (and ss2 (> (sslength ss2) 0))
  (repeat (setq i (sslength ss2))
   (ssdel (ssname ss2 (setq i (1- i))) ss1)))
 ss1)
(defun VPCords()
 ((lambda (offset) ((lambda (viewctr) (list (mapcar '- viewctr offset) (mapcar '+ viewctr offset))) (getvar "viewctr")))
  ((lambda (halfHeight aspectRatio) (list (* halfHeight aspectRatio) halfHeight))
   (* 0.5 (getvar "viewsize"))
   (apply '/ (getvar "screensize")))))
(defun Draw_Grvecs(pt rad col / p0 p1 p2 p3 p4)
 (setq p0 (polar pt (/ pi -2) rad) p1 (polar p0 0 rad) p2 (polar p1 (/ pi 2) (* 2 rad)) p3 (polar p2 (/ pi -1) (* 2 rad)) p4 (polar p3 (/ pi -2) (* 2 rad)))
 (grvecs (list col p1 p2 p2 p3 p3 p4 p4 p1)))
(defun Second( / lst)
 (if (and (vl-position "acetutil.arx" (arx)) (not (vl-catch-all-error-p (vl-catch-all-apply (function (lambda nil (acet-sys-shift-down)))))))
  (progn
   (load "julian.lsp")
   (setq lst (jtoc (getvar "date")))
   (- (nth 5 lst) (fix (nth 5 lst))))
  (progn (alert "Chuong trinh yeu cau Ban phai cai dat Tool Express.") (exit))))
(defun *error* (msg)
 (redraw)
 (if (and ss (> (sslength ss) 0)) (HighLightObjects (#SS->Objlist ss) nil))
 (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
 (if (and ss3 (> (sslength ss3) 0)) (HighLightObjects (#SS->Objlist ss3) nil))
 (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **")))
 (princ))
(defun HighLightObjects (lst h)
 ((lambda (x) (mapcar '(lambda (obj) (vla-highlight obj x)) lst))
  (if h :vlax-true :vlax-false)))
(defun #SS->Objlist (ss / i lst)
 (repeat (setq i (sslength ss))
  (setq lst (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) lst))))
(defun #SS->List (ss / i lst)
 (repeat (setq i (sslength ss)) (setq lst (cons (ssname ss (setq i (1- i))) lst))))
(defun COPYG(ss / lst ss2 obj1)
 (setq lst (#SS->Objlist ss) ss2 (ssadd))
 (foreach obj lst
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list 0 (/ rad 5)))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list 0 (/ rad -5)))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list (/ rad 5) 0))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list (/ rad -5) 0))) (setq ss2 (ssadd (entlast) ss2)))
 ss2)
(defun C:HA( / rad gr code ss ss1 ss2 ss3 pt px p0 p1 p2 p3)
 (setq rad (/ (* (getvar "Viewsize") (getvar "Pickbox")) (cadr (getvar "Screensize"))) ss (ssadd))
 (princ "\nSelect objects: ")
 (while (and (setq gr (grread 't 15 1) code (car gr) pt (cadr gr)) (/= code 25) (not (equal gr '(2 13))))
  (redraw)
  (Draw_Grvecs pt rad 3)
  (cond
   ((= code 3)
    (setq p0 (polar pt (/ pi -2) rad) p1 (polar p0 0 rad) p2 (polar p1 (/ pi 2) (* 2 rad)) p3 (polar p2 (/ pi -1) (* 2 rad)))
    (setq ss1 (ssget "c" p1 p3))
(if ss1
(foreach ent (#SS->List ss1) (setq ss (ssadd ent ss)))
(progn
 (redraw)
      (setq px (getcorner pt "\nSpecify opposite corner: "))
 (if px (princ "\nSelect objects: "))
 (if (> (car pt) (car px))
       (setq ss1 (ssget "c" pt px))
       (setq ss1 (ssget "w" pt px)))
 (if ss1
  (progn
     (foreach ent (#SS->List ss1) (setq ss (ssadd ent ss)))
   (HighLightObjects (#SS->Objlist ss) T))))))
   ((and (= code 5) ss (> (sslength ss) 0))
    (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
    (setq ss3 (ssget "c" (car (VPCords)) (cadr (VPCords))))
(HighLightObjects (#SS->Objlist ss3) T)
    (setq ss2 (copyg ss))
    (HighLightObjects (#SS->Objlist ss) (if (or (<= 0 (Second) 0.25) (<= 0.5 (Second) 0.75)) T nil)))))
 (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
 (if (and ss3 (> (sslength ss3) 0)) (HighLightObjects (#SS->Objlist ss3) nil))
 (redraw)
 (princ))
(princ "\nLenh su dung: HA")
(princ)
 

  • 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 bác DoanVanHa!

Tue_NV có một số góp ý

1./ Test thử lisp bài 32, bác viết thì thấy quét 1 đối tượng thì toán bộ các đối tượng khác đều highlight?

2./ Có lẽ bác phải đưa biến sử lý viewsize, screensize và pickbox vô trong vòng lặp while để xử lý vì bản thân của việc làm đậm là copy đối tượng gốc ra (sít sít nhau thành đậm) nên lúc đầu chọn có thể zoom nhỏ, sau khi chọn đối tượng thì zoom to lên thì thấy các đối tượng copy ra rời rạc nhau liền, không thấy đậm lên mà thấy nhiều đối tượng .......

3./ Lisp của bác suy cho cùng cũng chỉ định trước đối tượng mà thôi. Tỉ như đang ngẫu nhiên chọn đối tượng A, B, C hiện sáng và nhấp nháy, giờ ngẫu nhiên muốn B và C hiện sáng và nhấp nháy thôi (bỏ đối tượng A), phải làm như thế nào? Phải huỷ lệnh và quay về chạy lisp và chọn lại từ đầu sao bác? 

 

4./ Mà nếu để ngẫu nhiên làm sáng rực đối tượng được chọn, làm mờ đối tượng được chọn, và làm đậm đối tượng được chọn thì sao không sử dụng lệnh của CAD?

  • 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ếu chủ topic chấp nhận kiểu "làm mờ các đối tượng không được chọn" như trong lisp thì sử dụng. Còn bằng không thì hãy đợi đấy, lúc nào rảnh mần tiếp.

Cái này theo em thì nên để cho các đối tượng khác bình thường. Riêng đối tượng được chọn sẽ sáng lên và nháy liên tục mà ko cần phải rê chuột. Lisp hiện tại của anh Doan Van Ha thì hình như phải di chuyển chuột thì đối tượng được chọn mới nháy (có thể di chuyển chuột lung tung ko cần rê vào đối tượng cần chọn). Điều này lơi bất tiện vì khi rê chuột lung tung làm hội đồng cảm thấy rối khi thẩm định....

Không hiểu là trong cad có chức năng giống trong powerpoint ko ko biết. Nếu được mấy anh làm theo kiểu hiệu ứng nhấp nháy hay là một đối tượng đó ẩn rồi hiện với tốc độ nhanh thì gần như là nhấp nháy và cho màu sáng nổi bật hơn các đối tượng khác.

Em ko rành lắm nên chỉ nêu thôi có gì các bác thông cảm giúp. Xin cảm ơn các 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

Nếu chủ topic chấp nhận kiểu "làm mờ các đối tượng không được chọn" như trong lisp thì sử dụng. Còn bằng không thì hãy đợi đấy, lúc nào rảnh mần tiếp.


;Doan  Van Ha - CadViet.com - ngay 13/5/2014. Edit: 17/5/2014.
;Chuc nang: To dam va Highlight cac doi tuong duoc chon, dong thoi lam nhap nhay chung khi di chuot.
(vl-load-com)
(defun #SS:Subtract (ss1 ss2 / i)
 (if (and ss2 (> (sslength ss2) 0))
  (repeat (setq i (sslength ss2))
   (ssdel (ssname ss2 (setq i (1- i))) ss1)))
 ss1)
(defun VPCords()
 ((lambda (offset) ((lambda (viewctr) (list (mapcar '- viewctr offset) (mapcar '+ viewctr offset))) (getvar "viewctr")))
  ((lambda (halfHeight aspectRatio) (list (* halfHeight aspectRatio) halfHeight))
   (* 0.5 (getvar "viewsize"))
   (apply '/ (getvar "screensize")))))
(defun Draw_Grvecs(pt rad col / p0 p1 p2 p3 p4)
 (setq p0 (polar pt (/ pi -2) rad) p1 (polar p0 0 rad) p2 (polar p1 (/ pi 2) (* 2 rad)) p3 (polar p2 (/ pi -1) (* 2 rad)) p4 (polar p3 (/ pi -2) (* 2 rad)))
 (grvecs (list col p1 p2 p2 p3 p3 p4 p4 p1)))
(defun Second( / lst)
 (if (and (vl-position "acetutil.arx" (arx)) (not (vl-catch-all-error-p (vl-catch-all-apply (function (lambda nil (acet-sys-shift-down)))))))
  (progn
   (load "julian.lsp")
   (setq lst (jtoc (getvar "date")))
   (- (nth 5 lst) (fix (nth 5 lst))))
  (progn (alert "Chuong trinh yeu cau Ban phai cai dat Tool Express.") (exit))))
(defun *error* (msg)
 (redraw)
 (if (and ss (> (sslength ss) 0)) (HighLightObjects (#SS->Objlist ss) nil))
 (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
 (if (and ss3 (> (sslength ss3) 0)) (HighLightObjects (#SS->Objlist ss3) nil))
 (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **")))
 (princ))
(defun HighLightObjects (lst h)
 ((lambda (x) (mapcar '(lambda (obj) (vla-highlight obj x)) lst))
  (if h :vlax-true :vlax-false)))
(defun #SS->Objlist (ss / i lst)
 (repeat (setq i (sslength ss))
  (setq lst (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) lst))))
(defun #SS->List (ss / i lst)
 (repeat (setq i (sslength ss)) (setq lst (cons (ssname ss (setq i (1- i))) lst))))
(defun COPYG(ss / lst ss2 obj1)
 (setq lst (#SS->Objlist ss) ss2 (ssadd))
 (foreach obj lst
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list 0 (/ rad 5)))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list 0 (/ rad -5)))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list (/ rad 5) 0))) (setq ss2 (ssadd (entlast) ss2))
  (vla-copy obj) (setq obj1 (vlax-ename->vla-object (entlast)))
  (vla-move obj1 (vlax-3d-point '(0 0)) (vlax-3d-point (list (/ rad -5) 0))) (setq ss2 (ssadd (entlast) ss2)))
 ss2)
(defun C:HA( / rad gr code ss ss1 ss2 ss3 pt px p0 p1 p2 p3)
 (setq rad (/ (* (getvar "Viewsize") (getvar "Pickbox")) (cadr (getvar "Screensize"))) ss (ssadd))
 (princ "\nSelect objects: ")
 (while (and (setq gr (grread 't 15 1) code (car gr) pt (cadr gr)) (/= code 25) (not (equal gr '(2 13))))
  (redraw)
  (Draw_Grvecs pt rad 3)
  (cond
   ((= code 3)
    (setq p0 (polar pt (/ pi -2) rad) p1 (polar p0 0 rad) p2 (polar p1 (/ pi 2) (* 2 rad)) p3 (polar p2 (/ pi -1) (* 2 rad)))
    (setq ss1 (ssget "c" p1 p3))
(if ss1
(foreach ent (#SS->List ss1) (setq ss (ssadd ent ss)))
(progn
 (redraw)
      (setq px (getcorner pt "\nSpecify opposite corner: "))
 (if px (princ "\nSelect objects: "))
 (if (> (car pt) (car px))
       (setq ss1 (ssget "c" pt px))
       (setq ss1 (ssget "w" pt px)))
 (if ss1
  (progn
     (foreach ent (#SS->List ss1) (setq ss (ssadd ent ss)))
   (HighLightObjects (#SS->Objlist ss) T))))))
   ((and (= code 5) ss (> (sslength ss) 0))
    (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
    (setq ss3 (ssget "c" (car (VPCords)) (cadr (VPCords))))
(HighLightObjects (#SS->Objlist ss3) T)
    (setq ss2 (copyg ss))
    (HighLightObjects (#SS->Objlist ss) (if (or (<= 0 (Second) 0.25) (<= 0.5 (Second) 0.75)) T nil)))))
 (if (and ss2 (> (sslength ss2) 0)) (mapcar 'vla-Delete (#SS->Objlist ss2)))
 (if (and ss3 (> (sslength ss3) 0)) (HighLightObjects (#SS->Objlist ss3) nil))
 (redraw)
 (princ))
(princ "\nLenh su dung: HA")
(princ)
 

Lisp gây nguy hiểm cho ổ cứng !!!!!

Thật sự thì không cần hàm jtoc cũng tính được Second (còn ngắn hơn)

Thêm dòng sau vào hàm Second rồi test.

 

(defun Second( / lst)
  (print (setq *dem* (if (not *dem*) 1 (1+ *dem*))))
  ;.....
)
Kết quả: mỗi giây file "julian.lsp" load vài chục lần.

Số lần đọc liên tục ở 1 vị trí ổ cứng sẽ giảm tuổi thọ của nó, đặc biệt là ổ SSD.

  • 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ám ơn các góp ý!

@ndtnt: srr vì hàm lấy trong tài nguyên mà quên để ý là nó đặt trong while.

@Tue_NV: vì có góp ý số 4 nên các góp ý 1->3 cũng như các ý kiến khác sẽ chẳng còn ý nghĩa gì nữa khi mà Cad đã có 1 lệnh bí mật như thế. Tôi xài cad2007 và không thông thuộc hết lệnh cad nên không biết lệnh đó. Nhờ mọi người nêu ra để được biết thêm. Và vì đã có lệnh cad nên hiệu chỉnh lisp (nếu được) cũng trở thành vô ích mất rồi.

Chân thành mà nói thì đôi lúc lại ngớ ngẩn đi xây dựng 1 cái đã có, srr.

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 CAD có lệnh REFEDIT

 

- Có thể tạo nhanh Block không cần đặt tên 

- Gõ lệnh REFEDIT -> Pick Block vừa tạo đó -> ok -> Mặc định thì CAD làm mờ toàn bộ các đối tượng không được chọn (Trừ Block đó).

+ Muốn hiện sáng đối tượng chọn thì gõ lệnh REFSET -> A (add) (hoặc nhấn biểu tượng nút + trên thanh Refedit)  

+ Muốn làm mờ đối tượng chọn thì gõ lệnh REFSET -> R (Remove) (hoặc nhấn biểu tượng nút - trên thanh Refedit)  

- Kết thúc gõ lệnh  REFCLOSE -> Gõ D (Discard reference changes) không lưu lại những gì đã làm : thêm và bớt đối tượng trong Block. Hoặc nhấn biểu tượng chữ X trên thanh Refedit -> OK) 

Command: REFCLOSE

Enter option [save/Discard reference changes] <Save>: D

 

Kết quả là nó làm sáng đối tượng đã chọn, làm mờ đối tượng được chọn, chỉ chưa làm nhấp nháy đượ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

4./ Mà nếu để ngẫu nhiên làm sáng rực đối tượng được chọn, làm mờ đối tượng được chọn, và làm đậm đối tượng được chọn thì sao không sử dụng lệnh của CAD?

REFEDIT chỉ làm mờ hoặc không làm mờ đối tượng. Không thể làm sáng rực và làm đậm đượ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

Làm sáng rựclàm đậm đâu mà bác quảng cáo cho Autodesk lắm thế?

 

Làm đậm ở Lineweight bác ạ. Vô lệnh Refedit -> Chuyển tất cả các nét về 0.0 rồi chọn các nét làm sáng nét đậm từ 0.30 trở lên. Bật chế độ LWT để quan sát

Làm sáng rực có lẽ là Tue_NV nhầm. Làm mờ và sáng thì đúng hơ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

Trong CAD có lệnh REFEDIT

 

- Có thể tạo nhanh Block không cần đặt tên 

- Gõ lệnh REFEDIT -> Pick Block vừa tạo đó -> ok -> Mặc định thì CAD làm mờ toàn bộ các đối tượng không được chọn (Trừ Block đó).

+ Muốn hiện sáng đối tượng chọn thì gõ lệnh REFSET -> A (add) (hoặc nhấn biểu tượng nút + trên thanh Refedit)  

+ Muốn làm mờ đối tượng chọn thì gõ lệnh REFSET -> R (Remove) (hoặc nhấn biểu tượng nút - trên thanh Refedit)  

- Kết thúc gõ lệnh  REFCLOSE -> Gõ D (Discard reference changes) không lưu lại những gì đã làm : thêm và bớt đối tượng trong Block. Hoặc nhấn biểu tượng chữ X trên thanh Refedit -> OK) 

Command: REFCLOSE

Enter option [save/Discard reference changes] <Save>: D

 

Kết quả là nó làm sáng đối tượng đã chọn, làm mờ đối tượng được chọn, chỉ chưa làm nhấp nháy được thôi ^ _ ^

REFEDIT chỉ làm việc với 1 nhóm đối tượng (1 block), nhưng thông thường khi báo cáo thuyết minh thì cần chọn hơn 1 nhóm đối tượ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

Tuy còn vài điều chưa hoàn chỉnh nhưng lisp này cũng đáp ứng một số yêu cầu sau:

- Làm đậm các đối tượng được chọn và highligth chúng.

- Làm mờ các đối tượng không được chọn.

- Làm nhấp nháy các đối tượng được chọn khi di chuột.

- Có thể thơm/bớt(hủy) các đối tượng được chọn.

http://www.cadviet.com/upfiles/3/67029_post.zip

67029_post.gif

  • 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

Nhờ bác Doan Van Ha xem lại giúp với ạ. Em bị lỗi khi chọn đối tượng

 

 

Command: ap

APPLOAD Post.VLX successfully loaded.

Command:

Lệnh sử dụng: HA

Các chú ý:

Đối tượng chọn sẽ được tô đậm + highligth, đối tượng khác sẽ mờ.

Khi di mouse thì đối tượng được chọn sẽ nhấp nháy.

Để hủy đối tượng được chọn: pick chọn vào nó lần 2.

Để chọn lại đối tượng đã hủy: pick chọn vào nó lần 3...

Để thay đổi mức độ làm mờ: set system variable XFADECTL.

Command:

Command: ha

Select objects:

*Invalid selection*

Expects a single object.

*Invalid selection*

Expects a single object.

; error: An error has occurred inside the *error* functionFunction cancelled

Select reference: Object is not a valid reference

 

https://www.dropbox.com/s/qeopsf3eom9yxp3/1.JPG

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ể gởi bản vẽ ấy lên để check được không?

Khi vừa mở bản vẽ bất kỳ lên thì em có thể chọn bình thường được, nhưng chỉ thực hiện được 1 lần đầu còn những lần sau sẽ báo lỗi khi chọn bác ạ. (Kể cả đối với bản vẽ mới)

 

 

Command: ap

APPLOAD Post.VLX successfully loaded.

Command:

Lệnh sử dụng: HA

Các chú ý:

Đối tượng chọn sẽ được tô đậm + highligth, đối tượng khác sẽ mờ.

Khi di mouse thì đối tượng được chọn sẽ nhấp nháy.

Để hủy đối tượng được chọn: pick chọn vào nó lần 2.

Để chọn lại đối tượng đã hủy: pick chọn vào nó lần 3...

Để thay đổi mức độ làm mờ: set system variable XFADECTL.

Command:

Command: ha

Select objects: ** 1 selected object is already in the working set **

1 Added to working set

1 Added to working set

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

1 Added to working set

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

1 Added to working set

1 Added to working set

1 Added to working set

1 Added to working set

1 Added to working set

1 Added to working set

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

1 Added to working set

1 Added to working set

1 Added to working set

** Error: bad argument type: 2D/3D point: 0 **

Command:

HA

Select objects:

*Invalid selection*

Expects a single object.

*Invalid selection*

Expects a single object.

; error: An error has occurred inside the *error* functionFunction cancelled

Select reference: Object is not a valid reference

Select reference: Object is not a valid reference

Select reference: *Cancel*

Command:

Command:

HA

Select objects:

*Invalid selection*

Expects a single object.

*Invalid selection*

Expects a single object.

; error: An error has occurred inside the *error* functionFunction cancelled

Select reference:

Reference not found.

Select reference: Object is not a valid reference

Select reference:

Reference not found.

Select reference: Object is not a valid reference

Select reference:

Reference not found.

Select reference: Object is not a valid reference

Select reference:

Reference not found.

Select reference: *Cancel*

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

Tuy còn vài điều chưa hoàn chỉnh nhưng lisp này cũng đáp ứng một số yêu cầu sau:

- Làm đậm các đối tượng được chọn và highligth chúng.

- Làm mờ các đối tượng không được chọn.

- Làm nhấp nháy các đối tượng được chọn khi di chuột.

- Có thể thơm/bớt(hủy) các đối tượng được chọn.

http://www.cadviet.com/upfiles/3/67029_post.zip

67029_post.gif

Lisp hay quá ... Nhưngcho em hỏi sao khi chạy thì nét Lineweight nó lại không trả về ban đầu. (getvar "Lwdisplay") vẫn là On trong khi lúc  đầu (getvar "Lwdisplay") là off  :mellow: . Nếu có thể cho em xin Code để học hỏ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

Em chạy chọn đối tượng xong Enter thì bị lỗi thế này :

Command: ha

 

Select objects: ** 1 selected object is already in the working set **

1 Added to working set

** 1 selected object is already in the working set **

** 1 selected object is already in the working set **

1 Added to working set

 

** Error: bad argument type: 2D/3D point: 32 **

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ắc là bạn click chuột trái mà chưa chọn được đối tượng rồi enter, chứ nếu click chuột trúng đối tượng rồi enter thì không lỗ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ắc là bạn click chuột trái mà chưa chọn được đối tượng rồi enter, chứ nếu click chuột trúng đối tượng rồi enter thì không lỗi.

Chọn rồi anh ơi! Em thử từ Cad 2008 đến 2010 bị lổi y chang...

** Error: bad argument type: 2D/3D point: 32 **               và như thế thì nét Lineweight nó lại không trả về ban đầ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

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


×