ILoveMadoka 发表于 2022-7-6 11:23:36

Maybe I'm asking the wron

re: DIMASZ
 
Change it at the command prompt and it makes a global change.

You can change it for the selected entities via the Properties dialog.

 
How do youchange the dimasz of a single entity?
 
I've been digging around in here and it's not evident to me..

 
HELP??

ILoveMadoka 发表于 2022-7-6 11:29:34

I've finally found it in the Extended Entity Data.
 
 
Command: !a

((-1 . ) (0 . "DIMENSION") (5 . "185") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}") (102 . "{ACAD_REACTORS") (330 . ) (102 . "}") (330 . ) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbDimension") (2 . "*D2") (10 3.76647 4.90871 0.0) (11 5.39181 3.3427 0.0) (12 0.0 0.0 0.0) (70 . 102) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 . 1.62534) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3 . "Standard") (100 . "AcDbOrdinateDimension") (13 5.39181 4.90871 0.0) (14 5.39181 3.79786 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0) (-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 41) (1040 . 0.0777) (1002 . "}"))))
 
 
I do not know how to isolate this one item to even begin to try to change it.
 
How do I isolate (Assoc 1040 a) ??

alanjt 发表于 2022-7-6 11:35:29

 
 
Correct.
You could easily entmod it from there.

lpseifert 发表于 2022-7-6 11:39:48

I may be wrong but I don't think you can change the arrowhead size of a single arrowhead in an associated dimension. If you want to change the size of both arrowheads you can use this.

(vlax-put-property obj 'Arrowheadsize newsize)

ILoveMadoka 发表于 2022-7-6 11:45:59

I am in water way over my head here...
I just realized that (Assoc 1040) only shows up IF the DIMASZ
has been changed from the default.
I have no idea how to get the entity list if it has not been changed...
 
In my above example: (Assoc 1040 a) returns nil
I cannot "get" anything after this in the entity list..
 

(-3 ("ACAD" (1000 . "DSTYLE")
 
 
ps: Sorry for not being clear..., I'm not trying to change one arrow head...
I'm actually wanting to change the DIMASZ of an Ordinate Dimension.

ILoveMadoka 发表于 2022-7-6 11:46:45

This thread actually relates to something I'm wanting to do
(from another thread..)
 
http://www.cadtutor.net/forum/showthread.php?t=46652
 
I'm way out my league even attempting to do this in VL...
I was trying to modify some existing code but had no idea how to do it..
 
I can't even do this in vanilla autolisp so I'm really begging for assistance...

alanjt 发表于 2022-7-6 11:51:32

I was thinking that too, but I read the following for Dimasz (per SysvDlg):

lpseifert 发表于 2022-7-6 11:57:45

I see this was sorted in a different thread

alanjt 发表于 2022-7-6 12:02:34

 
Decided it was best to post in the original thread. I must have missed it the first time around.

Lee Mac 发表于 2022-7-6 12:06:30

Dimension overrides through AutoLISP are handled in Extended Data (XData), under the ACAD appname, here is some useful info if you want to approach it that way:
 

Art Cooney (artc@autodesk.com)There's a description of the codes in the ObjectARX documentation (I've includedit below).I don't think the DXF documentation explains the overrides.Here's the description from the ObjectARX docs:Dimension style overrides can be applied to any of the AcDbEntity types thatreference an AcDbDimStyleTableRecord.These are:AcDbAlignedDimensionAcDbRotatedDimensionAcDbDiametricDimensionAcDbRadialDimensionAcDb2LineAngularDimensionAcDb3PointAngularDimensionAcDbOrdinateDimensionAcDbLeaderAcDbFcfDimension overrides applied to an object of any of these classes are stored asxdata under the "ACAD" appId in a special subsection. The subsection starts witha group code 1000 (AcDb::kDxfXdAsciiString) with the string "DSTYLE", followedby all the dimension override data bracketed inside a pair of group code 1002's(AcDb::kDxfXdControlString) (the first being a "{" and the other a "}").Dimension variables in general are called dimvars, and this data is commonlycalled "per-entity dimvar overrides" or just dimvar overrides.Within the group code 1002 brackets is a chain of dimvar group-code/data-valueresbuf pairs, one pair for each dimvar being overridden.The first resbuf in each pair is the DXF group code for the dimvar, as found inthe Table below.Since the group code is an integer it has a restype ofAcDb::kDxfXdInteger16 (group code 1070).The second resbuf in each pair is the value for that dimvar.Data values fordimvars may be strings, integers, reals, or objectIds.As with resbufs ingeneral, the value of the resbuf’s restype indicates how to read the data in theresval.Please refer to the Table below.As an example, here is a dimension style override list that will override theDIMTAD and DIMGAP variables. The list is shown in AutoLISP format with indentingfor clarity.("ACAD"   (1000 . "DSTYLE")   (1002 . "{")   (1070 . 77) (1070 . 1)   (1070 . 147) (1000 .0.2)   (1002 . "}"))In this example the group code 77 is DIMTAD, which is overridden to be 1. ThenDIMGAP (group code 147) is set to 0.2.The following code sample uses acutBuildList() to create this resbuf chain andto set overrides for DIMTAD and DIMGAP on the entity pointed to by pEnt,assuming pEnt points to an AcDbEntity of one of the types listed above and isopen for writing:resbuf* pRb = acutBuildList(       AcDb::kDxfRegAppName,      "ACAD",       AcDb::kDxfXdAsciiString,   "DSTYLE",       AcDb::kDxfXdControlString, "{",       AcDb::kDxfXdInteger16,77, AcDb::kDxfXdInteger16, 1,       AcDb::kDxfXdInteger16, 147, AcDb::kDxfXdReal,      0.2,       AcDb::kDxfXdControlString, "}",       RTNONE);Acad::ErrorStatus es = pEnt->setXdata(pRb);acutRelRb(pRb);It is very important the xdata you set onto an object have the proper sequenceof resbufs.Each override must have both the DXF group code resbuf and theassociated value resbuf. In addition, the value must be the correct data type(string, real, or int) and must be within the allowable range for that dimvar.If any of these conditions are not met, AutoCAD may terminate. Also, the 1000"DSTYLE" and the following 1002 "{" "}" set must be present, and there must onlybe one set of all of these.Remember that xdata is obtained and replaced on a per-appId basis. To modify anydimension overrides, work with the complete list of xdata for the "ACAD" appId,which may have other data, including other dimension overrides. So, be sure toobtain whatever xdata may already be present for the "ACAD" appId (use theobject's xData() method with the string "ACAD"). Add or remove only thedimension override information you need, making sure that if dimension overrideinformation already exists you don't duplicate any of the xdata that's alreadythere (including the "DSTYLE" string and the 1002 "{" "}" bracket pairs). Placenew overrides in between the existing 1002 bracket pair, and put the completemodified list back into the object via the object's setXData() method. If notdone correctly, AutoCAD may terminate.Here is a table of all the DimStyleTableRecord dimvars, with their DXF groupcodes, data types, and value ranges:Group codeDimension variable   Data type   Value range3         DIMPOST                string      any4         DIMAPOST               string      any40          DIMSCALE               real          >= 0.041          DIMASZ               real          >= 0.042          DIMEXO               real          >= 0.043          DIMDLI               real          >= 0.044          DIMEXE               real          >= 0.045          DIMRND               real          >= 0.046          DIMDLE               real          >= 0.047          DIMTP                  real          >= 0.048          DIMTM                  real          >= 0.071          DIMTOL               int         0 = off,1 = on72          DIMLIM               int         0 = off,1 = on73          DIMTIH               int         0 = off,1 = on74          DIMTOH               int         0 = off,1 = on75          DIMSE1               int         0 = off,1 = on76          DIMSE2               int         0 = off,1 = on77          DIMTAD               int         0 - 378          DIMZIN               int         0 - 1579          DIMAZIN                int         0 - 15            new140         DIMTXT               real          >= 0.0141         DIMCEN               real          any value142         DIMTSZ               real          >= 0.0143         DIMALTF                real          >= 0.0144         DIMLFAC                real          >= 0.0145         DIMTVP               real          >= 0.0146         DIMTFAC                real          >= 0.0147         DIMGAP               real          any value148         DIMALTRND            real          >= 0.0         new170         DIMALT               int         0 = off,1 = on171         DIMALTD                int         >= 0172         DIMTOFL                int         0 = off,1 = on173         DIMSAH               int         0 = off,1 = on174         DIMTIX               int         0 = off,1 = on175         DIMSOXD                int         0 = off,1 = on176         DIMCLRD                int         0 - 256177         DIMCLRE                int         0 - 256178         DIMCLRT                int         0 - 256179         DIMADEC                int         0 - 8            new271         DIMDEC               int         0 - 8272         DIMTDEC                int         0 - 8273         DIMALTU                int         1 - 8274         DIMALTTD               int         0 - 8275         DIMAUNIT               int         0 - 4276         DIMFRAC                int         0 - 2            new277         DIMLUNIT               int         0 - 4            new278         DIMDSEP                int         (char) any charnew279         DIMATMOVE            int         0 - 2            new280         DIMJUST                int         0 - 4281         DIMSD1               int         0 = off,1 = on282         DIMSD2               int         0 = off,1 = on283         DIMTOLJ                int         0 - 2284         DIMTZIN                int         0 - 15285         DIMALTZ                int         0 - 15286         DIMALTTZ               int         0 - 15288         DIMUPT               int         0 = off,1 = on289         DIMATFIT               int         0 - 3            new340         DIMTXSTY               objectId                     new341         DIMLDRBLK            objectId                     new342         DIMBLK               objectId                     new343         DIMBLK1                objectId                     new344         DIMBLK2                objectId                     new371         DIMLWD               int         lineweights      new372         DIMLWE               int         lineweights      new
页: [1] 2
查看完整版本: Maybe I'm asking the wron