代码之家  ›  专栏  ›  技术社区  ›  Matt Taylor

图纸编号标记的Autocad Diesel IF表达式

  •  0
  • Matt Taylor  · 技术社区  · 7 年前

    我正在尝试在AutoCad中使用Diesel表达式自动生成图纸标记。

    这让我得到了图纸名称中的第十二个字符。但我一到第10页,就会说是第0页。

    $(substr,$(getvar,dwgname),12,1)

    是否有人知道如何获取If语句以查看第十一个字符是否为0,然后运行上面的代码,否则请运行 $(substr,$(getvar,dwgname),11,2)

    这是我尝试过的。 $(IF,substr,$(getvar,dwgname),11,1)="0"$(substr,$(getvar,dwgname),11,2,substr,$(getvar,dwgname),12,1)

    这似乎与excel公式类似。谢谢你的帮助。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Miiir    7 年前

    Diesel if语句的格式为:

    $(if, expr, dotrue [, dofalse])
    

    如果 expr公司 为非零,它计算并返回 多特鲁 .

    您的样本中似乎有更多的内容。进行完整计算(中的第11个字符是否等于0 expr公司 部分,然后设置返回值,错误部分是可选的,可以省略。

        2
  •  0
  •   Matt Taylor    7 年前

    这是我在autocad字段中为自动图纸编号使用的Diesel表达式。

    $(if,$(substr,$(getvar,dwgname),11,1)"0",$(substr,$(getvar,dwgname),11,2),$(substr,$(getvar,dwgname),12,1))

    $(if,$(substr,$(getvar,dwgname),11,1)"0" =字符11是否=0 ,$(substr,$(getvar,dwgname),11,2) =如果否,则取字符11和下一个字符。 ,$(substr,$(getvar,dwgname),12,1)) =如果char 11=为0,则只取char 11。

    我在autocad边框中使用了两个字段。一个用于文件名,不带页码,另一个仅用于页码。

    文件名示例:A150225\U S001。图纸

    $(substr,$(getvar,dwgname),1, 7) =从位置1到7使用字符。" A150225 "

    $(if,$(substr,$(getvar,dwgname),11,1)“0”,$(substr,$(getvar,dwgname),11,2),$(substr,$(getvar,dwgname),12,1)) =在文件名字符串末尾使用页码。" 1 "

    希望这能帮助任何想做类似事情的人。