autolisp 发表于 2022-7-6 10:39:07

尺寸样式创建(plz ch

尊敬的先生:
plz-chk我的新lisp创建dim风格&如何改进
(defun c:dim100()
;check for layer and create if missing
(if (= (tblsearch "layer" "Legend") nil)
(command "layer" "make" "dimtest" "color" "7" "" "lt" "continuous" "" ""))
;check for style and create if missing
(command "style" "style1" "arial.TTF" "0" "1" "0" "n" "n")
(if (not (tblsearch "DImstyle" "Dim100"))
   (progn(command "dimstyle" "S" "Dim100")
   (command "dim" "style" "style1"
       "DIMADEC"   0
       "DIMALT"      0
       "DIMALTD"   3
       "DIMALTF"   0.0394
       "DIMALTRND"   0.0000
       "DIMALTTD"    3
       "DIMALTTZ"    0
       "DIMALTU"   2
       "DIMALTZ"   0
       "DIMASZ"      1.2000
       "DIMATFIT"    3
       "DIMAUNIT"    0
       "DIMAZIN"   0
       "DIMBLK"      "_Dot"
       "DIMBLK1"   ""
       "DIMBLK2"   ""
       "DIMCLRD"   8
       "DIMCLRE"   8
       "DIMCLRT"   4
       "DIMDEC"      0
       "DIMDLE"      0.0000
       "DIMDLI"      7.0000
       "DIMEXE"      2.0000
       "DIMEXO"      2.0000
       "DIMFRAC"   0
       "DIMGAP"      0.5000
       "DIMJUST"   0
       "DIMLFAC"   1.0000
       "DIMLIM"      0
       "DIMLUNIT"    2
       "DIMLWD"   9
       "DIMLWE"      9
       "DIMRND"      0.0000
       "DIMSAH"      0
       "DIMSCALE"    100.0000
       "DIMSD1"      0
       "DIMSD2"      0
       "DIMSE1"      0
       "DIMSE2"      0
       "DIMSOXD"   0
       "DIMTAD"      1
       "DIMTIH"      0
       "DIMTIX"      1
       "DIMTM"       0.0000
       "DIMTMOVE"    0
       "DIMTOFL"   1
       "DIMTOH"      0
       "DIMTSZ"      0.0000
       "DIMTVP"      0.0000
       "DIMTXSTY"    "style1"
       "DIMTXT"      2.5000
       "DIMFIT"         5 \e)
   (command "dimstyle" "S" "Dim100" "Y")))(graphscr)(princ))

MSasu 发表于 2022-7-6 10:43:17

我建议使用一系列特性和SETVAR函数,而不是长命令调用:
 
(foreach SetupList '(("DIMADEC" . 0) ("DIMALT" . 0) ("DIMALTD" . 7))
(setvar (car SetupList) (cdr SetupList))
)
 
 
当做

The Buzzard 发表于 2022-7-6 10:45:47

 
 
你也可以用entmake试试。见附件。确保DCL和LSP在一起,并且在ACAD搜索支持补丁中。请参见此处:http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南
D风格。dcl
D风格。lsp

autolisp 发表于 2022-7-6 10:49:18

尊敬的先生:
谢谢分享
1个问题I选择1:100比例
但昏暗的风格选择1ft。

The Buzzard 发表于 2022-7-6 10:52:25

对不起,请注意,该计划是不完整的,需要更多的工作。
我没有时间完成它,但它应该会给你一些想法。
如果我今天有时间,我会看看我能做什么。

The Buzzard 发表于 2022-7-6 10:55:09

试试这个。
D风格。dcl
D风格。lsp

autolisp 发表于 2022-7-6 10:58:33

尊敬的先生:
thx回复
我正在使用mm drg
但同样的问题也存在
im选择1:100,但尺寸以英尺为单位

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

 
这很可能是我在代码中使用的硬值。
你可以去掉所有的英制单位,保留公制单位。
正如我之前提到的,我需要一些时间来解决所有问题。需要更多条件。
我刚刚到达缩放部分,没有完成其余部分。
 
 
在这部分代码中,需要在这里更改值,就像您设置dimvariables一样。
你可以在这里使用你的价值观。请注意,我已将它们标识在右侧。
;
; DimStyle Create
;
(defun DSTYLE_DIMSTYLE_CREATE (DSTY$ DSCL# AH$ FSTY$)
(if (null (tblsearch "dimstyle" DSTY$))
   (progn
   (entmake
       (list
(cons 0 "DIMSTYLE")                                           ; Entity Type
(cons 100 "AcDbSymbolTableRecord")                            ; Subclass marker
(cons 100 "AcDbDimStyleTableRecord")                        ; Subclass marker
(cons 2 DSTY$)                                                ; Dimstyle name
(cons 70 0)                                                   ; Standard flag value
(cons 3 "")                                                   ; DIMPOST
(cons 4 "")                                                   ; DIMAPOST
(cons 5AH$)                                                 ; DIMBLK
(cons 6AH$)                                                 ; DIMBLK1
(cons 7AH$)                                                 ; DIMBLK2
(cons 40 DSCL#)                                             ; 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 0)                                                   ; 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 1)                                                ; DIMCLRD
(cons 177 1)                                                ; 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)                                                ; DIMFRAC
(cons 277 4)                                                ; DIMLUNIT
(cons 279 2)                                                ; 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 287 5)                                                ; DIMFIT
(cons 288 0)                                                ; DIMUPT
(cons 340 (tblobjname "style" FSTY$))                         ; DIMTXSTY
(cons 342 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK
(cons 343 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK1
(cons 344 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK2
       )
   )
   )
)
(command "._-dimstyle" "_restore" DSTY$)                              ; Set dimstyle current
(alert (strcat "\nThe current DimStyle name is "DSTY$"."
                "\nThe current DimScale set to "(rtos DSCL# 2 0)"."))
)
;
;;;/////////////////////////////////////////////////////////

The Buzzard 发表于 2022-7-6 11:06:51

我输入了你的价值观。尝试DSTYLE2。lsp
 
我需要为点类型箭头创建自定义箭头块。
DSTYLE2.lsp
DSTYLE2.dcl

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

好的,我们现在有一个自定义点箭头。我这次需要的是你的字体风格信息,这应该就完成了。见附件。
DSTYLE2.dcl
DSTYLE2.lsp
页: [1] 2
查看完整版本: 尺寸样式创建(plz ch