woodman78 发表于 2022-7-6 10:56:48

帮助使用entmake

我使用entmake在图形中创建textstyle和dimstyle,但当我尝试将textstyle指定给dimstyle时,我得到了以下结果。我该怎么解决这个问题?
 
我是否在entmake中为textstyle将textstyle设置为当前,然后在dimstyle中不必担心它。
 

(defun c:cdim ()
(if (null (tblsearch "STYLE" "CCC_Doer"))
   (entmake
   (list
       (cons 0 "STYLE")
       (cons 100 "AcDbSymbolTableRecord")
       (cons 100 "AcDbTextStyleTableRecord")
       (cons 2 "CCC_Doer")
       (cons 3 "Verdana.ttf")
       (cons 40 0)
       (cons 70 0))))
(if (null (tblsearch "DIMSTYLE" "CCC_Doer_Cross_Sections"))
         (entmake
   (list
       (cons 0 "DIMSTYLE")
       (cons 100 "AcDbDIMStyleTableRecord")
       (cons 2 "CCC_Doer_Cross_Sections") ;DimStyleName
       (cons 3 "m")                  ;Dimpost
       (cons 4 "")                  ;Dimapost
       (cons 40 1)                  ;Dimscale
       (cons 41 0.30)               ;Dimasz
       (cons 42 0.20)               ;Dimexo
       (cons 43 0.38)               ;Dimdli
       (cons 44 0.25)               ;Dimexe
       (cons 45 0)                ;Dimrnd
       (cons 46 0)                ;Dimdle
       (cons 47 0)                ;Dimtp
       (cons 48 0)                ;Dimtm
       (cons 140 0.25)               ;Dimtxt
       (cons 141 0.09)               ;Dimcen
       (cons 142 0)                ;Dimtsz
       (cons 143 25.4)               ;Dimaltf
       (cons 144 1.00)               ;Dimlfac
       (cons 145 0)                ;Dimtvp      
       (cons 146 1.00)               ;Dimtfac
       (cons 147 0.09)               ;Dimgap
       (cons 148 0)                ;Dimaltrnd
       (cons 71 0)                ;Dimtol   
       (cons 72 0)                ;Dimlim
       (cons 73 1)               ;Dimtih
       (cons 74 1)               ;Dimtoh
       (cons 75 0)               ;Dimse1
       (cons 76 0)               ;Dimse2
       (cons 77 0)                ;Dimtad
       (cons 78 0)                ;Dimzin
       (cons 79 0)                ;Dimazin
       (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 256)               ;Dimclrd
       (cons 177 256)               ;Dimclre
       (cons 178 256)               ;Dimclrt
       (cons 179 2)                ;Dimadec
       (cons 271 3)                ;Dimdec
       (cons 272 2)                ;Dimtdec
       (cons 273 2)                ;Dimaltu
       (cons 274 2)                ;Dimalttd
       (cons 275 0)                ;Dimaunit
       (cons 276 0)                ;Dimfrac
       (cons 277 2)                ;Dimlunit
       (cons 278 0)               ;Dimdsep
       (cons 279 0)                ;Dimtmove
       (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 288 0)               ;Dimupt
       (cons 289 3)                ;Dimatfit
;      (cons 340 "CCC_DOER")            ;Dimtxsty
       (cons 341 0)                ;Dimldrblk
       (cons 342 0)                ;Dimblk
       (cons 343 0)                ;Dimblk1
       (cons 344 0)                ;Dimblk2
       (cons 371 -1)               ;Dimlwd
       (cons 372 -1))))               ;Dimlwe
)

The Buzzard 发表于 2022-7-6 11:01:46

出现此错误的原因是,在设置dimstyle之前,还需要使用entmake创建引线块。
 
; 错误:错误的DXF组:(341.0)
 
您使用的值0不好,还需要提供引线块句柄。
(cons 341 0);Dimldrblk这不好
 
修复后,您很可能也会遇到其他值的问题。
 
请参阅Tim Spangler在本帖中的第3篇文章,它应该包含您需要的一切:http://www.cadtutor.org/forum/showthread.php?t=35584

woodman78 发表于 2022-7-6 11:03:52

秃鹰,
我曾尝试修改Tim Spangler编写的LISP,但一直出现“参数太少”的错误。这与创建“dimblk”的部分有关吗??
ccccdim。lsp

The Buzzard 发表于 2022-7-6 11:09:25

 
这是因为程序的设置方式。您需要按顺序提供以红色突出显示的四个参数。程序设置为本地功能。
 
 
(defun STDLIB_CREATE_DIMSTYLE (StyleName StyleScale TextStyle Current / OldDimBlk OldCmdEcho StyleScale TextStyle)

woodman78 发表于 2022-7-6 11:12:31

Buzzard I hvae尝试调用Tim的Lisp程序,但没有使用以下编辑,但我没有得到任何乐趣。。。
 

(defun c:STBDIM ()
STDLIB_CREATE_TEXTSTYLE ("CCC_DOER" 0.25 "verdana.ttf" T)
STDLIB_CREATE_DIMSTYLE ("CCC_DOER_DIMS" 1 "CCC_DOER" T)
(princ)
)

 
我是不是太离谱了??

The Buzzard 发表于 2022-7-6 11:13:39

伍德曼,
 
我制作了一个带有参数的简单程序,可以与Tims程序一起运行。
1、将以下三个程序放在一起。
2、仅加载DS。lsp,它会为你加载另外两个。
3.键入DS,它应该放入一个名为ARCH的dimstyle中,并将其设置为当前。它将创建一个名为SIMPLEX的文本样式。
 
确保使用这三个程序。
 
你看了之后,我相信你会明白的。你以后用它做什么由你决定。
DS。LSP
STDLIB_CREATE_DIMSTYLE。LSP
STDLIB_CREATE_TEXTSTYLE。lsp

TimSpangler 发表于 2022-7-6 11:17:29

 
没有偏离目标,只是忘记了()

The Buzzard 发表于 2022-7-6 11:21:56

 
还需要删除红色的内容。
 
(defun c:STBDIM ()
(STDLIB_CREATE_TEXTSTYLE ("CCC_DOER" 0.25 "verdana.ttf" T))
(STDLIB_CREATE_DIMSTYLE ("CCC_DOER_DIMS" 1 "CCC_DOER" T))
(princ)
)
 
伍德曼,
确保同时加载其他两个程序,或使用下面的方法。
 
(defun c:STBDIM ()
(load "STDLIB_CREATE_DIMSTYLE")
(load "STDLIB_CREATE_TEXTSTYLE")
(STDLIB_CREATE_TEXTSTYLE "CCC_DOER" 0.25 "verdana.ttf" T)
(STDLIB_CREATE_DIMSTYLE"CCC_DOER_DIMS" 1 "CCC_DOER" T)
(princ)
)

TimSpangler 发表于 2022-7-6 11:24:45

 
是的,他说的。。。。。接得好,我都没注意到。

The Buzzard 发表于 2022-7-6 11:26:35

这仍然有效,但我认为没有必要。
页: [1] 2
查看完整版本: 帮助使用entmake