styles - 使用 AutoLISP 生成新的尺寸样式

标签 styles autocad dimensions autocad-plugin autolisp

我想要一个 AutoLISP 例程,它可以使用我的自定义设置自动创建新的尺寸样式。我知道可以将尺寸样式从一张图纸复制到另一张图纸,但每次都必须这样做,既乏味又耗时。

我已经编译了我最常用的样式所需的变量列表,但理想情况下我希望能够从该列表中添加或删除变量。

手动执行此操作的过程是在命令行中设置每个变量,然后使用“-DIMSTYLE SAVE”命令以自定义名称保存它。我尝试自己解决这个项目,但由于在 AutoLISP 方面相对缺乏经验,我很快意识到我不太具备正确完成此任务的知识。

以下是对我创建大多数新样式至关重要的变量列表:

DIMALTD 4

DIMAPOST    [null]

DIMALTF 1

DIMALTTD    4

DIMALTU 4

DIMADEC 1

DIMAZIN 0

DIMARCSYM   1

DIMBLK  ClosedFilled

DIMBLK1 ClosedFilled

DIMBLK2 ClosedFilled

DIMASZ  1

DIMCEN  0

DIMCLRD 3

DIMDLE  0

DIMLTYPE    BYBLOCK

DIMLWD  -2

DIMDLI  4

DIMLTEX1    BYBLOCK

DIMLTEX2    BYBLOCK

DIMCLRE 3

DIMEXE  0.5

DIMLWE  -2

DIMEXO  0.75

DIMFRAC 0

DIMJOGANG   45

DIMLDRBLK   ClosedFilled

DIMLUNIT    5

DIMSCALE    1

DIMRND  0

DIMSAH  Off

DIMCLRT 3

DIMTXT  1.5

DIMTIH  On

DIMGAP  0.1

DIMTOH  On

DIMTAD  0

DIMTXSTY    Standard

DIMTM   0

DIMTP   0

DIMTFAC 1

DIMTZIN 0

DIMZIN  0

最佳答案

尝试使用以下代码:

(defun C:Test (  / *error*  ThisDrawing  dimstyles  style )
    (defun *error* ( msg / ) 
        (if (not (null msg ) )  (progn (princ "\nC:Test:*error*: " ) (princ msg ) (princ "\n")  ) )
    )
    (setvar "DIMALTD" 4 )
    (setvar "DIMALTF" 1 )
    (setvar "DIMBLK" "_DOTSMALL" )  ; more You can find for example here http://forums.augi.com/showthread.php?9852-Setting-DIMLDRBLK
    (setvar "DIMLTYPE" "BYBLOCK" )
    (setvar "DIMEXO" 0.75)

    (setq ThisDrawing (vla-get-activedocument (vlax-get-acad-object) ) )
    (setq dimstyles (vlax-get-property ThisDrawing 'DimStyles ) )
    (setq style (vlax-invoke-method dimstyles 'Add "TestStyle" ) )
    (vlax-invoke-method style 'CopyFrom ThisDrawing )

)

关于styles - 使用 AutoLISP 生成新的尺寸样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835301/

相关文章:

javascript - 如何使用 JavaScript 或 jQuery 获取图像的自然尺寸?

matlab - 此MATLAB代码有什么问题?

WPF - 使用样式触发器设置自定义工具提示

javascript - 为什么 element.style 在 JS 中总是返回空?

css - 覆盖CSS样式?

c++ - 视觉口齿不清 : how to call functions in external C++ DLL

lisp - 如何使用 AutoLISP 插入具有自定义属性的 block ?

t-sql - 在 SSAS 2012 中为波斯日历(Shamsi 或 Jalali 日期)构建 DimDate

javascript - 未捕获的类型错误 : Cannot read property 'style' of null - JS error

c# - AutoCAD 表格中的字体非常小