Tharwat 发表于 2022-7-6 11:35:30

嗨,李先生
 
一个非常好的信息。因此,如果我想创建一个实体来设计多线样式,我必须使用哪些代码作为多线的开始和结束。(旗号是否与70相同)
 
非常感谢
塔瓦特

Lee Mac 发表于 2022-7-6 11:37:46

要创建多线样式,可以使用对象引用,但要创建多线图元,可以使用图元引用。

Tharwat 发表于 2022-7-6 11:40:04

李先生。
 
太好了。
非常感谢你的澄清,现在我很清楚了。
 
您真诚的
 
塔瓦特

Lee Mac 发表于 2022-7-6 11:43:43

不客气-字典可能更像是AutoLISP的高级部分,所以如果需要接受很多内容,请不要担心

manirpg 发表于 2022-7-6 11:48:03

尊敬的李:,
实际上,我是Lisp的biginner。。。。。。。。。。
如何使用ur代码。。。。。。。。。。
我没有得到结果。。。。
帮助我?
谢谢
当做
马尼

Lee Mac 发表于 2022-7-6 11:50:45

使用post#5中发布的代码以及正确的样式名和位代码组合来实现您想要实现的目标,
 
起点和终点的内弧示例:
 

(PutMLineStyleProps "Standard" (+ 32 512))

manirpg 发表于 2022-7-6 11:52:12

:)嗨,李,我真的很抱歉,
因为我这次的成就有些不同。
我正在使用一种糟糕的方法,因为我在lisp方面没有太多经验。但这对持续两年很有帮助。(为我准备了3个月)。
我知道这对你和其他人来说是非常简单的lisp。
我的目标是(需要lisp)
我想要一条类似剖面线的矩形多段线。
1.绘制多段线(用户输入)
2.两侧偏移多段线(偏移值用户输入)并删除中间线
3.通过多段线连接两条偏移线,并通过pedit连接所有偏移线(端到端和端到端)
5.偏移外侧200mm
6.图案填充(仅中间)
&准备下一个进程
见附件
选项:
1.两侧偏移
2.偏移任何一侧
但我在宏中是如何做到的,
1.mline(带偏移)(带端到端盖)
2.xplode
3.P连接
4.图案填充
如果我在新的dwg中使用它,每次都需要手动关闭mlstyle cap,这就是我发布此线程的原因
帮助我。。。。。。。。。。。。。。
非常感谢
马尼

manirpg 发表于 2022-7-6 11:55:34

此处为附件。。。。。。。。。。。

Lt Dan's l 发表于 2022-7-6 11:59:25

 
我也是初学者。我不在乎我的代码是否简单。它起作用了!
 
坚持使用mline
 

(...mline command here...)
(while (= 1 (getvar "cmdactive"))
(command pause)
);end while
(command "_explode" "l" "")
(command "_pedit" "m" "p" "" "" "j" "" "")
(command "-hatch" "p" "ansi31" "40" "" "s" "l" "" ""))

Lee Mac 发表于 2022-7-6 12:01:07

多线到多线示例:
 

(defun c:m2p ( / *error* EntNext_to_End DOC ELST ENT I MSS OV SS UFLAG VL )
;; MLine to PLine~Lee Mac~04.01.10

(defun *error* ( msg )
   (and ov    (mapcar (function setvar) vl ov))
   (and uflag (vla-EndUndoMark doc))
   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " msg " **")))
   (princ)
)

(defun EntNext_to_End (ent / a)
   (if (setq ent (entnext ent))
   (cons ent (EntNext_to_End ent))
   )
)

(setq vl '("CMDECHO" "PEDITACCEPT" "QAFLAGS")
       ov(mapcar (function getvar) vl) ss (ssadd))

(mapcar (function setvar) vl '(0 1 0))

(if (setq i -1 mss (ssget "_:L" '((0 . "MLINE"))))
   (progn
   (setq uFlag
       (not
         (vla-StartUndoMark
         (setq doc
             (vla-get-ActiveDocument
               (vlax-get-acad-object)
             )
         )
         )
       )
   )
   (
       (lambda ( i )
         (while (setq ent (ssname mss (setq i (1+ i))))
         (setq eLst (entlast) ss (ssadd))

         (vl-cmdf "_.explode" ent)

         (mapcar (function (lambda ( x ) (ssadd x ss)))
             (EntNext_to_End eLst)
         )

         (vl-cmdf "_.pedit" "_M" ss "" "_J" "" "")
         (setq ss nil)
         )
       )
       -1
   )
   (setq uFlag (vla-EndUndoMark doc))
   )
)
(mapcar (function setvar) vl ov)
(princ)
)
页: 1 [2]
查看完整版本: Mlstyle Caps关闭?