Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

[Help] Lisp Trích Xuất Giá Trị Trong Dimension Ra Mtext


  • Please log in to reply
5 replies to this topic

#1 Funiki28

Funiki28

    biết pan

  • Members
  • Pip
  • 9 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 12 June 2017 - 10:38 AM

Chào các bác
em muốn trích xuất giá trị ghi trong dimension và kéo thẳng lên phía trên thành dạng mtext như file cad đính kèm.

https://drive.google...WkxNYjFTWXdIMnM

Nhờ các bác giúp vì hiện tại em đang làm rất thủ công là copy cái dimension ra và explore để lấy giá trị trong dim, mà công việc của em làm điều này rất nhiều lần, khiến em mất rất nhiều thời gian.
Lisp e muốn như này:
Gõ lệnh cxt
Pick chọn vào giá trị ghi trong dimension và kéo thẳng lên pick vào điểm bất kì muốn đặt giá trị mtext.
Mong các bác giúp đỡ.
Thanks !

  • -2

#2 quansla

quansla

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 668 Bài viết
Điểm đánh giá: 232 (khá)

Đã gửi 12 June 2017 - 11:04 AM

Chào các bác
em muốn trích xuất giá trị ghi trong dimension và kéo thẳng lên phía trên thành dạng mtext như file cad đính kèm.
https://drive.google...WkxNYjFTWXdIMnM
Nhờ các bác giúp vì hiện tại em đang làm rất thủ công là copy cái dimension ra và explore để lấy giá trị trong dim, mà công việc của em làm điều này rất nhiều lần, khiến em mất rất nhiều thời gian.
Lisp e muốn như này:
Gõ lệnh cxt
Pick chọn vào giá trị ghi trong dimension và kéo thẳng lên pick vào điểm bất kì muốn đặt giá trị mtext.
Mong các bác giúp đỡ.
Thanks !


Đây cơ mà Khi Pick, chú ý Pick vào đúng MTEXT của DIM nhé, thì LÍP mới hoạt động
(defun c:cxt(/ dt ent p)
  (vl-load-com)
  (if (setq dt (car(nentsel "\Pick DIM")))
    (progn
      (setq ent (entget dt))
      
      (setq p (getpoint (dxf 10 ent) "\nChon diem moi"))
      (entmakex
	(append
	  (list
	    '(0 . "MTEXT")
	    '(100 . "AcDbEntity")
	    '(100 . "AcDbMText"))
	  (vl-remove-if-not '(lambda(x) (member (car x) '(8 7 1 62 40 41 42 43 50 70 71 72 73)))  ent)
	  (list (cons 10 p))
	  )
      )
      ))
  (princ))

  • 0

#3 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 12 June 2017 - 11:12 AM

Đây cơ mà Khi Pick, chú ý Pick vào đúng MTEXT của DIM nhé, thì LÍP mới hoạt động

(defun c:cxt(/ dt ent p)
  (vl-load-com)
  (if (setq dt (car(nentsel "\Pick DIM")))
    (progn
      (setq ent (entget dt))
      
      (setq p (getpoint (dxf 10 ent) "\nChon diem moi"))
      (entmakex
	(append
	  (list
	    '(0 . "MTEXT")
	    '(100 . "AcDbEntity")
	    '(100 . "AcDbMText"))
	  (vl-remove-if-not '(lambda(x) (member (car x) '(8 7 1 62 40 41 42 43 50 70 71 72 73)))  ent)
	  (list (cons 10 p))
	  )
      )
      ))
  (princ))

Sao dài thế?!!! Làm cái ngắn hơn tý!

 

(defun c:cdt  (/ ent poi)
  (while (and (setq ent (car (nentsel "\nChon DIMTEXT: ")))
              (eq (cdr (assoc 0 (entget ent))) "MTEXT")
              (Setq poi (getpoint "\nPick diem dat Mtext: " (cdr (assoc 10 (entget ent))))))
    (entmake (subst (cons 10 poi) (assoc 10 (entget ent)) (entget ent))))
  (princ))


  • 3

#4 quansla

quansla

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 668 Bài viết
Điểm đánh giá: 232 (khá)

Đã gửi 12 June 2017 - 11:15 AM

Sao dài thế?!!! Làm cái ngắn hơn tý!

ờ nhể, mình điên rồi, :D
  • 0

#5 Funiki28

Funiki28

    biết pan

  • Members
  • Pip
  • 9 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 12 June 2017 - 12:30 PM

Lisp hoạt động rất chuẩn, thanks các bác   :D


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5555 Bài viết
Điểm đánh giá: 2674 (tuyệt vời)

Đã gửi 12 June 2017 - 02:03 PM

Sao dài thế?!!! Làm cái ngắn hơn tý!

Code hay


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Và đừng làm điều ngược lại.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.