dcl1214 发表于 2024-4-16 16:53:33

多线mline绘制vla方法

本帖最后由 dcl1214 于 2024-4-17 09:20 编辑


(defun $make-mline$ (pts lst)
                  ;($make-mline$(list (getpoint)(getpoint))(list(cons "比例" "随便")))

(setvar 'CELTSCALE 1.0)
(setvar 'LTSCALE 1.0)
(setvar 'PSLTSCALE 1.0)
(setvar 'MEASUREINIT 1)
(setvar 'MEASUREMENT 1)
(setvar 'CMLSCALE 20.0)
(setvar 'LUNITS 2)
(SETVAR "DIMLFAC" 1)
(if (and (= (rem (length (car pts)) 3) 0)
         (>= (length pts) 2)
      )
    (PROGN (setq obj (vl-catch-all-apply
                     'vla-addmline
                     (list
                         (vlax-get-property
                           (vla-get-activedocument (vlax-get-acad-object))
                           (if (= 1 (getvar 'CVPORT))
                           'Paperspace
                           'Modelspace
                           )
                         )
                         (vl-catch-all-apply
                           'vlax-make-variant
                           (list
                           (vl-catch-all-apply
                               'vlax-safearray-fill
                               (list
                                 (vl-catch-all-apply
                                 'vlax-make-safearray
                                 (list
                                     vlax-vbDouble
                                     (cons 1 (* 3 (length pts)))
                                 )
                                 )
                                 (apply 'append pts)
                               )
                           )
                           )
                         )
                     )
                     )
         )
         (vl-catch-all-apply
             'vla-put-MLineScale
             (list
               obj
               (cdr (assoc "比例" lst))
             )
         )
    )
)
(SETQ ENT (VL-CATCH-ALL-APPLY 'VLAX-ENAME->VLA-OBJECT (LIST OBJ)))
(IF (VL-CATCH-ALL-ERROR-P ENT)
    (SETQ ENT NIL)
)
ent
)


guosheyang 发表于 2024-4-16 19:15:15

感谢杜总的分享!

magicheno 发表于 2024-4-17 00:05:12

感谢大佬分享

自贡黄明儒 发表于 2024-4-17 07:12:16

关于mline的帖子很少,给楼主点赞。
mline首先要进行设置,这才是关键。

dcl1214 发表于 2024-4-17 08:46:10

自贡黄明儒 发表于 2024-4-17 07:12
关于mline的帖子很少,给楼主点赞。
mline首先要进行设置,这才是关键。

增加了变量设置,您给审核一下

自贡黄明儒 发表于 2024-4-17 09:17:18

本帖最后由 自贡黄明儒 于 2024-4-17 09:20 编辑

dcl1214 发表于 2024-4-17 08:46
增加了变量设置,您给审核一下
楼主客气了,也高看我了。当初我画型钢时,也想用mline来实现,当时看了一下样式设置,太复杂,也没有找到方法,就放弃了。

寒潮大冬瓜 发表于 2024-4-21 22:12:12

很好→很棒!很好~很棒!!很好……很棒!!!

被承包的东子 发表于 2024-6-26 16:51:50

杜总,这句话是不是错了啊(SETQ ENT (VL-CATCH-ALL-APPLY 'VLAX-ENAME->VLA-OBJECT (LIST OBJ)))我觉得应该是(SETQ ENT (VL-CATCH-ALL-APPLY 'vlax-vla-object->ename(LIST OBJ)))

`中微子 发表于 2024-6-29 00:16:50


谢谢共享源码正需要,如何把对正方式改为上,现在的对正是无.
变量是CMLJUST
页: [1]
查看完整版本: 多线mline绘制vla方法