Копирование свойства "Поворот" ("Rotation")
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Копирование свойства "Поворот" ("Rotation")

Копирование свойства "Поворот" ("Rotation")

Ответ
Поиск в этой теме
Непрочитано 19.04.2010, 15:18 #1
Копирование свойства "Поворот" ("Rotation")
Do$
 
AutoCAD/Civil3D LISP/C#
 
Санкт-Петербург
Регистрация: 15.08.2008
Сообщений: 1,701

Незаменимая команда matchprop! Но вот угол поворота объекта она не копирует. Может быть есть какое-нибудь другое стандартное средство для этого?
Просмотров: 3930
 
Непрочитано 19.04.2010, 21:20
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


А у каких объектов это свойство "не копируется"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.04.2010, 08:31
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Ага, ситуация неоднозначная. С одной стороны, между текстами, например, поворот передается. С другой стороны, между блоками, между блоком и текстом - не передается. В настройках команды вообще нет свойства rotation, а так как стоит галочка напротив Text в Special properties то текст поворачивается, то есть угол поворота - это специфическое свойство текста! . Но у блоков тоже есть это свойство! И работать в основном с блоками приходится.
Сейчас я делаю так: выделяю блок, захожу в свойства-копирую оттуда значение угла поворота-выделяю другой блок-вставляю в его свойства скопированное значение. Много телодвижений, думаю лиспину надо... Но изобретать велосипед не хочется: может есть какой-то другой способ передачи свойств между блоками?
Миниатюры
Нажмите на изображение для увеличения
Название: matchprop_settings.JPG
Просмотров: 143
Размер:	23.0 Кб
ID:	37710  
Do$ вне форума  
 
Непрочитано 20.04.2010, 09:44
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Ну, в качестве примерного кода (правда, у меня там со свойствами чехарда - ADT мешается, а вычищать лениво):
Код:
[Выделить все]
(vl-load-com)

(setq *dwgru-properties-list*
       (cond
         (*dwgru-properties-list*)
         (t
          ((lambda (/ result)
             (foreach x (append
                          (mapcar
                            '(lambda (a)
                               (if
                                 (= (strcase (substr a 1 8) t) "vla-get-")
                                  (substr a 9)
                                  a
                                  ) ;_ end of if
                               ) ;_ end of lambda
                            (apply
                              'vl-remove-if-not
                              (list '(lambda (x)
                                       (wcmatch (strcase x t) "vla-get-*")
                                       ) ;_ end of lambda
                                    (atoms-family 1)
                                    ) ;_ end of list
                              ) ;_ end of apply
                            ) ;_ end of mapcar
                          '("ADDNEWAUTOMATICALLY" "ADDTREADDEPTHBOTTOM" "ADDTREADDEPTHTOP"    "ADJUSTSIZING"
                            "ALIGNMENTOFFSET"     "ALIGNMENTTYPE"       "ALLOWLONGSYMBOLNAMES"
                            "ALLOWVARIATION"      "ALTERNATENAME"       "ALWAYSIMPORTLAYERSTANDARD"
                            "ANGLE"               "ANGLE1"              "ANGLE2"              "ANGLEFROMNODE"
                            "ANGULARAZIMUTH"      "ANGULARDISPLAYFORMAT"                      "ANGULARPRECISION"
                            "APPLICATION"         "APPLIESTO"           "APPLYRESIZE"         "APPLYTO"
                            "ARCANGLE"            "ARCCONSTRAINT"       "AREA"                "AREADISPLAYUNIT"
                            "AREAPRECISION"       "AREASUFFIX"          "AUTOMATIC"           "AUTOMATICPOSTCLEANUP"
                            "AUTOUPDATE"          "BALUSTERDEPTH"       "BALUSTERPROFILESTYLE"
                            "BALUSTERPROFILESTYLENAME"                  "BALUSTERROTATION"    "BALUSTERS"
                            "BALUSTERSHAPE"       "BALUSTERSMAXSPACING" "BALUSTERWIDTH"       "BASEHEIGHT"
                            "BASEPOINT"           "BASEPOINTNE"         "BAYANGLE"
                            "BLOCKBASEDLAYEROFFBEHAVIOR"                "BLOCKS"              "BOTTOMDEPTH"
                            "BOTTOMOFFSET"        "BOTTOMRAIL"          "BOTTOMRAILHEIGHT"    "BOTTOMRAILPROFILESTYLE"
                            "BOTTOMRAILPROFILESTYLENAME"                "BOTTOMRAILSHAPE"     "BOTTOMRAILWIDTH"
                            "BOTTOMSASHHEIGHT"    "BOUNDARY"            "BOUNDS"              "CEILINGCONDITION"
                            "CEILINGTHICKNESS"    "CELL"                "CENTERONNODE"        "CENTROID"
                            "CLEANUP"             "CLEANUPGROUP"        "CLEANUPGROUPNAME"    "CLEANUPGROUPS"
                            "CLEANUPRADIUS"       "COLOR"               "COMPONENT"           "COMPONENTS"
                            "CONTOURLINESPERSURFACE"                    "COORDINATEPRECISION" "COORDINATES"
                            "CORNERPOSTS"         "COUNT"               "CREATEDIMSCALEOVERRIDE"
                            "CROSSXREFBOUNDARIES" "CURTAINWALLLAYOUTSTYLES"                   "CURTAINWALLUNITSTYLES"
                            "CURVECOUNT"          "CUSTOMSHAPE"         "DATABASE"            "DATABASESCALE"
                            "DEFAULT"             "DEPTH"               "DESCRIPTION"         "DICTIONARIES"
                            "DIMSTYLES"           "DIRECTION"           "DISABLED"            "DISPLAYRISER"
                            "DISPLAYSILHOUETTE"   "DISPLAYTREAD"        "DOCUMENT"            "DOORSTYLES"
                            "DYNAMICPOSTDEPTH"    "DYNAMICPOSTPROFILESTYLE"
                            "DYNAMICPOSTPROFILESTYLENAME"               "DYNAMICPOSTROTATION" "DYNAMICPOSTSHAPE"
                            "DYNAMICPOSTWIDTH"    "EAVE"                "EDGES"               "EDGEWIDTH"
                            "EDGEWIDTHJUSTIFY"    "ELEVATIONMODELSPACE" "ELEVATIONPAPERSPACE" "ELEVATIONPRECISION"
                            "ENDCAPSTYLENAME"     "ENDCAPSTYLES"        "ENDCLEANUPRADIUS"    "ENDELEVATIONOFFSET"
                            "ENDELEVATIONOFFSETFROM"                    "ENDENDCAP"           "ENDENDCAPSTYLE"
                            "ENDMITER"            "ENDMITERANGLE"       "ENDOFFSET"           "ENDPOINT"
                            "EXTENDALIGNMENT"     "EXTERNALDRAWING"     "FACES"               "FACETDEVIATION"
                            "FACETMAXIMUM"        "FLIPX"               "FLIPY"               "FLIPZ"
                            "FLOORCONDITION"      "FLOORTHICKNESS"      "FORMAT"              "FRAMEDEPTH"
                            "FRAMEWIDTH"          "GLASSTHICKNESS"      "GRAPHLINEPOS"        "GROUPS"
                            "GUARDANDHANDRAIL"    "GUARDRAILHEIGHT"     "GUARDRAILOFFSET"     "GUARDRAILPROFILESTYLE"
                            "GUARDRAILPROFILESTYLENAME"                 "GUARDRAILSHAPE"      "GUARDRAILWIDTH"
                            "HANDLE"              "HANDRAILHEIGHT"      "HANDRAILOFFSET"      "HANDRAILPLACEMENT"
                            "HANDRAILPROFILESTYLE"                      "HANDRAILPROFILESTYLENAME"
                            "HANDRAILSHAPE"       "HANDRAILWIDTH"       "HASEXTENSIONDICTIONARY"
                            "HEADHEIGHT"          "HEADROOMHEIGHT"      "HEIGHT"              "HEIGHTABOVECEILING"
                            "HEIGHTCALCULATION"   "HOLDELEVATION"       "HORIZONTALOFFSET"    "HORIZONTALORIENTATION"
                            "HYPERLINKS"          "INDEX"               "INSERTIONPOINT"      "INSIDERADIUS"
                            "INSTANCEWIDTH"       "JIG"                 "JUSTIFY"             "KEYS"
                            "LANDINGEXTENSIONBOTTOM"                    "LANDINGEXTENSIONTOP" "LAYER"
                            "LAYERFILE"           "LAYERKEYSTYLE"       "LAYERKEYSTYLES"      "LAYERS"
                            "LAYERSTANDARD"       "LAYERWILDCARD"       "LAYOUTCURVE"         "LAYOUTGRID2D"
                            "LAYOUTGRID3D"        "LAYOUTS"             "LEADEREXTENSION1"    "LEADEREXTENSION2"
                            "LEAFWIDTH"           "LEFTOFFSET"          "LENGTH"              "LIMITS"
                            "LINEARDISPLAYFORMAT" "LINEARPRECISION"     "LINEARUNIT"          "LINETYPE"
                            "LINETYPES"           "LINETYPESCALE"       "LINEWEIGHT"          "LINEWEIGHTDISPLAY"
                            "LOCATION"            "LOWEREXTENSION"      "MANAGECONTAINEDSPACES"
                            "MANUALHEIGHTS"       "MASKBLOCKSTYLES"     "MASSELEMENTSTYLES"   "MASSGROUP"
                            "MASSGROUPNAME"       "MASSGROUPS"          "MAXACTIVEVIEWPORTS"  "MAXAREA"
                            "MAXIMUMAREA"         "MAXIMUMHEIGHT"       "MAXIMUMLENGTH"       "MAXIMUMLIMITTYPE"
                            "MAXIMUMRISERS"       "MAXIMUMWIDTH"        "MAXLENGTH"           "MAXWIDTH"
                            "MEASUREFROMCENTER"   "MEASUREMENTUNIT"     "MEASURETO"           "MEMBERSTYLES"
                            "MIDPOINT"            "MINAREA"             "MINIMUMAREA"         "MINIMUMLENGTH"
                            "MINIMUMLIMITTYPE"    "MINIMUMRISERS"       "MINIMUMWIDTH"        "MINLENGTH"
                            "MINWIDTH"            "MIRROR"              "MIRRORX"             "MIRRORY"
                            "MODELSPACE"          "MODIFIERS"           "MVBLOCKREF"          "MVBLOCKSTYLES"
                            "NAME"                "NODE"                "NODES"               "NORMAL"
                            "NORMALTO"            "NORTHROTATION"       "NOSING"              "OBJECTID"
                            "OBJECTNAME"          "OBJECTSORTBYPLOTTING"                      "OBJECTSORTBYPSOUTPUT"
                            "OBJECTSORTBYREDRAWS" "OBJECTSORTBYREGENS"  "OBJECTSORTBYSELECTION"
                            "OBJECTSORTBYSNAP"    "OFFSET"              "OLELAUNCH"           "OPENPERCENT"
                            "OPERATION"           "OVERALLEXTENTS"      "OVERHANG"            "OVERRIDEENDCLEANUPRADIUS"
                            "OVERRIDESENABLED"    "OVERRIDESETTINGS"    "OVERRIDESTARTCLEANUPRADIUS"
                            "OWNER"               "OWNERID"             "PALETTE"             "PAPERSPACE"
                            "PIVOTPOINT"          "PLATEHEIGHT"         "PLOTCONFIGURATIONS"  "PLOTSTYLENAME"
                            "PLOTTABLE"           "POLYGONSTYLES"       "POSTDEPTH"
                            "POSTEXTENSIONABOVETOPRAILING"              "POSTMAXSPACING"      "POSTPROFILESTYLE"
                            "POSTPROFILESTYLENAME"                      "POSTROTATION"        "POSTS"
                            "POSTSHAPE"           "POSTWIDTH"           "PREFERENCES"         "PRIORITY"
                            "PROFILE"             "PROFILESTYLE"        "PROFILESTYLENAME"    "PROFILESTYLES"
                            "PROJECTNAME"         "PROPERTIES"          "PROPERTYDEFS"        "QUERYEXPRESSION"
                            "RADIUS"              "RAILINGSTYLES"       "RECIPE"              "REFERENCE"
                            "REFERENCES"          "REGISTEREDAPPLICATIONS"                    "REMOVEABLE"
                            "RENDERSMOOTHNESS"    "REPEATHEADERS"       "REPEATTITLE"         "RESIZEOFFSET"
                            "RETURNSTATUS"        "RIGHTOFFSET"         "RINGS"               "RISE"
                            "RISER"               "RISERATIO"           "RISERCOUNT"          "RISERDEPTH"
                            "ROLL"                "ROOF"                "ROOFEDGE"            "ROOFSLABEDGESTYLES"
                            "ROOFSLABSTYLES"      "ROTATION"            "RUN"                 "SASHDEPTH"
                            "SASHWIDTH"           "SCALE"               "SCALEDSIZEDEPTH"     "SCALEDSIZELENGTH"
                            "SCALEFACTOR"         "SCALEONINSERT"       "SCALEX"              "SCALEY"
                            "SCALEZ"              "SCANBLOCKREFS"       "SCANXREFS"           "SCHEDULEEXTERNALDRAWING"
                            "SCHEDULETABLESTYLES" "SEGMENTPERPOLYLINE"  "SEGMENTS"            "SEGMENTTYPE"
                            "SELFINTERSECTS"      "SHAPE"               "SHAPEDEFINITION"     "SHAPEDEFINITIONS"
                            "SHAPES"              "SIDE1"               "SIDE2"               "SIDECLEARANCE"
                            "SIDEOFFSET"          "SILLHEIGHT"          "SLABEDGESTYLES"      "SLABSTYLES"
                            "SLOPE"               "SOLIDFILL"           "SPACESTYLES"         "SPACING"
                            "STAIRSHAPE"          "STAIRSTYLES"         "STAIRWINDERSTYLES"   "STANDARDSIZES"
                            "STARTCLEANUPRADIUS"  "STARTELEVATIONOFFSET"                      "STARTELEVATIONOFFSETFROM"
                            "STARTENDCAP"         "STARTENDCAPSTYLE"    "STARTMITER"          "STARTMITERANGLE"
                            "STARTOFFSET"         "STARTPOINT"          "STARTPOSITIONOFFSET" "STARTPOSITIONOFFSETFROM"
                            "STOPDEPTH"           "STOPWIDTH"           "STRAIGHTLENGTH"      "STYLE"
                            "STYLEBASED"          "STYLENAME"           "SWINGANGLE"          "TARGETAREA"
                            "TARGETLENGTH"        "TARGETWIDTH"         "TERMINATEWITH"       "TEXTFRAMEDISPLAY"
                            "TEXTHEIGHT"          "TEXTSTYLES"          "THICKNESS"           "TOPDEPTH"
                            "TOPOFFSET"           "TRANSFORMATION"      "TRANSLATION"         "TREAD"
                            "TREADDEPTH"          "TRUECOLOR"           "TURNTYPE"            "TYPE"
                            "UNEVENTREADON"       "UPPEREXTENSION"      "UPPERHEIGHT"         "UPPERRISE"
                            "UPPERRUN"            "UPPERSLOPE"          "USE"                 "USEDRAWNSIZE"
                            "USEMODELEXTENTS"     "USENODECS"           "USERCOORDINATESYSTEMS"
                            "USEWALLDEPTH"        "VALID"               "VALUE"               "VERTEX"
                            "VERTICALALIGNMENT"   "VERTICALOFFSET"      "VERTICALORIENTATION" "VERTICALSCALE"
                            "VIEWBLOCKS"          "VIEWPORTS"           "VIEWS"               "VISIBLE"
                            "VOID"                "VOLUME"              "VOLUMEDISPLAYUNIT"   "VOLUMEPRECISION"
                            "VOLUMESUFFIX"        "WALL"                "WALLMODIFIERSTYLES"  "WALLSTYLES"
                            "WIDTH"               "WINDERSTYLE"         "WINDERSTYLENAME"     "WINDOWASSEMBLYSTYLES"
                            "WINDOWSTATE"         "WINDOWSTYLES"        "WINDOWTITLE"         "WRITEABLE"
                            "XCOUNT"              "XDISTANCE"           "XENDOFFSET"          "XNODES"
                            "XOFFSET"             "XPOSITIONFROM"       "XPOSITIONTO"         "XREFEDIT"
                            "XREFLAYERVISIBILITY" "XREFOVERLAYSUSEOWNDISPLAYCONFIG"           "XROTATION"
                            "XSPACING"            "XSTARTOFFSET"        "XTYPE"               "XVALUE"
                            "YALIGNMENT"          "YCOUNT"              "YDISTANCE"           "YENDOFFSET"
                            "YNODES"              "YOFFSET"             "YPOSITIONFROM"       "YPOSITIONTO"
                            "YROTATION"           "YSPACING"            "YSTARTOFFSET"        "YTYPE"
                            "YVALUE"              "ZCOUNT"              "ZDISTANCE"           "ZENDOFFSET"
                            "ZNODES"              "ZOFFSET"             "ZOOM"                "ZPOSITIONFROM"
                            "ZPOSITIONTO"         "ZROTATION"           "ZSPACING"            "ZSTARTOFFSET"
                            "ZTYPE"
                            )
                          ) ;_ end of append
               (if (not (member x result))
                 (setq result (cons x result))
                 ) ;_ end of if
               ) ;_ end of foreach
             (acad_strlsort (reverse result))
             ) ;_ end of lambda
           )
          )
         ) ;_ end of cond
      ) ;_ end of setq

(defun copy-properties (src dest prop / fun_conv-ent-to-vla err)
                       ;|
*    Выполняет копирование свойств с одного примитива на другой внутри одного
* документа dwg.
*    Параметры вызова:
	src		указатель на объект-"источник". Допустимые значения:
		ename
		vla-object
		str (расценивается как хендл объекта текущего документа)
	dest	указатель на объект-"получатель". Допустимые значения:
		ename
		vla-object
		str (расценивается как хендл объекта текущего документа)
	prop	Строковое значение или список строк свойств (для ActiveX-представления)
*    В силу некоторых особенностей реализации работы с внешними ссылками
* корректную работу внутри внешней ссылки гарантировать не могу.

*    Примеры вызова:
(copy-properties (car (entsel "\nИсточник ")) (car (entsel "\nПолучатель ")) "color")
(copy-properties (car (entsel "\nИсточник ")) (car (entsel "\nПолучатель ")) "linetype")
(copy-properties (car (entsel "\nИсточник ")) (car (entsel "\nПолучатель ")) "Startpoint")
(copy-properties (car (entsel "\nИсточник ")) (car (entsel "\nПолучатель ")) '("layer" "linetype" "Startpoint"))
|;
  (defun fun_conv-ent-to-vla (ent)
    (cond
      ((= (type ent) 'vla-object) ent)
      ((= (type ent) 'ename) (vlax-ename->vla-object ent))
      ((and (= (type ent) 'str) (handent str)) (vlax-ename->vla-object ent))
      ) ;_ end of cond
    ) ;_ end of defun

  (cond
    ((= (type prop) 'str)
     (if (and (setq src (fun_conv-ent-to-vla src))
              (setq dest (fun_conv-ent-to-vla dest))
              (vlax-property-available-p src prop)
              (vlax-property-available-p dest prop t)
              ) ;_ end of and
       (progn
         (if (vl-catch-all-error-p (setq err (vl-catch-all-apply
                                               (function
                                                 (lambda ()
                                                   (vlax-put-property dest prop (vlax-get-property src prop))
                                                   ) ;_ end of lambda
                                                 ) ;_ end of function
                                               ) ;_ end of vl-catch-all-apply
                                         ) ;_ end of setq
                                   ) ;_ end of vl-catch-all-error-p
           (princ (strcat "\n ** error ** Can't modify property " (strcase prop t)))
           ) ;_ end of if
         (vl-catch-all-apply (function (lambda () (vla-update dest))))
         ) ;_ end of progn
       ) ;_ end of if
     )
    ((= (type prop) 'list)
     (foreach x prop
       (copy-properties src dest x)
       ) ;_ end of foreach
     )
    ) ;_ end of cond
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.04.2010, 12:10
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Спасибо! Полезный пример! Похоже, вариантов нет - буду ваять самоделку.
Do$ вне форума  
 
Непрочитано 06.02.2015, 11:28
#6
Grejfer

дорожник
 
Регистрация: 10.08.2010
Сообщений: 7


Ребят, получилось лисп замутить? Очень уж хочется скопировать свойство "поворот" из блока в текст.
Grejfer вне форума  
 
Непрочитано 06.02.2015, 11:43
1 | #7
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


использую TORIENT из комплекта Express Tools. Атрибуты в блоках тоже разворачивает...
Хмурый вне форума  
 
Непрочитано 06.02.2015, 14:02
#8
Grejfer

дорожник
 
Регистрация: 10.08.2010
Сообщений: 7


Спасибо, Хмурый! Классная команда. Я и не догадывался о её существовании. Блиииин... а сколько времени было бы мной сэкономлено в прошлом, если бы я о ней знал.... елки-палки... даже обидно сколько я "хрена вручную" перетёр.
Прям ваще, мегаспасибище! Век живи - век учись.
Grejfer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Копирование свойства "Поворот" ("Rotation")



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Копирование в буфер не выполнено"пишет AutoCad 2010 при копирование из файла в файл. 447761 AutoCAD 29 05.12.2012 07:49
описывать свойства элементов по слою (bylayer) или прямо АлексЮстасу AutoCAD 110 13.03.2010 03:51
Как читать свойства Custom из чертежа viter_alex Программирование 6 27.02.2009 10:03
Команда, чтобы заимствовать свойства (обратная MATCHPROP)? I.Van AutoCAD 2 05.08.2007 21:09