Jef! 发表于 2022-7-5 23:41:18

entmake dimstyle dxf代码que

你好!正如“true lispers”所建议的那样,我开始使用entmake来创建东西,而不是命令,我对核心Entmaker有一个问题。
 
 
我使用的是autocad 2014,因此基于Autodesks 2014 dxf代码参考(http://images.autodesk.com/adsk/files/autocad_2014_pdf_dxf_reference_enu.pdf,第46页到第50页的Dimstyle组码)我正在制作一个lisp,使用entmake根据我们的标准创建Dimstyle。首先,我取下模板,进入Dim样式管理器,选择dimstyle,然后单击“比较”按钮。我现在有了所有的属性、变量和值,它们构成了我们的标准dimstyle。到目前为止,一切都很好!
 
 
使用上一个链接,我获得了相应的变量DXF代码,以创建完整的列表,为entmake提供数据,但在填充“比较尺寸样式”对话框的76个变量上,有19个变量我无法找到相应的DXF组码,以查看AutoDesk自己的参考。这些是:
 
 
这些变量是否有DXF组码?我该拿它们怎么办?建议?=)
 
 
谢谢当做
杰夫!

Snownut 发表于 2022-7-5 23:54:39

看看这个。
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a2b。htm

Jef! 发表于 2022-7-5 23:59:26

雪果,
 
 
这不是我想要的。提供的链接用于实体尺寸,我正在寻找dim styles dxf代码。深入挖掘,我发现了一个dxf维度表部分
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a53.htm
除了dxf代码289(dimatfit)不在我提供链接的PDF中之外,这两个文档的内容是相同的,它们都不包含我要查找的19个文档中的任何一个。
 
 
欢迎提供任何帮助/建议!
干杯
杰夫!

Snownut 发表于 2022-7-6 00:05:04

杰夫,
 
如果使用VLIDE检查标注图元,通常会显示以下内容。。
 

 
如果您转到之前发送的链接的此页面,则表部分中是
DIMSTYLE DXF代码。
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a53.htm

Jef! 发表于 2022-7-6 00:12:02

谢谢你在帖子4中给我的链接与我在帖子3中给的链接完全相同。。。
 
 
... 我不明白你想告诉我什么,还是你不明白我在问什么。。。
我为什么要这么做?我不是在说“AcDbDimensions”。我说的是“AcDbDimStyleTableRecord”。也许我错过了什么。
 
 
我找到的两个autodesk参考都不包含我要查找的19个参考中的任何一个。(列在帖子#1中)

Snownut 发表于 2022-7-6 00:23:58

Jef!,
 
我很快在我发布的最后一个链接的DIMSTYLE DXF代码列表中看到了至少三个您列出的DXF代码。(可能还有更多)不知道该对未上市的公司说些什么。。
 
显然,还有未记录的341、342、343和344代码(不知道它们控制什么)。
 
有时你们需要做一点调查,试着通过setvar更改几个有问题的组码,因为它们是列出的,而不是只读变量,然后重新生成。最后,在VLIDE的“视图”菜单项中,浏览图形数据库,浏览表格,选择尺寸样式,看看有什么变化。

ymg3 发表于 2022-7-6 00:31:25

下面是蒂姆·斯潘格勒在TheSwamp的一个惯例:创建一个dimstyle
 

;;; ------------------------------------------------------------------------
;;;    CREATE_DIMSTYLE.LSP
;;;
;;;    Copyright © October, 2007
;;;    Timothy G. Spangler
;;;
;;;    Permission to use, copy, modify, and distribute this software
;;;    for any purpose and without fee is hereby granted, provided
;;;    that the above copyright notice appears in all copies and
;;;    that both that copyright notice and the limited warranty and
;;;    restricted rights notice below appear in all supporting
;;;    documentation.
;;;
;;;    CREATE_DIMSTYLE
;;;
;;;               Description:
;;;                        Called from a menu pulldown or rightclick menu
;;;                                *(CREATE_DIMSTYLE "test0" 48.0 "Archquik")
;;;
;;; ------------------------------------------------------------------------
;;;                VERSION HISTORY
;;;
;;; ------------------------------------------------------------------------

;;; MAIN FUNCTION ;;;;;;;;;;;;;;;;;;;;;;;;;
(defun DIMSTYLE_CREATE (StyleName StyleScale TextStyle / OldDimBlk OldCmdEcho)

;; Set echo
(setq OldCmdEcho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)

;; Create textstyle
(if (not (tblsearch "STYLE" TextStyle))
        (TEXTSTYLE_CREATE)
)
;; Create dimblk
(if (not (tblobjname "block" "_Oblique"))
        (progn
                (setq OldDimBlk (getvar "dimblk"))
                (if (= OldDimBlk "")
                        (setq OldDimBlk ".")
                )
                (setvar "dimblk" "_Oblique")
                (setvar "dimblk" OldDimBlk)
        )
)
;; Create dimstyle
(entmake
        (list
                (cons 0 "DIMSTYLE"); Table
                (cons 100 "AcDbSymbolTableRecord"); Subclass marker
                (cons 100 "AcDbDimStyleTableRecord"); Subclass marker
                (cons 2 StyleName); Dimstyle name
                (cons 70 0); Standard flag
                (cons 3 ""); DIMPOST
                (cons 4 ""); DIMAPOST
                (cons 5 "_Oblique"); DIMBLK
                (cons 6 "_Oblique"); DIMBLK1
                (cons 7 ""); DIMBLK2
                (cons 40 StyleScale); DIMSCALE
                (cons 41 0.0937); DIMASZ
                (cons 42 0.0937); DIMEXO
                (cons 43 0.38); DIMDLI
                (cons 44 0.0625); DIMEXE
                (cons 45 0.0); DIMRND
                (cons 46 0.0625); DIMDLE
                (cons 47 0.0); DIMTP
                (cons 48 0.0); DIMTM
                (cons 140 0.0937); DIMTXT
                (cons 141 0.09); DIMCEN
                (cons 142 0.0); DIMTSZ
                (cons 143 25.4); DIMALTF
                (cons 144 1.0); DIMLFAC
                (cons 145 0.0); DIMTVP
                (cons 146 1.0); DIMTFAC
                (cons 147 0.0625); DIMGAP
                (cons 71 0); DIMTOL
                (cons 72 0); DIMLIM
                (cons 73 0); DIMTIH
                (cons 74 0); DIMTOH
                (cons 75 0); DIMSE1
                (cons 76 0); DIMSE2
                (cons 77 1); DIMTAD
                (cons 78 3); DIMZIM
                (cons 170 0); DIMALT
                (cons 171 2); DIMALTD
                (cons 172 0); DIMTOFL
                (cons 173 0); DIMSAH
                (cons 174 0); DIMTIX
                (cons 175 0); DIMSOXD
                (cons 176 0); DIMCLRD
                (cons 177 0); DIMCLRE
                (cons 178 2); DIMCRRT
                (cons 270 4); DIMUNIT
                (cons 271 4); DIMDEC
                (cons 272 4); DIMTDEC
                (cons 273 2); DIMALTU
                (cons 274 2); DIMALTTD
                (cons 275 0); DIMAUNIT
                (cons 276 2); DIM?????
                (cons 277 4); DIMLUNIT
                (cons 279 2); DIM????
                (cons 280 0); DIMJUST
                (cons 281 0); DIMSD1
                (cons 282 0); DIMSD2
                (cons 283 1); DIMTOLJ
                (cons 284 0); DIMTZIN
                (cons 285 0); DIMALTZ
                (cons 286 0); DIMALTTZ
                (cons 287 5); DIMFIT
                (cons 288 0); DIMUPT
                ; DIMTXSTY
                (cons 340 (tblobjname "style" TextStyle))
                ; DIMLDRBLK
                (cons 342 (cdr        (assoc 330 (entget(tblobjname "block" "_Oblique")))))
                ; DIMLDRBLK1
                (cons 343 (cdr        (assoc 330 (entget(tblobjname "block" "_Oblique")))))
                ; DIMLDRBLK2 Block for the leader
                ;(cons 341 (cdr        (assoc 330 (entget(tblobjname "block" "")))))
        )
)
;; Set dimstyle current
(command "-dimstyle" "restore" StyleName)
;; Set echo
(setvar "CMDECHO" OldCmdEcho)
(princ (strcat "\n\n--\"" StyleName "\" is now the current Dimstyle--"))
(princ)
)
;; ENTMAKE TEXT STYLE
(defun TEXTSTYLE_CREATE (/)

(entmake
        (list
                (cons 0 "STYLE")
          (cons 100 "AcDbSymbolTableRecord")
          (cons 100 "AcDbTextStyleTableRecord")
          (cons 2 "Archquik");; Style Name
          (cons 70 0)
          (cons 40 0.0);; Fixed text height
          (cons 41 1.0);; Width Factor
          (cons 50 0.0);; Oblique angle
          (cons 71 0)
          (cons 42 2.0);; Last height used
          (cons 3 "archquik.shx");; Primary font name
          (cons 4 "");;Big font name
        )
)
(princ)
)
(princ)

Jef! 发表于 2022-7-6 00:34:31

斯诺杜特,
 
 
我从网上找到的一个旧的dxf列表开始,在找到新代码时附加新代码,制作一个excel电子表格来查找变量并返回相应的dxf代码。我只是比较了adesks dxf和我的(找不到任何“新代码”),但搜索了变量名,我才发现原来的列表中有4个拼写错误。我现在只剩下14个未知数了。(供参考)
 
 
2
直到几周前,我还在用记事本写代码,现在已经完全转换成VLIDE。尽管我读了很多关于VLIDE的教程和帮助文件,但我仍然不熟悉它的所有内置工具。既然我知道去哪里调查,我会(试试)=那句话是无价的!你刚刚给了我一根钓竿!
非常感谢!
 
 
@ymg3很好的套路!它看起来比我的好。。我仍在做列表步骤=)
 
 
通过lisp创建dimstyle是一件事,但是通过lisp复制我的dimstyle是一个很好的挑战。我试图实现的第一件事是在我工作的地方建立dimstyle的整个dxf列表,如果它在第一时间被清除,或者如果开始的图形不是我们的模板,那么能够重新创建它。。。
 
 
我害怕使用几年前的例程(尤其是使用entmake的例程),因为我不知道如果lisp使用autodesk标记为过时的dxf代码创建dimstyle会发生什么。也许你知道?

ymg3 发表于 2022-7-6 00:47:59

正如蒂姆·斯潘格勒所说,这是一个常规动作。
 
我不认为过时的DXF代码会是一个大问题。
 
更糟糕的是,Autolisp将抛出一个错误,即不创建实体。
此时,检查VLIDE中的最后一个错误。
 
不确定,但我相信一些Var可能已经从0变为0
到现在“关”或“开”
 
只要用你正在使用的任何版本进行测试,看看它能做什么
在投入全面生产之前。
 
ymg公司
页: [1]
查看完整版本: entmake dimstyle dxf代码que