乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 8

[编程交流] entmake dimstyle dxf代码que

[复制链接]

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 23:41:18 | 显示全部楼层 |阅读模式
你好!正如“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组码?我该拿它们怎么办?建议?=)
 
 
谢谢当做
杰夫!
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:54:39 | 显示全部楼层
看看这个。
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a2b。htm
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 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个文档中的任何一个。
 
 
欢迎提供任何帮助/建议!
干杯
杰夫!
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:05:04 | 显示全部楼层
杰夫,
 
如果使用VLIDE检查标注图元,通常会显示以下内容。。
 
004127i7nww7xm7xqmcebe.jpg
 
如果您转到之前发送的链接的此页面,则表部分中是
DIMSTYLE DXF代码。
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a53.htm
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 00:12:02 | 显示全部楼层
谢谢你在帖子4中给我的链接与我在帖子3中给的链接完全相同。。。
 
 
... 我不明白你想告诉我什么,还是你不明白我在问什么。。。
我为什么要这么做?我不是在说“AcDbDimensions”。我说的是“AcDbDimStyleTableRecord”。也许我错过了什么。
 
 
我找到的两个autodesk参考都不包含我要查找的19个参考中的任何一个。(列在帖子#1中)
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

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

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:31:25 | 显示全部楼层
下面是蒂姆·斯潘格勒在TheSwamp的一个惯例:创建一个dimstyle
 
  1. ;;; ------------------------------------------------------------------------
  2. ;;;    CREATE_DIMSTYLE.LSP
  3. ;;;
  4. ;;;    Copyright © October, 2007
  5. ;;;    Timothy G. Spangler
  6. ;;;
  7. ;;;    Permission to use, copy, modify, and distribute this software
  8. ;;;    for any purpose and without fee is hereby granted, provided
  9. ;;;    that the above copyright notice appears in all copies and
  10. ;;;    that both that copyright notice and the limited warranty and
  11. ;;;    restricted rights notice below appear in all supporting
  12. ;;;    documentation.
  13. ;;;
  14. ;;;    CREATE_DIMSTYLE
  15. ;;;
  16. ;;;                 Description:
  17. ;;;                        Called from a menu pulldown or rightclick menu
  18. ;;;                                *(CREATE_DIMSTYLE "test0" 48.0 "Archquik")
  19. ;;;
  20. ;;; ------------------------------------------------------------------------
  21. ;;;                VERSION HISTORY
  22. ;;;
  23. ;;; ------------------------------------------------------------------------
  24. ;;; MAIN FUNCTION ;;;;;;;;;;;;;;;;;;;;;;;;;
  25. (defun DIMSTYLE_CREATE (StyleName StyleScale TextStyle / OldDimBlk OldCmdEcho)
  26. ;; Set echo
  27. (setq OldCmdEcho (getvar "CMDECHO"))
  28. (setvar "CMDECHO" 0)
  29. ;; Create textstyle
  30. (if (not (tblsearch "STYLE" TextStyle))
  31.         (TEXTSTYLE_CREATE)
  32. )
  33. ;; Create dimblk
  34. (if (not (tblobjname "block" "_Oblique"))
  35.         (progn
  36.                 (setq OldDimBlk (getvar "dimblk"))
  37.                 (if (= OldDimBlk "")
  38.                         (setq OldDimBlk ".")
  39.                 )
  40.                 (setvar "dimblk" "_Oblique")
  41.                 (setvar "dimblk" OldDimBlk)
  42.         )
  43. )
  44. ;; Create dimstyle
  45. (entmake
  46.         (list
  47.                 (cons 0 "DIMSTYLE"); Table
  48.                 (cons 100 "AcDbSymbolTableRecord"); Subclass marker
  49.                 (cons 100 "AcDbDimStyleTableRecord"); Subclass marker
  50.                 (cons 2 StyleName); Dimstyle name
  51.                 (cons 70 0); Standard flag
  52.                 (cons 3 ""); DIMPOST
  53.                 (cons 4 ""); DIMAPOST
  54.                 (cons 5 "_Oblique"); DIMBLK
  55.                 (cons 6 "_Oblique"); DIMBLK1
  56.                 (cons 7 ""); DIMBLK2
  57.                 (cons 40 StyleScale); DIMSCALE
  58.                 (cons 41 0.0937); DIMASZ
  59.                 (cons 42 0.0937); DIMEXO
  60.                 (cons 43 0.38); DIMDLI
  61.                 (cons 44 0.0625); DIMEXE
  62.                 (cons 45 0.0); DIMRND
  63.                 (cons 46 0.0625); DIMDLE
  64.                 (cons 47 0.0); DIMTP
  65.                 (cons 48 0.0); DIMTM
  66.                 (cons 140 0.0937); DIMTXT
  67.                 (cons 141 0.09); DIMCEN
  68.                 (cons 142 0.0); DIMTSZ
  69.                 (cons 143 25.4); DIMALTF
  70.                 (cons 144 1.0); DIMLFAC
  71.                 (cons 145 0.0); DIMTVP
  72.                 (cons 146 1.0); DIMTFAC
  73.                 (cons 147 0.0625); DIMGAP
  74.                 (cons 71 0); DIMTOL
  75.                 (cons 72 0); DIMLIM
  76.                 (cons 73 0); DIMTIH
  77.                 (cons 74 0); DIMTOH
  78.                 (cons 75 0); DIMSE1
  79.                 (cons 76 0); DIMSE2
  80.                 (cons 77 1); DIMTAD
  81.                 (cons 78 3); DIMZIM
  82.                 (cons 170 0); DIMALT
  83.                 (cons 171 2); DIMALTD
  84.                 (cons 172 0); DIMTOFL
  85.                 (cons 173 0); DIMSAH
  86.                 (cons 174 0); DIMTIX
  87.                 (cons 175 0); DIMSOXD
  88.                 (cons 176 0); DIMCLRD
  89.                 (cons 177 0); DIMCLRE
  90.                 (cons 178 2); DIMCRRT
  91.                 (cons 270 4); DIMUNIT
  92.                 (cons 271 4); DIMDEC
  93.                 (cons 272 4); DIMTDEC
  94.                 (cons 273 2); DIMALTU
  95.                 (cons 274 2); DIMALTTD
  96.                 (cons 275 0); DIMAUNIT
  97.                 (cons 276 2); DIM?????
  98.                 (cons 277 4); DIMLUNIT
  99.                 (cons 279 2); DIM????
  100.                 (cons 280 0); DIMJUST
  101.                 (cons 281 0); DIMSD1
  102.                 (cons 282 0); DIMSD2
  103.                 (cons 283 1); DIMTOLJ
  104.                 (cons 284 0); DIMTZIN
  105.                 (cons 285 0); DIMALTZ
  106.                 (cons 286 0); DIMALTTZ
  107.                 (cons 287 5); DIMFIT
  108.                 (cons 288 0); DIMUPT
  109.                 ; DIMTXSTY
  110.                 (cons 340 (tblobjname "style" TextStyle))
  111.                 ; DIMLDRBLK
  112.                 (cons 342 (cdr        (assoc 330 (entget(tblobjname "block" "_Oblique")))))
  113.                 ; DIMLDRBLK1
  114.                 (cons 343 (cdr        (assoc 330 (entget(tblobjname "block" "_Oblique")))))
  115.                 ; DIMLDRBLK2 Block for the leader
  116.                 ;(cons 341 (cdr        (assoc 330 (entget(tblobjname "block" "")))))
  117.         )
  118. )
  119. ;; Set dimstyle current
  120. (command "-dimstyle" "restore" StyleName)
  121. ;; Set echo
  122. (setvar "CMDECHO" OldCmdEcho)
  123. (princ (strcat "\n\n--"" StyleName "" is now the current Dimstyle--"))
  124. (princ)
  125. )
  126. ;; ENTMAKE TEXT STYLE
  127. (defun TEXTSTYLE_CREATE (/)
  128. (entmake
  129.         (list
  130.                 (cons 0 "STYLE")
  131.           (cons 100 "AcDbSymbolTableRecord")
  132.           (cons 100 "AcDbTextStyleTableRecord")
  133.           (cons 2 "Archquik");; Style Name
  134.           (cons 70 0)
  135.           (cons 40 0.0);; Fixed text height
  136.           (cons 41 1.0);; Width Factor
  137.           (cons 50 0.0);; Oblique angle
  138.           (cons 71 0)
  139.           (cons 42 2.0);; Last height used
  140.           (cons 3 "archquik.shx");; Primary font name
  141.           (cons 4 "");;  Big font name
  142.         )
  143. )
  144. (princ)
  145. )
  146. (princ)
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 00:34:31 | 显示全部楼层
斯诺杜特,
 
 
我从网上找到的一个旧的dxf列表开始,在找到新代码时附加新代码,制作一个excel电子表格来查找变量并返回相应的dxf代码。我只是比较了adesks dxf和我的(找不到任何“新代码”),但搜索了变量名,我才发现原来的列表中有4个拼写错误。我现在只剩下14个未知数了。(供参考)
 
 
  1. 2

直到几周前,我还在用记事本写代码,现在已经完全转换成VLIDE。尽管我读了很多关于VLIDE的教程和帮助文件,但我仍然不熟悉它的所有内置工具。既然我知道去哪里调查,我会(试试)=那句话是无价的!你刚刚给了我一根钓竿!
非常感谢!
 
 
@ymg3很好的套路!它看起来比我的好。。我仍在做列表步骤=)
 
 
通过lisp创建dimstyle是一件事,但是通过lisp复制我的dimstyle是一个很好的挑战。我试图实现的第一件事是在我工作的地方建立dimstyle的整个dxf列表,如果它在第一时间被清除,或者如果开始的图形不是我们的模板,那么能够重新创建它。。。
 
 
我害怕使用几年前的例程(尤其是使用entmake的例程),因为我不知道如果lisp使用autodesk标记为过时的dxf代码创建dimstyle会发生什么。也许你知道?
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:47:59 | 显示全部楼层
正如蒂姆·斯潘格勒所说,这是一个常规动作。
 
我不认为过时的DXF代码会是一个大问题。
 
更糟糕的是,Autolisp将抛出一个错误,即不创建实体。
此时,检查VLIDE中的最后一个错误。
 
不确定,但我相信一些Var可能已经从0变为0
到现在“关”或“开”
 
只要用你正在使用的任何版本进行测试,看看它能做什么
在投入全面生产之前。
 
ymg公司
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 00:35 , Processed in 1.004565 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表