Jump to content

LISP Needed


good_m

Recommended Posts

Hey All...hope everyone is doin' alright!

Here's my issue. I'm hoping to find a way to write a lisp so that I can trim a dimension line without exploding the dimension (I would like to keep the dimension associative).

If anyone can help me with this it would be greatly appreciated!

Thanks alot!

Mike

Link to comment
Share on other sites

As far as I know, DIMENSION entities are still stored in the block table with a name *Dnnn. So editing an individual dimension can be done. 1 problem could occur if you have multiple copies of the same DIM. And selecting exactly which line to edit could be a bit tricky

 

 

The DIM Data in entmake format

 

(entmake '((0 . "DIMENSION")(100 . "AcDbEntity")(410 . "Model")(8 . "0")(100 . "AcDbDimension")(2 . "*D1")(10 12.21552963 8.10008233 0)(11 9.28317528 8.10008233 0)(12 0 0 0)(70 . 32)(1 . "")(71 . 5)(72 . 1)(41 . 1)(42 . 5.86470871)(52 . 0)(53 . 0)(54 . 0)(3 . "Standard")(100 . "AcDbAlignedDimension")(13 6.35082092 6.18865091 0)(14 12.21552963 6.18865091 0)(15 0 0 0)(16 0 0 0)(100 . "AcDbRotatedDimension")))

The DIM BLOCK Table data also in entmake

 

(entmake (list (cons 0 "DIMENSION")(cons 100 "AcDbEntity")(cons 410 "Model")(cons 8 "0")(cons 100 "AcDbDimension")(cons 2 "*D1")(cons 10 (list 12.21552963 8.10008233 0))(cons 11 (list 9.28317528 8.10008233 0))(cons 12 (list 0 0 0))(cons 70 32)(cons 1 "")(cons 71 5)(cons 72 1)(cons 41 1)(cons 42 5.86470871)(cons 52 0)(cons 53 0)(cons 54 0)(cons 3 "Standard")(cons 100 "AcDbAlignedDimension")(cons 13 (list 6.35082092 6.18865091 0))(cons 14 (list 12.21552963 6.18865091 0))(cons 15 (list 0 0 0))(cons 16 (list 0 0 0))(cons 100 "AcDbRotatedDimension")))
(entmake (list (cons 0 "BLOCK")(cons 2 "*D1")(cons 70 0)(cons 10 (list 0 0 0))))
(entmake (list (cons 0 "LINE")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 370 -2)(cons 100 "AcDbLine")(cons 10 (list 6.35082092 6.25115091 0))(cons 11 (list 6.35082092 8.28008233 0))))
(entmake (list (cons 0 "LINE")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 370 -2)(cons 100 "AcDbLine")(cons 10 (list 12.21552963 6.25115091 0))(cons 11 (list 12.21552963 8.28008233 0))))
(entmake (list (cons 0 "LINE")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 370 -2)(cons 100 "AcDbLine")(cons 10 (list 6.53082092 8.10008233 0))(cons 11 (list 8.74317528 8.10008233 0))))
(entmake (list (cons 0 "LINE")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 370 -2)(cons 100 "AcDbLine")(cons 10 (list 12.03552963 8.10008233 0))(cons 11 (list 9.82317528 8.10008233 0))))
(entmake (list (cons 0 "SOLID")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 100 "AcDbTrace")(cons 10 (list 6.53082092 8.13008233 0))(cons 11 (list 6.53082092 8.07008233 0))(cons 12 (list 6.35082092 8.10008233 0))(cons 13 (list 6.35082092 8.10008233 0))(cons 39 0)))
(entmake (list (cons 0 "SOLID")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 100 "AcDbTrace")(cons 10 (list 12.03552963 8.13008233 0))(cons 11 (list 12.03552963 8.07008233 0))(cons 12 (list 12.21552963 8.10008233 0))(cons 13 (list 12.21552963 8.10008233 0))(cons 39 0)))
(entmake (list (cons 0 "MTEXT")(cons 100 "AcDbEntity")(cons 8 "0")(cons 62 0)(cons 100 "AcDbMText")(cons 10 (list 9.28317528 8.10008233 0))(cons 40 0.18)(cons 41 0)(cons 71 5)(cons 72 1)(cons 1 "\\A1;5.8647")(cons 7 "Standard")(cons 210 (list 0 0 1))(cons 11 (list 1 0 0))(cons 42 0.9)(cons 43 0.18)(cons 50 0)(cons 73 1)(cons 44 1)))
(entmake (list (cons 0 "POINT")(cons 100 "AcDbEntity")(cons 8 "Defpoints")(cons 62 0)(cons 100 "AcDbPoint")(cons 10 (list 6.35082092 6.18865091 0))(cons 50 0)))
(entmake (list (cons 0 "POINT")(cons 100 "AcDbEntity")(cons 8 "Defpoints")(cons 62 0)(cons 100 "AcDbPoint")(cons 10 (list 12.21552963 6.18865091 0))(cons 50 0)))
(entmake (list (cons 0 "POINT")(cons 100 "AcDbEntity")(cons 8 "Defpoints")(cons 62 0)(cons 100 "AcDbPoint")(cons 10 (list 12.21552963 8.10008233 0))(cons 50 0)))
(entmake (list (cons 0 "ENDBLK")))

-David

Link to comment
Share on other sites

WOW! I knew that it would probably be a complicated lisp routine but that went straight over my head!!!! haha No worries....not that important. Thanks for trying though!

Mike

Link to comment
Share on other sites

> good_m

 

What for the program is necessary to you? It is possible to move one size and draw another.

 

Here an example with Aligned Dimension. With Rotated Dimension it is little bit more difficultly.

 

(defun c:ditrim(/ dimEnt newPt newDim)
 (vl-load-com)
 (if
   (and
     (setq dimEnt(entsel "\nSelect Aligned Dimension > "))
     (setq dimEnt(vlax-ename->vla-object(car dimEnt)))
     (=(vla-get-ObjectName dimEnt)"AcDbAlignedDimension")
     (setq newPt(getpoint "\nSelect point -|- "))
     ); end and
   (progn
     (setq newDim(vla-copy dimEnt)
       newPt(vlax-3D-point(trans newPt 1 0))
       ); end setq
     (vla-put-ExtLine1Point dimEnt newPt)
     (vla-put-ExtLine2Point newDim newPt)
     ); end progn
   ); end if
 (princ)
 ); end of c:ditrim

Link to comment
Share on other sites

>ASMI

No worries...thanks for the help though. One of my work mates was wondering if it could be done. I don't think that I would ever actually use it but apparently he would.

Thanks again for the help!

Mike

Link to comment
Share on other sites

  • 3 years later...
How can I copy autocad table in excel file for edit

 

waqashraf,

 

If you have a new question PLEASE DO NOT REPLY TO AN OLD THREAD WITH IT.

 

PLEASE CREATE A NEW THREAD WITH YOUR NEW QUESTION.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...