找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1077|回复: 2

[求助] 论坛大佬的代码 求各位大佬帮我改下 把生成的文字变成匿名块 谢谢

[复制链接]

已领礼包: 3个

财富等级: 恭喜发财

发表于 2024-8-29 13:22:59 | 显示全部楼层 |阅读模式
悬赏20D豆未解决
本帖最后由 qq787116960 于 2024-8-29 13:24 编辑

论坛的代码  求大佬帮我改下  把生成的文字变成一个匿名块 谢谢


(defun c:沿线写字        (/    a1   a2        am   aml  an   box  cen         dir
                         DLEnt           e        e1   e2          from h    i         len
                         mat  n           p        p1   p2          pa   pl   pv         tf
                         tf1  to   tox        toy  toz  txt  pts  sub         pa1
                         pa2  m           m1
                        )
  (setq        TxtAtLine-ODCL-DATA
         '("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"
           "hKHpg8PLg3EJXYeLceJ4NTs="
          )
  )
  (defun c:TxtAtLine_Ok#OnClicked (/)
    (setq #XDTB_GLOBALVAR_Txtbox
           (dcl-control-GetText XD_DrawAtLine_Txtbox)
          #DrawAtLine_Direction
           (dcl-Control-GetCurrentSelection Direction)
          #txtH        (dcl-Control-GetText XD_DrawAtLine_TxtHeight)
          txtH (* (xd::var:getdrawratio) (ATOF #TXTH))
          #DrawAtLine_DLineCheck
           (dcl-control-GetValue XD_DrawLineCheck)
          #DrawAtLine_explode
           (dcl-Control-GetValue TxtAtLine_Alpha)
          #DrawAtLine_Gap
           (dcl-Control-GetText DrawAtLine_Gap)
    )
    (setq TXTL NIL)
    (setq txtL (xdrx_string_regexps
                 (if (= 0 #DrawAtLine_explode)
                   "[\\u4E00-\\u9FA5]|[A-Za-z0-9]+"
                   "[\\u4E00-\\u9FA5]|[A-Za-z0-9]"
                 )
                 #XDTB_GLOBALVAR_Txtbox
               )
          len  (length txtL)
          tf1  nil
    )
    (if        (< (length TxtL) 1)
      (dcl-MessageBox "内容必须大于1个汉字。" "晓东提示" 2 4)
      (progn
        (dcl-form-Close DrawTxtAtLine)
        (if (and (= 1 #DrawAtLine_DLineCheck)
                 (setq p1 (getpoint "\n文字起点<退出>:"))
                 (setq p2 (getpoint p1 "\n文字终点<退出>:"))
            )
          (progn (setq p1 (trans p1 1 0)
                       p2 (trans p2 1 0)
                 )
                 (xdrx_polyline_make p1 p2)
                 (setq DLEnt (entlast))
                 (setq e1 DLEnt
                       e2 e1
                 )
                 (setq a1 0.0)
                 (setq a2 (distance p1 p2))
          )
          (progn (if (and (setq        e1 (xdrx_entsel
                                     "\n拾取曲线起点<退出>:"
                                     '((0 . "*line,arc,ellipse,circle"))
                                   )
                          )
                          (setq p1 (cadr e1))
                          (setq p1 (osnap p1 "nea"))
                          (setq e1 (car e1))
                          (setq        e2 (xdrx_entsel
                                     "\n拾取曲线终点<退出>:"
                                     '((0 . "*line,arc,ellipse,circle"))
                                   )
                          )
                          (equal e1 (car e2))
                     )
                   (progn (setq p2 (cadr e2))
                          (setq e2 (car e2))
                          (setq p2 (osnap p2 "nea"))
                          (setq        sub (xd::curve:getsub
                                      e1
                                      (trans p1 1 0)
                                      (trans p2 1 0)
                                      (trans p1 1 0)
                                    )
                          )
                          (xdge::entity:make sub)
                          (setq e1 (entlast))
                   )
                 )
          )
        )
        (if (and p1 p2)
          (progn
            (if        (= 1 (length txtl))
              (progn (xdrx_text_make p1 (car txtl) txtH "0.0")
                     (setq m (xdrx_matrix_align
                               p1
                               '(1 0 0)
                               (xdrx_vector_normalize
                                 (xdrx_curve_getfirstderiv e1 p1)
                               )
                             )
                     )
                     (xdrx_entity_transform (entlast) m)
              )
              (progn
                (setq dir (xdrx_vector_normalize (mapcar '- p2 p1)))
                (if (= 1 (dcl-Control-GetCurrentSelection Direction))
                  (setq dir (xdrx_vector_perpvector dir))
                )
                (setq w 0)
                (if (= 0 #DrawAtLine_Direction)
                  (progn (xdrx_text_make '(0 0 0) (last txtl) txtH "0.0")
                         (setq box (xdrx_text_box (entlast))
                               w   (distance (car box) (cadr box))
                         )
                         (xdrx_entity_delete (entlast))
                  )
                )
                (setq w          0
                      dis (/ (- (xdrx_getpropertyvalue e1 "length") w)
                             (1- (length txtl))
                          )
                      dis (abs dis)
                      pa1 (xdrx_curve_getparamatpoint e1 p1)
                      pa2 (xdrx_curve_getparamatpoint e1 p2)
                )
                (if (> pa1 pa2)
                  (setq pts (xdrx_curve_getPointsAtDist e1 p1 (- dis)))
                  (setq pts (xdrx_curve_getPointsAtDist e1 (abs dis)))
                )
                (setq i 0)
                (foreach n txtl
                  (xdrx_text_make (setq pt (nth i pts)) n txtH "0.0")
                  (XD::Text:SetAlignment (entlast) pt "bc")
                  (setq i (1+ i))
                  (setq        dir (xdrx_vector_normalize
                              (xdrx_curve_getfirstderiv e1 pt)
                            )
                        dir (if        (> pa1 pa2)
                              (xdrx_vector_negate dir)
                              dir
                            )
                        m1  (xdrx_matrix_settranslation
                              (xdrx_vector_product
                                (xdrx_vector_perpvector dir)
                                (atof #DrawAtLine_Gap)
                              )
                            )
                        m   (xdrx_matrix_align
                              pt
                              (if (= 0 #DrawAtLine_Direction)
                                '(1 0 0)
                                '(0 -1 0)
                              )
                              dir
                            )
                        m   (xdrx_matrix_product m1 m)
                  )
                  (xdrx_entity_transform (entlast) m)
                )
                (if sub
                  (progn (xdge::free sub) (xdrx_entity_delete e1))
                )
              )
            )
          )
        )
        (if DLEnt
          (xdrx_entity_delete DLEnt)
        )
      )
    )
  )
  (defun c:DrawLineCheck_OnClicked (Value /)
    (if        (= 0 Value)
      (progn (dcl-Control-SetEnabled DrawAtLine_Gap t)
             (dcl-Control-SetEnabled DrawAtLine_GapText t)
      )
      (progn (dcl-Control-SetEnabled DrawAtLine_Gap nil)
             (dcl-Control-SetEnabled DrawAtLine_GapText nil)
      )
    )
  )
  (defun c:TextAtLine_Cancel#OnClicked (/)
    (dcl-form-close DrawTxtAtLine)
  )
  (defun c:DrawTxtAtLine#OnInitialize (/)
    (if        #XDTB_GLOBALVAR_Txtbox
      (dcl-Control-SetText
        XD_DrawAtLine_Txtbox
        #XDTB_GLOBALVAR_Txtbox
      )
    )
    (if        #DrawAtLine_DLineCheck
      (progn (dcl-Control-SetValue
               XD_DrawLineCheck
               #DrawAtLine_DLineCheck
             )
             (if (= 0 #DrawAtLine_DLineCheck)
               (progn (dcl-Control-SetEnabled DrawAtLine_Gap t)
                      (dcl-Control-SetEnabled DrawAtLine_GapText t)
               )
               (progn (dcl-Control-SetEnabled DrawAtLine_Gap nil)
                      (dcl-Control-SetEnabled DrawAtLine_GapText nil)
               )
             )
      )
    )
    (if        #DrawAtLine_explode
      (dcl-Control-SetValue TxtAtLine_Alpha #DrawAtLine_explode)
    )
    (if        #DrawAtLine_Direction
      (dcl-Control-SetCurrentSelection
        Direction
        #DrawAtLine_Direction
      )
    )
    (if        #DrawAtLine_Gap
      (dcl-control-settext DrawAtLine_Gap #DrawAtLine_Gap)
    )
    (if        #txtH
      (dcl-control-settext XD_DrawAtLine_TxtHeight #txtH)
    )
    (if        #DrawLine_explode
      (dcl-Control-SetValue TxtAtLine_Alpha #DrawLine_explode)
    )
    (dcl-Control-SetFocus XD_DrawAtLine_Txtbox)
  )
  (defun c:Cancel_OnClicked (/)
    (dcl-form-Close DrawTxtAtLine)
  )
  (defun c:XD_DrawAtLine_Pick#OnClicked        (/)
    (setq #XDTB_GLOBALVAR_Txtbox (dcl-control-gettext XD_DrawAtLine_Txtbox))
    (dcl-form-close DrawTxtAtLine 4)

  )
  (defun _pick ()
    (if        (setq
          e (car (xdrx_entsel "\n拾取图中文字<退出>:" '((0 . "*text"))))
        )
      (progn (setq txt (xdrx_getpropertyvalue e "textstring")
                   txt
                    (xdrx_string_split txt "\r\n")
                   #XDTB_GLOBALVAR_Txtbox
                    (strcat #XDTB_GLOBALVAR_Txtbox (car txt))
             )
      )
    )
  )
  (xdrx_begin)
  (xdrx_sysvar_push "osmode" "cmdecho")
  (setvar "osmode" 0)
  (setvar "cmdecho" 0)
  (if (XD::Doc:AutoLoadOpenDCL)
    (progn (dcl-Project-Import TxtAtLine-ODCL-DATA)
           (setq doContinue T)
           (while doContinue
             (setq doContinue nil)
             (setq intResult (dcl_form_show DrawTxtAtLine))
             (cond ((= intResult 1) (setq doContinue nil)) ; ESC key
                   ((= intResult 2) (setq doContinue nil))
                   ((= intResult 3) (setq doContinue nil))
                   ((= intResult 4) (_pick) (setq doContinue t))
             )
           )
    )
  )
  (xdrx_sysvar_pop)
  (xdrx_end)
  (princ)
)

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2024-9-3 09:13:44 | 显示全部楼层
:loveliness::handshake:Q

点评

帮我改下大佬 我不会代码  详情 回复 发表于 2024-9-8 02:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2024-9-8 02:55:08 | 显示全部楼层
xcsdert 发表于 2024-9-3 09:13
:loveliness::handshake:Q

帮我改下大佬  我不会代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-22 19:22 , Processed in 0.395455 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表