alala
Membres-
Compteur de contenus
289 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par alala
-
Dans les couleurs (onglet "carnet de couleurs") tu a les Pantones. Tu peu donc dessiner sous Autocad avec les valeurs pantones qui te sont founis dans la charte graphique ... non?
-
tente alors d'inserer en bloc dans un fichier un certain nombre de tes plans (pas trop pour éviter la saturation). Puis sur un autre fichier vide tu associe ce plan. Tu fait une requette avec rapport qui retourne le nom du bloc. Et dans "autres" dans le fenetre de requette tu a l'option "Indication emplacements de blocs avec", qui faut surrement sélectionner en "Zone de contour". De la tu optiendra une liste des plans dans la zone, et pourra faire un "script" DOS de déplacementdes fichiers! Pour insérer dans un plan tous les fichiers qui sont dans un répertoire j'ai réalisé ce LISP (qui me sert à mettre à jour mes blocs dans un plan) : (defun c:insertblocmaj ( / UserFile UserDir FileList ) (setq UserFile (getfiled "Select Any Drawing File to Process the Entire Directory" "" "dwg" 16 ) ) (setq UserDir (vl-filename-directory UserFile ) ) (setq FileList (vl-directory-files UserDir "*.dwg" 1 ) ) (mapcar '(lambda (x) (command "_.insert" (strcat (vl-filename-base (strcat UserDir "\\" x)) "=" UserDir "\\" x ) "0,0,0" "1" "1" "0")) FileList) (princ) )
-
Si l'on pense à un script il faut changer les options du ssget "_CP" pour un polygone de sélection avec les objets qui le touchent. "_WP" pour un polygone de sélection Sans les objets qui le touchent. La liste des points se retournes de la manière suivante : '((x1 y1) (x2 y2) (x3 y3) ...) Donc pour une sélection dans un polygone (objets qui touchent incluent) l'on remplacera : (ssget '(1534000 8272000) '(1578000 8224000) (list (cons 410 "Model")) par : (ssget "_CP" '((1534000 8272000)(1534000 8224000)(1578000 8224000)(1578000 8272000)) (list (cons 410 "Model")) L'on peu aussi faire un lisp plus complet qui posera plein de questions : (defun c:dispzone ( / MonPlan pt PtList) (vl-load-com) (setq MonPlan(vla-get-activedocument(vlax-get-acad-object))) (setq ptlist '()) (while (setq pt (Getpoint "Sélectionner un point pour créer une Zone : ")) (setq PtList (append PtList (list pt))) (princ "\n") ) (initget "Avec Sans") (setq OptPoly(getkword "Avec ou Sans les objets sur le polygone? (Avec Sans) \n")) (if (= OptPoly "Avec") (setq OptSs "_CP") (setq OptSs "_WP") ) (vla-ZoomAll (vlax-get-acad-object)) (if (ssget OptSs ListPt (list (cons 410 "Model"))) ; si il y a des objets en espace Objet ALORS copie le DWG dans le sous-dossier DEDANS (vla-SaveAs MonPlan (strcat (getvar 'DWGPREFIX) "OK\\" (getvar 'DWGNAME)) acNative) ; si PAS d'objet en espace Objet ALORS copie le DWG dans le sous-dossier DEHORS (vla-SaveAs MonPlan (strcat (getvar 'DWGPREFIX) "KO\\" (getvar 'DWGNAME)) acNative) ) (princ) (command "._close" "o") ) Mais ici ça a peu d'intérêt!
-
Si l'on part sur du lisp la partie MAP ne sert à rien, il suffit de faire une légére adatation : ; test si l'on dispose d'un objet dans une zone de l'espace Objet (defun c:dispzone ( / MonPlan) (vl-load-com) (setq MonPlan(vla-get-activedocument(vlax-get-acad-object))) (vla-ZoomAll (vlax-get-acad-object)) (if (ssget '(1534000 8272000) '(1578000 8224000) (list (cons 410 "Model"))) ; si il y a des objets en espace Objet ALORS copie le DWG dans le sous-dossier DEDANS (vla-SaveAs MonPlan (strcat (getvar 'DWGPREFIX) "OK\\" (getvar 'DWGNAME)) acNative) ; si PAS d'objet en espace Objet ALORS copie le DWG dans le sous-dossier DEHORS (vla-SaveAs MonPlan (strcat (getvar 'DWGPREFIX) "KO\\" (getvar 'DWGNAME)) acNative) ) (princ) (command "._close" "o") ) On charge le lisp au démarage et ou fait un script pour ouvrir le plan et lancer le lisp!
-
programmer AutoCAD (delphi, c++, vb)
alala a répondu à un(e) sujet de amine.btp dans ObjectARX/DBX, C++, .NET, RealDWG
Les DCL peuvent être inclusent dans le lisp. Le langage est diférent, mais très "simple" . L'avantage, comme pour le lisp, c'est qu'Autocad interpréte directement ces languages, ça facilite le dévellopement. Pour moi si tu reste à 100% sur du Autocad le LISP est ce qu'il faut apprendre, le C# est à choisir si tu souhaite un language plus largement utilisable sous Windows, mais il faut en avoir l'utilité, et le temps de l'apprendre. -
Tout ceci est théorique car je ne l'ai pas testé (je n'ai jamais eu l'occasion de tenter de scipter les actions MAP) : - Si l'on peu scripter l'association de plan - si l'on peu scripter la création de requettes L'on peu associer un plan et faire une requette avec un rapport qui porterais le nom du fichier associé Sachant qu'une requette qui ne retourne aucun objet ne génére pas de rapport, il suffirait d'associer un plan, de créer une requette sur un polygone, de demander un rapport que l'on configurera pour qu'il porte le nom du fichier associé. L'on scripte tout ça avec un logiciel de type scripteur, et le tour est joué. Au pire l'on peu faire un lisp (un ssget fera ça très très bien), mais si le but est de le faire en MAP uniquement je ne vois pas d'autre méthodes. ps: j'ai tenté de mettre en bloc "n" plans De l'associer dans un plan vide, et de faire une requette spaciale. Le soucis c'est que l'on n'intéroge 0 objets car les blocs (plans d'origine) sont inséré en 0,0. Peu être qu'il y a un moyen de fouiller dans les sous objets des blocs mais de ne retourner dans un rapport que le nom du bloc lié, ça arrangerait tout.
-
Après une petite semaine de vacance je reviens sur ce sujet. Tout d'abord merci pour cette réponse. Je trouve cela bien dommage qu'il n'y ait pas de solution pour retrouver ces propriétés par objet sans les lister au préalable. J'ai utilisé la même source pour réaliser la fonction suivante (épuré de quelques propriétés donc!) : ;;;---------------------------------------------------------------------------; ;;; Listes de propriétés par type d'objets ; ;;;---------------------------------------------------------------------------; (defun ListePropAcDbObject (ListPropAcDb /) (append (list 'ObjectName 'Material 'EntityTransparency 'HasExtensionDictionary 'Visible 'Layer 'Linetype 'LinetypeScale 'Lineweight 'PlotStyleName 'Normal ) (cond ( (equal ListPropAcDb "AcDb3DFace") (list 'Coordinates 'VisibilityEdge1 'VisibilityEdge2 'VisibilityEdge3 'VisibilityEdge4 ) ) ((equal ListPropAcDb "AcDb3DPolyline") (list 'Closed 'Coordinates 'Length 'Type ) ) ((equal ListPropAcDb "AcDb3DSolid") (list 'Centroid 'History 'MomentOfInertia 'Position 'PrincipalDirections 'PrincipalMoments 'ProductOfInertia 'RadiiOfGyration 'ShowHistory 'SolidType 'Volume ) ) ((equal ListPropAcDb "AcDbArc") (list 'ArcLength 'Area 'Center 'EndAngle 'EndPoint 'Radius 'StartAngle 'StartPoint 'Thickness 'TotalAngle ) ) ((equal ListPropAcDb "AcDbAttribute") (list 'Alignment 'Backward 'Constant 'FieldLength 'Height 'InsertionPoint 'Invisible 'LockPosition 'Mode 'MTextAttribute 'MTextAttributeContent 'MTextBoundaryWidth 'MTextDrawingDirection 'ObliqueAngle 'Preset 'PromptString 'Rotation 'ScaleFactor 'StyleName 'TagString 'TextAlignmentPoint 'TextGenerationFlag 'TextString 'Thickness 'UpsideDown 'Verify ) ) ((equal ListPropAcDb "AcDbAttributeReference") (list 'Alignment 'Backward 'Constant 'FieldLength 'Height 'InsertionPoint 'Invisible 'LockPosition 'MTextAttribute 'MTextAttributeContent 'MTextBoundaryWidth 'MTextDrawingDirection 'ObliqueAngle 'Rotation 'ScaleFactor 'StyleName 'TagString 'TextAlignmentPoint 'TextGenerationFlag 'TextString 'Thickness 'UpsideDown ) ) ((equal ListPropAcDb "AcDbBlockReference") (list 'EffectiveName 'HasAttributes 'InsertionPoint 'InsUnits 'InsUnitsFactor 'IsDynamicBlock 'Name 'Rotation 'XEffectiveScaleFactor 'XScaleFactor 'YEffectiveScaleFactor 'YScaleFactor 'ZEffectiveScaleFactor 'ZScaleFactor ) ) ((equal ListPropAcDb "AcDbCircle") (list 'Area 'Center 'Circumference 'Diameter 'Radius 'Thickness ) ) ((equal ListPropAcDb "AcDbDim3PointAngular") (list 'AngleFormat 'AngleVertex 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimLineInside 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineExtend 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLine1EndPoint 'ExtLine1Linetype 'ExtLine1Suppress 'ExtLine2EndPoint 'ExtLine2Linetype 'ExtLine2Suppress 'ExtLineFixedLen 'ExtLineFixedLenSuppress 'Fit 'ForceLineInside 'HorizontalTextPosition 'Measurement 'Rotation 'ScaleFactor 'StyleName 'SuppressLeadingZeros 'SuppressTrailingZeros 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrecision 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceUpperLimit 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimAligned") (list 'AltRoundDistance 'AltSubUnitsFactor 'AltSubUnitsSuffix 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLineExtend 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimLineInside 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineExtend 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLine1Linetype 'ExtLine1Point 'ExtLine1Suppress 'ExtLine2Linetype 'ExtLine2Point 'ExtLine2Suppress 'ExtLineFixedLen 'ExtLineFixedLenSupress 'Fit 'ForceLineInside 'FractionFormat 'HorizontalTextPosition 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SubUnitsFactor 'SubUnitsSuffix 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimAngular") (list 'AngleFormat 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimLineInside 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineExtend 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLine1EndPoint 'ExtLine1Linetype 'ExtLine1StartPoint 'ExtLine1Suppress 'ExtLine2EndPoint 'ExtLine2Linetype 'ExtLine2StartPoint 'ExtLine2Suppress 'ExtLineFixedLen 'ExtLineFixedLenSuppress 'Fit 'ForceLineInside 'HorizontalTextPosition 'Measurement 'Rotation 'ScaleFactor 'StyleName 'SuppressLeadingZeros 'SuppressTrailingZeros 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrecision 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceUpperLimit 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimArcLength") (list 'AltRoundDistance 'AltSubUnitsFactor 'AltSubUnitsSuffix 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'ArcEndParam 'ArcPoint 'ArcStartParam 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'CenterPoint 'DecimalSeparator 'DimensionLineColor 'DimensionLineExtend 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimLineInside 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineExtend 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLine1Linetype 'ExtLine1Point 'ExtLine1Suppress 'ExtLine2Linetype 'ExtLine2Point 'ExtLine2Suppress 'ExtLineFixedLen 'ExtLineFixedLenSuppress 'Fit 'ForceLineInside 'FractionFormat 'HasLeader 'HorizontalTextPosition 'IsPartial 'Leader1Point 'Leader2Point 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SubUnitsFactor 'SubUnitsSuffix 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'SymbolPosition 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimDiametric") (list 'AltRoundDistance 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroInches 'AltSuppressZeroFeet 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'CenterMarkSize 'CenterType 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimTxtDirection 'Fit 'ForceLineInside 'FractionFormat 'LeaderLength 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimOrdinate") (list 'AltRoundDistance 'AltSubUnitsFactor 'AltSubUnitsSuffix 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'ArrowheadSize 'DecimalSeparator 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLineFixedLen 'ExtLineFixedLenSuppress 'FractionFormat 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SubUnitsFactor 'SubUnitsSuffix 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextMovement 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimRadial") (list 'AltRoundDistance 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'ArrowheadBlock 'ArrowheadSize 'ArrowheadType 'CenterMarkSize 'CenterType 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLinetype 'DimensionLineWeight 'DimLineSuppress 'DimTxtDirection 'Fit 'ForceLineInside 'FractionFormat 'LeaderLength 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimRadialLarge") (list 'AltRoundDistance 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'ArrowheadBlock 'ArrowheadSize 'ArrowheadType 'Center 'CenterMarkSize 'CenterType 'ChordPoint 'DecimalSeparator 'DimensionLineColor 'DimensionLinetype 'DimensionLineWeight 'DimLineSuppress 'DimTxtDirection 'Fit 'ForceLineInside 'FractionFormat 'JogAngle 'JogLocation 'LinearScaleFactor 'Measurement 'OverrideCenter 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbDimRotated") (list 'AltRoundDistance 'AltSubUnitsFactor 'AltSubUnitsSuffix 'AltSuppressLeadingZeros 'AltSuppressTrailingZeros 'AltSuppressZeroFeet 'AltSuppressZeroInches 'AltTextPrefix 'AltTextSuffix 'AltTolerancePrecision 'AltToleranceSuppressLeadingZeros 'AltToleranceSuppressTrailingZeros 'AltToleranceSuppressZeroFeet 'AltToleranceSuppressZeroInches 'AltUnits 'AltUnitsFormat 'AltUnitsPrecision 'AltUnitsScale 'Arrowhead1Block 'Arrowhead1Type 'Arrowhead2Block 'Arrowhead2Type 'ArrowheadSize 'DecimalSeparator 'DimConstrDesc 'DimConstrExpression 'DimConstrForm 'DimConstrName 'DimConstrReference 'DimConstrValue 'DimensionLineColor 'DimensionLineExtend 'DimensionLinetype 'DimensionLineWeight 'DimLine1Suppress 'DimLine2Suppress 'DimLineInside 'DimTxtDirection 'ExtensionLineColor 'ExtensionLineExtend 'ExtensionLineOffset 'ExtensionLineWeight 'ExtLine1Linetype 'ExtLine1Suppress 'ExtLine2Linetype 'ExtLine2Suppress 'ExtLineFixedLen 'ExtLineFixedLenSuppress 'Fit 'ForceLineInside 'FractionFormat 'HorizontalTextPosition 'LinearScaleFactor 'Measurement 'PrimaryUnitsPrecision 'Rotation 'RoundDistance 'ScaleFactor 'StyleName 'SubUnitsFactor 'SubUnitsSuffix 'SuppressLeadingZeros 'SuppressTrailingZeros 'SuppressZeroFeet 'SuppressZeroInches 'TextColor 'TextFill 'TextFillColor 'TextGap 'TextHeight 'TextInside 'TextInsideAlign 'TextMovement 'TextOutsideAlign 'TextOverride 'TextPosition 'TextPrefix 'TextRotation 'TextStyle 'TextSuffix 'ToleranceDisplay 'ToleranceHeightScale 'ToleranceJustification 'ToleranceLowerLimit 'TolerancePrecision 'ToleranceSuppressLeadingZeros 'ToleranceSuppressTrailingZeros 'ToleranceSuppressZeroFeet 'ToleranceSuppressZeroInches 'ToleranceUpperLimit 'UnitsFormat 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbEllipse") (list 'Area 'Center 'EndAngle 'EndParameter 'EndPoint 'MajorAxis 'MajorRadius 'MinorAxis 'MinorRadius 'RadiusRatio 'StartAngle 'StartParameter 'StartPoint ) ) ((equal ListPropAcDb "AcDbHatch") (list 'Area 'AssociativeHatch 'BackgroundColor 'Elevation 'GradientAngle 'GradientCentered 'GradientColor1 'GradientColor2 'GradientName 'HatchObjectType 'HatchStyle 'ISOPenWidth 'NumberOfLoops 'Origin 'PatternAngle 'PatternDouble 'PatternName 'PatternScale 'PatternSpace 'PatternType ) ) ((equal ListPropAcDb "AcDbLeader") (list 'Annotation 'ArrowheadBlock 'ArrowheadSize 'ArrowheadType 'Coordinates 'DimensionLineColor 'DimensionLineWeight 'ScaleFactor 'StyleName 'TextGap 'Type 'VerticalTextPosition ) ) ((equal ListPropAcDb "AcDbLWPolyline") (list 'Area 'Closed 'ConstantWidth 'Coordinates 'Elevation 'Length 'Linetype 'LinetypeGeneration 'LinetypeScale 'Lineweight 'Thickness ) ) ((equal ListPropAcDb "AcDbLine") (list 'Angle 'Delta 'EndPoint 'Length 'StartPoint 'Thickness ) ) ((equal ListPropAcDb "AcDbMInsertBlock") (list 'Columns 'ColumnSpacing 'EffectiveName 'HasAttributes 'InsertionPoint 'InsUnits 'InsUnitsFactor 'IsDynamicBlock 'Name 'Rotation 'Rows 'RowSpacing 'XEffectiveScaleFactor 'XScaleFactor 'YEffectiveScaleFactor 'YScaleFactor 'ZEffectiveScaleFactor 'ZScaleFactor ) ) ((equal ListPropAcDb "AcDbMLeader") (list 'ArrowheadBlock 'ArrowheadSize 'ArrowheadType 'BlockConnectionType 'BlockScale 'ContentBlockName 'ContentBlockType 'ContentType 'DogLegged 'DoglegLength 'LandingGap 'LeaderCount 'LeaderLineColor 'LeaderLineType 'LeaderLineWeight 'LeaderType 'ScaleFactor 'StyleName 'TextAttachmentDirection 'TextBackgroundFill 'TextBottomAttachmentType 'TextDirection 'TextFrameDisplay 'TextHeight 'TextJustify 'TextLeftAttachmentType 'TextLineSpacingDistance 'TextLineSpacingFactor 'TextLineSpacingStyle 'TextRightAttachmentType 'TextRotation 'TextString 'TextStyleName 'TextTopAttachmentType 'TextWidth 'Type ) ) ((equal ListPropAcDb "AcDbMLines") (list 'Justification 'MLineScale 'StyleName ) ) ((equal ListPropAcDb "AcDbMtext") (list 'AttachmentPoint 'BackgroundFill 'DrawingDirection 'Height 'InsertionPoint 'LineSpacingDistance 'LineSpacingFactor 'LineSpacingStyle 'Rotation 'StyleName 'TextString 'Width ) ) ((equal ListPropAcDb "AcDbPoints") (list 'Thickness ) ) ((equal ListPropAcDb "AcDbPolyfaceMesh") (list 'Coordinates 'NumberOfFaces 'NumberOfVertices ) ) ((equal ListPropAcDb "AcDbPolyline") (list 'Area 'Closed 'ConstantWidth 'Coordinates 'Elevation 'Length 'Linetype 'LinetypeGeneration 'LinetypeScale 'Lineweight 'Thickness 'Type ) ) ((equal ListPropAcDb "AcDbPolygonMesh") (list 'Coordinates 'MClose 'MDensity 'MVertexCount 'NClose 'NDensity 'NVertexCount 'Type ) ) ((equal ListPropAcDb "AcDbRasterImage") (list 'Brightness 'ClippingEnabled 'Contrast 'Fade 'Height 'ImageFile 'ImageHeight 'ImageVisibility 'ImageWidth 'Name 'Origin 'Rotation 'ScaleFactor 'ShowRotation 'Transparency 'Width ) ) ((equal ListPropAcDb "AcDbWipeout") (list 'Name 'Brightness 'ClippingEnabled 'Contrast 'Fade 'Height 'ImageHeight 'ImageVisibility 'ImageWidth 'Origin 'Rotation 'ScaleFactor 'ShowRotation 'Transparency 'Width ) ) ((equal ListPropAcDb "AcDbRay") (list 'BasePoint 'DirectionVector 'SecondPoint ) ) ((equal ListPropAcDb "AcDbRegion") (list 'Area 'Centroid 'MomentOfInertia 'Perimeter 'PrincipalDirections 'PrincipalMoments 'ProductOfInertia 'RadiiOfGyration ) ) ((equal ListPropAcDb "AcDbShape") (list 'Height 'InsertionPoint 'Name 'ObliqueAngle 'Rotation 'ScaleFactor 'Thickness ) ) ((equal ListPropAcDb "AcDbSolid") (list 'Coordinates 'Thickness ) ) ((equal ListPropAcDb "AcDbSpline") (list 'Area 'Closed 'Closed2 'ControlPoints 'Degree 'Degree2 'EndTangent 'FitPoints 'FitTolerance 'IsPeriodic 'IsPlanar 'IsRational 'KnotParameterization 'Knots 'NumberOfControlPoints 'NumberOfFitPoints 'SplineFrame 'SplineMethod 'StartTangent 'Weights ) ) ((equal ListPropAcDb "AcDbTable") (list 'AllowManualHeights 'AllowManualPositions 'BreaksEnabled 'BreakSpacing 'Columns 'ColumnWidth 'Direction 'EnableBreak 'FlowDirection 'HasSubSelection 'HeaderSuppressed 'Height 'HorzCellMargin 'InsertionPoint 'MinimumTableHeight 'MinimumTableWidth 'RegenerateTableSuppressed 'RepeatBottomLabels 'RepeatTopLabels 'RowHeight 'Rows 'StyleName 'TableBreakFlowDirection 'TableBreakHeight 'TableStyleOverrides 'TitleSuppressed 'VertCellMargin 'Width ) ) ((equal ListPropAcDb "AcDbText") (list 'Alignment 'Backward 'Height 'InsertionPoint 'ObliqueAngle 'Rotation 'ScaleFactor 'StyleName 'TextAlignmentPoint 'TextGenerationFlag 'TextString 'Thickness 'UpsideDown ) ) ((equal ListPropAcDb "AcDbTolerance") (list 'DimensionLineColor 'DirectionVector 'InsertionPoint 'ScaleFactor 'StyleName 'TextColor 'TextHeight 'TextString 'TextStyle ) ) ((equal ListPropAcDb "AcDbTrace") (list 'Coordinates 'Thickness ) ) ((equal ListPropAcDb "AcDbXline") (list 'BasePoint 'DirectionVector 'SecondPoint ) ) ((equal ListPropAcDb "AcDbDynamicBlockReferenceProperty") (list 'AllowedValues 'Description 'PropertyName 'ReadOnly 'Show 'UnitsType 'Value ) ) ) ) ) La fonction retourne une liste des propriétés en fonction du type d'oject (vla-get-objectname). Ca correspond plus à mon besoin, mais moins à un bessoin général tel qu'il est exprimé ci dessus. Encore merci pour la réponse.
-
Commande "RENAME_B" plutôt, non? Pour moi dans ce cas ou il semble y avoir plusieurs plans (un par type ou par niveau) j'aurai tendance à avoir des blocs créer en claque 0 avec couleur "dubloc" ou "ducalque" (l'on peu jouer sur deux couleurs par bloc comme cela), et a insérer en Xref les plans des autres niveaux. Comme cela l'on peu gérer sur un même plan la couleur de bloc du même nom insérer sur un même calque (sur son plan d'origine) suivant l'Xref d'ou il proviennent. De plus ça permet d'éviter de faire de la modification sur un plan sans quelle ne soit reporter sur les autres.
-
Bonjour, Cherchant à vérifier que mes blocs sont identiques par rapport à une légende ou un gabarit, je souhaitait lister toutes les propriètes de ceux-ci en Vlisp. Actuellement j'ai fait une bête liste de toutes les propriètes par type d'objets tel que l'on la trouve dans l'aide VBA, mais je m'étonne de ne pas avoir trouvé de méthode pour refaire une liste de celle-ci automatiquement (type celle que l'on trouveen effectuant un vlax-dump-object (que je n'arrive pas à exploiter dans mes lisp)). Sachant que je ne souhaite pas lister certaines propriétés (typiquemens celle qui vont différés d'un plans à l'autre sans l'object ne soit modifiés). Avez vous une méthode pour réaliser cela?
-
Et moi qui m'ennuyais avec une verif de logique binaire ... Vos codes sont magnifiques, j'espére avoir vos niveaux un jour!
-
Ma réponse avec de la logique binaire (et du logand par la même occasion, ma premiére fois!) : (defun transbinmessage (new old message / listmessage tota messagetrans ) (setq i 0) (setq listmessage (mapcar '(lambda (x) (if (/= (ascii old) x) (cons 0 x)(cons (if (= 0 i)(setq i (1+ i))(setq i (* 2 i))) x))) (vl-string->list message))) (setq tota (* 2 i)) (setq j 0) (setq touslescas '()) (repeat tota (setq messagetrans (mapcar '(lambda (x) (if (/= 0 (logand (car x) j)) (setq x (ascii new))(setq x (cdr x)))) listmessage)) (setq touslescas (append (list (vl-list->string messagetrans)) touslescas)) (setq j (1+ j)) ) (princ touslescas)) Par contre ça ne fonctionne que sur un caratére (ici il est demander un espace) en entrée comme en sortie (le saut de ligne est un caractére unique). Pour faire au plus simple j'ai donné un poid binaire à chaque espace (ou variable old recherché ici), puis avec un logand je cherche toutes les possbilités dans la table binaire correspondant au nombre d'occurence trouvés et je remplace l'occurence par la variable new si elle se trouve dans la table binnaire à ce moment la.
-
La fonction vl-string-subst dans un boucle (car ça ne remplace que le premier terme). (while (/= message (setq message (vl-string-subst "\n" " " message)) ) ) (princ message) En espérant avoir pus répondre à ta demande. edit : oups j'ai lus trop vite, donc non ça ne répond pas, je regarde plus en détail et j'édit si je trouve la soluce.
-
Et bien, vraiement très instructif tout ça! Encore merci j'ai découvert de nouvelles fonction et méthodes grâce à tout cela!
-
Et bien merci à tous pour toutes ces informations. Je ne sait pas pourquoi mais j'était persuadé que l'on avait accés à la collection des reférences de bloc inséré dans le plan quelque part. Donc ici "en gros" on tape dans les même tables que lorsque que l'on fait un tblsearch!?
-
Il n'y a donc pas de collections des références de bloc insérés dans le plan? :huh: Il ne me reste plus qu'a faire du ssget si je ne me trompe pas!?
-
Bonjour, Je souhaite automatiser quelques fonctions sur les blocs et je voulais passer par du Vlisp. Afin de lister mes blocs je fait donc un : (vlax-for MesBlocs(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) Et je pensait pourvoir ensuite faire un simple "vla-get-layer" pour chaque objet de la collection de blocs. Hors ce n'est pas possible (et un vlax-dump-object me le confirme malheureusement) car la propriété n'existe pas. Dans un même temps si je sélectionne un bloc et que je fait un "vla-get-layer" dessus j'ai bien mon info. Avez vous une méthode pour atteindre chaque bloc en Vlisp de manière a obtenir son calque (et mieux si possible, les calques des éléments qui le compose)? merci d'avance.
-
Comme (gile) je ne pense pas que ce soit impossible. J'ai personnellement apréhendé quelques languages avant le LISP mais je trouve que le lisp par autocad est l'un des plus aisé à comprendre et utiliser. Les débuts sont complexes, mais ensuite, une fois la structure comprise la progression me semble très rapide. Dans tous les cas l'on y perd pas son temps à apprendre un langage de programmation qui permettra de gagner beaucoup de temps au travail par la suite. Puis faut bien admettre que réussir à réaliser, sur autocad, quelque chose qui nous semblais impossible avant est très motivant. Si ça te permet de te rassurer tu peu passer par l'apprentissage d'autres langages via le site du zero, mais, même si c'est aussi très intéressant, tu te rendra vite compte qu'en dehors de quelques techniques réutilisables le lisp est bien loin du C ou C++ par exemple.
-
Orientation d'une grue par rapport a une ligne donnée
alala a répondu à un(e) sujet de mateus dans Débuter en LISP
Effectivement je vien d'y regarder (ce que je n'avais pas fait jusqu'ici, me servant de cet éditeur que comme passerelle vers l'aide!). Et c'est bien plus efficace pour debuguer! -
Orientation d'une grue par rapport a une ligne donnée
alala a répondu à un(e) sujet de mateus dans Débuter en LISP
Je note quelques erreurs : Le LI à remplacer par L1 dans: (setq NomEntité (car LI)) Le "et" est en trop dans : (setq ang2 (angle p1 et p2))) L'expression suivante qui ne fonctionnera pas : (if= (Choix"B") Et qui peu être remplacer par : (if= (or (= Choix "batiment") (= Choix "B")) Les commandes "arc" ont un "" en trop en bout de ligne! Et quelques erreurs de parenthéses mal placées. Pour les parenthèse je te conseille fortement l'utilisation d'un logiciel de traitement de texte qui gére la coloration syntaxique. Personnellement j'utilise Notepad++. Je te conseille également de remplacer les getstring par des getkword qui renvoient toujours le bon "mot" ou nil. -
J'ai corrigé tout cela dans mon dernier message! Merci a vous tous pour ce retour d'erreur et la correction qui en résulte. J'ai fait ça un poil vite, faudra que je passe plus de temps à tester à l'avenir.
-
En remplacement de : (setq ecriremessage (getkword "\n\nVoulez vous écrire un rapport? (Oui ou Non) ")) Ceci devrais fonctionner : (while (not ecriremessage) (setq ecriremessage (getkword "\n\nVoulez vous écrire un rapport? (Oui ou Non) ")) (princ "\nChoisir Oui ou Non!") Et effectivement dans le cadre de la reprise de plan de provenance diverse il sera plus intéressant de choisir cette méthode de sélection de VDH-Bruno (que je remerci encore une fois au passage pour toute son aide) : (setq ss (ssget '((-4 . "<OR") (0 . "LINE,LWPOLYLINE") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) )
-
De rien, pour ce qui est de la pertinence des épaisseurs de type de ligne, tu préche un convaincu! Je suis même persuadé que des Xdata ou des données d'objet MAP sont impératives pour faire un métré complet avec types de canalisation en prime. Pour la routine j'ai fait un bête x1000 (comme indiqué au dessus). Tu peu modifier cette ligne pour adapter : (setq epesa (* (vla-get-constantwidth pl) 1000)) Voir faire un Getreal pour changer la valeur à chaque debut de routine. Pour le reste si tu a besoins de détails sur le code et son fonctionnement, n'hésite pas à demander.
-
Supprimer une chaine de caractère dans un attribut
alala a répondu à un(e) sujet de bono05 dans LISP et Visual LISP
Aide sur SSGET chez Autodesk! Avec cette page tu devrais pouvoir affiner tes connaissances et ta sélection. ;) -
Les utilisateurs de cadXp sont formidable : Les variables AutoCad par rebcao Donc avec cette liste et les fonction GetVar et SetVar, tu devrais avoir presque tout ce qu'il te faut! Merci à RebCao pour sa liste!
-
(defun c:m-vrd ( / ss surfb totb layb l_layb lstb longa tota laya l_laya ll_laya lsta epesa message) (vl-load-com) (setq totb 0) (setq tota 0) (setq message "") (setq ss (ssget '((-4 . "<OR") (0 . "LINE,LWPOLYLINE") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) ) (if ss (vlax-for pl (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))) ;pour chaque objet de la sélection (if (vlax-curve-isClosed pl) ; si fermé (progn ;pour les polylignes fermés (setq surfb (vlax-curve-getArea pl)) (setq totb (+ totb surfb)) (setq layb (vla-get-Layer pl)) (if (setq l_layb (assoc layb lstb)) (setq lstb (subst (cons layb (+ surfb (cdr l_layb))) l_layb lstb) ) (setq lstb (cons (cons layb surfb) lstb)) ) ) (progn ;pour les polylignes ouvertes (setq longa (vlax-curve-getDistAtParam pl (vlax-curve-getEndParam pl) )) (setq tota (+ tota longa)) (setq laya (vla-get-Layer pl)) (setq epesa (* (vla-get-constantwidth pl) 1000)) (if (setq l_laya (assoc epesa(cdr(assoc laya lsta)))) (setq lsta (subst (cons laya (subst (cons epesa (+ longa (cdr l_laya))) l_laya (cdr(assoc laya lsta)))) (assoc laya lsta) lsta)) (if (setq ll_laya(assoc laya lsta)) (setq lsta (subst (cons laya (append (list (cons epesa longa)) (cdr (assoc laya lsta)))) ll_laya lsta)) (setq lsta (cons (cons laya (list (cons epesa longa))) lsta)) ) ) ) ) ) ) (if lsta (mapcar '(lambda (x) (progn (setq message (strcat message "\nLongueurs sur le calque "(car x)" : \n")) (mapcar '(lambda (x) (setq message (strcat message "Diamètre " (rtos (car x)) " : " (rtos(cdr x)) "m\n") ) ) (cdr x) ) ) ) lsta ) (setq message (strcat message "\nLongueur totale dans le plan = " (rtos tota) "m") ) ) (if lstb (mapcar '(lambda (x) (setq message (strcat message "\nSURFACE totale sur le calque " (car x) " : " (rtos (cdr x)) "m²" ) ) ) lstb ) (setq message (strcat message "\nSURFACE totale dans le plan = " (rtos totb) "m²") ) ) (princ message) (initget "Oui Non") (if (= (getkword "\nEnregistrer dans un fichier ? [Oui/Non] <Non>: ") "Oui") (progn (setq fic (strcat (getvar "DWGPREFIX") (getvar "DWGNAME"))) (setq fic (substr fic 1 (- (strlen fic) 4))) (setq f (open (strcat fic ".txt") "w")) (princ (strcat "\nOui!!! -> Ecriture du rapport " fic ".txt")) (princ "Métrés des réseaux du plan : \n" f) (princ (getvar "DWGNAME") f) (princ (strcat "\nRéalisé le "(substr (rtos (getvar "CDATE") 2 2 ) 7 2) "/" (substr (rtos (getvar "CDATE") 2 2 ) 5 2) "/" (substr (rtos (getvar "CDATE") 2 2 ) 1 4) "\n\n" ) f) (princ message f) (close f) ) ) (princ) (textscr) ) Ceci devrais répondre à tout cela?! Avec en plus l'option de création d'un fichier texte en fin de routine. Ce script est utile, mais uniquement si l'on a bien respecté les épaisseurs de polylignes. Malheureusement je croise trop souvent des indication textuelles sur les réseaux et aucune épaisseur globale.
